{"version":3,"sources":["webpack:///./node_modules/element-plus/es/el-timeline-item/index.js","webpack:///./node_modules/element-plus/es/el-tooltip/index.js","webpack:///./node_modules/element-plus/es/el-timeline/index.js","webpack:///./node_modules/element-plus/es/el-time-select/index.js","webpack:///./node_modules/element-plus/es/el-time-picker/index.js","webpack:///./node_modules/element-plus/es/el-tree/index.js","webpack:///./node_modules/element-plus/es/el-transfer/index.js","webpack:///./node_modules/element-plus/es/el-upload/index.js","webpack:///./node_modules/element-plus/es/el-virtual-list/index.js"],"names":["script","name","props","timestamp","type","String","default","hideTimestamp","Boolean","placement","color","size","icon","_hoisted_1","class","_hoisted_2","_hoisted_3","key","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","render","_ctx","_cache","$props","$setup","$data","$options","$slots","dot","style","backgroundColor","__file","install","app","component","_TimelineItem","__defProp","Object","defineProperty","__defProps","defineProperties","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropSymbols","getOwnPropertySymbols","__hasOwnProp","prototype","hasOwnProperty","__propIsEnum","propertyIsEnumerable","__defNormalProp","obj","value","enumerable","configurable","writable","__spreadValues","a","b","prop","call","__spreadProps","Tooltip","components","ElPopper","manual","modelValue","validator","val","openDelay","Number","visibleArrow","tabindex","emits","ctx","popper","onUpdateVisible","emit","updatePopper","update","content","showAfter","this","throwErrorTip","keys","reduce","result","ref","manualMode","showArrow","visible","trigger","firstVnode","_Tooltip","_a","_b","slots","_Timeline","parseTime","time","values","split","length","hours","parseInt","minutes","compareTime","time1","time2","value1","value2","minutes1","minutes2","formatTime","nextTime","step","timeValue","stepValue","next","Math","floor","ElSelect","ElOption","model","event","disabled","editable","clearable","indexOf","placeholder","start","end","minTime","maxTime","prefixIcon","clearIcon","select","items","current","push","blur","focus","_component_el_option","_component_el_select","filterable","$emit","onChange","onBlur","onFocus","prefix","item","label","_","_TimeSelect","DEFAULT_FORMATS_TIME","DEFAULT_FORMATS_DATE","DEFAULT_FORMATS_DATEPICKER","date","week","year","month","datetime","monthrange","daterange","datetimerange","defaultProps","Array","popperClass","format","valueFormat","readonly","popperOptions","Date","rangeSeparator","startPlaceholder","endPlaceholder","defaultValue","defaultTime","isRange","disabledHours","Function","disabledMinutes","disabledSeconds","disabledDate","cellClassName","shortcuts","arrowControl","validateEvent","unlinkPanels","dateEquals","aIsDate","bIsDate","getTime","valueEquals","aIsArray","bIsArray","every","index","parser","lang","day","locale","isValid","formatter","ElInput","directives","clickoutside","ELEMENT","elForm","elFormItem","elPopperOptions","refPopper","pickerVisible","pickerActualVisible","valueOnOpen","userInput","emitChange","blurInput","formItemMitt","isClear","emitInput","formatValue","isArray","map","refInput","triggerRef","_r","isRangeInput","$el","slice","querySelectorAll","setSelectionRange","pos","_inputs","onPick","toDate","handleFocus","e","pickerDisabled","handleBlur","parsedValue","valueIsEmpty","pickerOptions","getDefaultValue","getRangeAvailableTime","availableResult","some","displayValue","panelReady","formattedValue","formatDayjsToString","isTimePicker","isDatesPicker","join","isTimeLikePicker","triggerClass","showClose","onClearIconClick","stopPropagation","handleClear","onMouseEnter","onMouseLeave","pickerSize","popperPaneRef","popperRef","onClickOutside","handleChange","parseUserInputToDayjs","isValidValue","forEach","input","parseUserInput","formatToString","handleKeydown","code","esc","tab","enter","setTimeout","document","activeElement","onUserInput","handleStartInput","target","handleEndInput","handleStartChange","newValue","handleEndChange","onSetPickerOption","onCalendarChange","_component_el_input","_component_el_popper","_directive_clickoutside","$event","effect","pure","$attrs","transition","onBeforeEnter","onAfterLeave","onClick","args","onMouseenter","onMouseleave","onKeydown","autocomplete","onInput","suffix","actualVisible","onSelectRange","onMousedown","makeList","total","method","methodFunc","arr","disabledArr","i","includes","makeAvailableArr","list","filter","getTimeLists","getHoursList","role","compare","getMinutesList","hour","getSecondsList","minute","getAvailableArrs","getAvailableHours","getAvailableMinutes","getAvailableSeconds","useOldValue","oldValue","script$1","repeatClick","ElScrollbar","required","spinnerDate","showSeconds","amPmMode","isScrolling","debouncedResetScroll","adjustCurrentSpinner","currentScrollbar","listHoursRef","listMinutesRef","listSecondsRef","listRefsMap","seconds","spinnerItems","second","timePartsMap","hoursList","minutesList","secondsList","listMap","arrowHourList","arrowMinuteList","arrowSecondList","arrowListMap","getAmPmFlag","shouldShowAmPm","isCapital","toUpperCase","emitSelectRange","adjustSpinner","adjustSpinners","el","querySelector","scrollTop","max","typeItemHeight","offsetHeight","onIncreaseClick","scrollDown","onDecreaseClick","now","modifyDateField","isDisabled","handleClick","handleScroll","min","round","scrollBarHeight","bindScrollEvent","bindFuntion","onscroll","getRefId","charAt","_hoisted_1$1","render$1","_component_el_scrollbar","_directive_repeat_click","noresize","tag","onMousemove","script$2","TimeSpinner","datetimeRole","t","selectionRange","transitionName","_date","parsedDate","isSame","handleCancel","handleConfirm","first","millisecond","changeSelectionRange","concat","mapping","timePickerOptions","left","right","preventDefault","up","down","availableMap","availableArr","onSetOption","pickerBase","_hoisted_1$2","_hoisted_2$1","render$2","_component_time_spinner","makeSelectRange","script$3","minDate","maxDate","minSelectableRange","maxSelectableRange","handleMinChange","handleMaxChange","_minDate","_maxDate","btnConfirmDisabled","setMinSelectionRange","offset","setMaxSelectionRange","half","disabledHours_","defaultDisable","isStart","compareDate","compareHour","nextDisable","disabledMinutes_","compareMinute","disabledSeconds_","compareSecond","dates","getRangeAvailableTimeEach","startDate","endDate","defaultDay","add","_hoisted_1$3","_hoisted_2$2","_hoisted_3$1","render$3","extend","TimePicker","commonPicker","panel","refProps","expose","scopedProps","rangeArr","n","from","extractDateFormat","replace","trim","extractTimeFormat","_TimePicker","hasOwn","NODE_KEY","markNodeData","node","data","id","getNodeKey","getChildState","all","none","allWithoutDisable","j","checked","indeterminate","reInitChecked","childNodes","parent","level","store","checkStrictly","getPropertyFromData","config","dataProp","nodeIdSeed","Node","options","text","expanded","isCurrent","canFocus","loaded","loading","Error","registerNode","isLeaf","isLeafByUser","lazy","setData","defaultExpandAll","expand","defaultExpandedKeys","autoExpandParent","currentNodeKey","currentNode","_initDefaultCheckedNode","updateLeafState","children","insertChild","nodeKey","deep","child","contains","removeChild","batch","getChildren","splice","assign","initialize","dataIndex","deregisterNode","targetNode","callback","expandParent","done","shouldLoadData","loadData","setChecked","array","load","recursion","passValue","checkDescendants","handleDescendants","isCheck","all2","forceInit","newData","oldData","newDataMap","newNodes","isNodeExists","findIndex","removeChildByData","resolve","doCreateChildren","TreeStore","option","nodesMap","root","loadFn","_initDefaultCheckedNodes","filterNodeMethod","traverse","allHidden","newVal","instanceChanged","updateChildren","refData","refNode","getNode","insertBefore","insertAfter","parentData","parentNode","defaultCheckedKeys","checkedKey","leafOnly","includeHalfChecked","checkedNodes","getCheckedNodes","nodes","getHalfCheckedNodes","allNodes","remove","append","checkedKeys","_getAllNodes","sort","cache","create","toString","node2","_setCheckedKeys","key2","prevCurrentNode","shouldAutoExpandParent","currNode","setCurrentNode","renderContent","nodeInstance","tree","_self","useNodeExpandEventBroadcast","parentNodeMap","currentNodeMap","treeNodeExpand","collapse","broadcastExpanded","accordion","childNode","useDragNodeHandler","el$","dropIndicator$","emitter","dragState","showDropIndicator","draggingNode","dropNode","allowDrop","dropType","on","treeNode","allowDrag","dataTransfer","effectAllowed","oldDropNode","dropPrev","dropInner","dropNext","userAllowDropInner","dropEffect","nextSibling","previousSibling","targetPosition","getBoundingClientRect","treePosition","prevPercent","nextPercent","indicatorTop","distance","clientY","top","height","iconPosition","dropIndicator","bottom","draggingNodeCopy","useDragNodeEmitter","ElCollapseTransition","ElCheckbox","NodeContent","renderAfterExpand","showCheckbox","childNodeRendered","oldChecked","oldIndeterminate","node$","instance","console","warn","childrenKey","handleSelectChange","getNodeKey$1","expandOnClickNode","handleExpandIconClick","checkOnClickNode","handleCheckChange","handleContextMenu","vnode","ev","getCheckedKeys","halfCheckedNodes","halfCheckedKeys","getHalfCheckedKeys","handleChildNodeExpand","nodeData","instance2","handleDragStart","draggable","handleDragOver","handleDrop","handleDragEnd","_component_el_checkbox","_component_node_content","_component_el_tree_node","_component_el_collapse_transition","onContextmenu","onDragstart","onDragover","onDragend","onDrop","indent","iconClass","onNodeExpand","useKeydown","treeItems","checkboxItems","initTabIndex","checkbox","setAttribute","currentItem","className","currentIndex","nextIndex","startIndex","dataset","click","hasInput","space","checkedItem","ElTreeNode","emptyText","highlightCurrent","isEmpty","setDefaultCheckedKey","setDefaultExpandedKeys","getNodePath","path","reverse","getCurrentNode","currentNode2","getCurrentKey","setCheckedNodes","setCheckedKeys","setUserCurrentNode","setCurrentKey","setCurrentNodeKey","handleNodeExpand","updateKeyChildren","_Tree","CHECKED_CHANGE_EVENT","useCheck","panelState","labelProp","keyProp","disabledProp","filteredData","filterMethod","query","toLowerCase","checkableData","checkedSummary","checkedLength","dataLength","noChecked","hasChecked","isIndeterminate","updateAllChecked","checkableDataKeys","allChecked","handleAllCheckedChange","oldVal","checkChangeByUser","movedKeys","v","filteredDataKeys","defaultChecked","immediate","ElCheckboxGroup","OptionContent","optionRender","title","inputHover","hasNoMatch","inputIcon","hasFooter","clearQuery","_component_option_content","_component_el_checkbox_group","useComputedData","propsKey","dataObj","o","cur","sourceData","targetData","targetOrder","LEFT_CHECK_CHANGE_EVENT","RIGHT_CHECK_CHANGE_EVENT","useCheckedChange","checkedState","onSourceCheckedChange","leftChecked","onTargetCheckedChange","rightChecked","UPDATE_MODEL_EVENT","useMove","_emit","CHANGE_EVENT","addToLeft","currentValue","addToRight","itemsToBeMoved","itemKey","TransferPanel","ElButton","titles","buttonTexts","filterPlaceholder","leftDefaultChecked","rightDefaultChecked","leftPanel","rightPanel","which","hasButtonTexts","leftPanelTitle","rightPanelTitle","panelFilterPlaceholder","_component_transfer_panel","_component_el_button","onCheckedChange","_Transfer","NOOP","getError","action","xhr","msg","response","error","responseText","status","err","url","getBody","JSON","parse","upload","XMLHttpRequest","onprogress","percent","onProgress","formData","FormData","filename","file","onerror","onError","onload","onSuccess","open","withCredentials","headers","setRequestHeader","send","ElProgress","files","handlePreview","listType","parsePercentage","onFileClicked","handleRemove","focusing","_component_el_progress","uid","src","alt","percentage","uploader","dragover","accept","extension","pop","baseType","type2","acceptedType","startsWith","test","onDragleave","UploadDragger","multiple","onStart","beforeUpload","drag","onPreview","onRemove","fileList","autoUpload","httpRequest","limit","onExceed","reqs","mouseover","inputRef","uploadFiles","postFiles","rawFile","post","before","Promise","then","processedFile","fileType","File","p","catch","abort","_reqs","res","req","_component_upload_dragger","onFile","getFile","find","genUid","seed","useHandlers","uploadRef","tempIndex","clearFiles","handleError","handleProgress","handleSuccess","handleStart","raw","URL","createObjectURL","doRemove","beforeRemove","submit","cloneFile","Upload","UploadList","showFileList","uploadDisabled","revokeObjectURL","dragOver","draging","uploadList","uploadData","uploadComponent","tip","_Upload","isObject","DEFAULT_DYNAMIC_LIST_ITEM_SIZE","ITEM_RENDER_EVT","SCROLL_EVT","FORWARD","BACKWARD","AUTO_ALIGNMENT","SMART_ALIGNMENT","START_ALIGNMENT","CENTERED_ALIGNMENT","END_ALIGNMENT","HORIZONTAL","VERTICAL","LTR","RTL","RTL_OFFSET_NAG","RTL_OFFSET_POS_ASC","RTL_OFFSET_POS_DESC","DefaultListProps","containerElement","direction","estimatedItemSize","layout","initScrollOffset","innerElement","itemSize","useIsScrolling","width","DefaultGridProps","columnCache","columnWidth","estimatedColumnWidth","estimatedRowHeight","initScrollLeft","initScrollTop","rowCache","rowHeight","totalColumn","totalRow","DefaultScrollBarProps","ratio","clientSize","scrollFrom","ScrollbarDirKey","SCROLLBAR_MIN_SIZE","getScrollDir","prev","isHorizontal","dir","isRTL","cachedRTLResult","getRTLOffsetType","recalculate","outerDiv","createElement","outerStyle","overflow","innerDiv","innerStyle","appendChild","body","scrollLeft","renderThumbStyle","move","bar","translate","axis","transform","msTransform","webkitTransform","isFF","navigator","userAgent","LayoutKeys","useWheel","atEndEdge","atStartEdge","onWheelDelta","frameHandle","hasReachedEdge","offset2","edgeReached","onWheel","newOffset","BAR_MAP","vertical","scroll","scrollSize","client","horizontal","ScrollBar","trackRef","thumbRef","onselectstartStore","state","isDragging","traveled","trackStyle","display","position","borderRadius","thumbSize","POSITIVE_INFINITY","SCROLLBAR_MAX_SIZE","thumbStyle","isFinite","thumb","totalSteps","attachEvents","window","onMouseMove","onMouseUp","thumbEl","onselectstart","detachEvents","onThumbMouseDown","stopImmediatePropagation","ctrlKey","button","currentTarget","prevPage","thumbClickPosition","onScrollbarTouchStart","ceil","__defProp$1","__defProps$1","__getOwnPropDescs$1","__getOwnPropSymbols$1","__hasOwnProp$1","__propIsEnum$1","__defNormalProp$1","__spreadValues$1","__spreadProps$1","createList","getOffset","getItemSize","getItemOffset","getEstimatedTotalSize","getStartIndexForOffset","getStopIndexForStartIndex","initCache","clearCache","validateProps","dynamicSizeCache","windowRef","innerRef","scrollbarRef","states","scrollDir","scrollOffset","updateRequested","isScrollbarDragging","itemsToRender","stopIndex","cacheBackward","cacheForward","estimatedTotalSize","_isHorizontal","windowStyle","WebkitOverflowScrolling","willChange","pointerEvents","scrollTo","emitEvents","cacheStart","cacheEnd","visibleStart","visibleEnd","scrollVertically","clientHeight","scrollHeight","_states","resetIsScrolling","scrollHorizontally","clientWidth","scrollWidth","onScroll","onScrollbarScroll","distanceToGo","getItemStyleCache","__","___","scrollToItem","idx","alignment","getItemStyle","itemStyleCache","isRtl","offsetHorizontal","windowElement","api","Container","Inner","InnerNode","scrollbar","listContainer","FixedSizeList","ENV","lastItemOffset","maxOffset","minOffset","middleOffset","numVisibleItems","getItemFromCache","listCache","lastVisitedIndex","findItem","lastVisitedOffset","bs","es","low","high","mid","currentOffset","exponent","totalSizeOfMeasuredItems","numUnmeasuredItems","totalSizeOfUnmeasuredItems","DynamicSizeList","forceUpdate","exposed","proxy","$forceUpdate","__defProp$2","__defProps$2","__getOwnPropDescs$2","__getOwnPropSymbols$2","__hasOwnProp$2","__propIsEnum$2","__defNormalProp$2","__spreadValues$2","__spreadProps$2","createGrid","getColumnPosition","getColumnStartIndexForOffset","getColumnStopIndexForStartIndex","getEstimatedTotalHeight","getEstimatedTotalWidth","getColumnOffset","getRowOffset","getRowPosition","getRowStartIndexForOffset","getRowStopIndexForStartIndex","xAxisScrollDir","yAxisScrollDir","columnsToRender","rowsToRender","estimatedTotalHeight","estimatedTotalWidth","columnCacheStart","columnCacheEnd","columnVisibleStart","columnVisibleEnd","rowCacheStart","rowCacheEnd","rowVisibleStart","rowVisibleEnd","_scrollLeft","rowIndex","columnIdx","scrollBarWidth","estimatedHeight","estimatedWidth","columnIndex","rtl","columnStart","columnEnd","rowStart","rowEnd","row","column","lastColumnOffset","align","lastRowOffset","visibleColumnsCount","numVisibleRows","ACCESS_SIZER_KEY_MAP","ACCESS_LAST_VISITED_KEY_MAP","getItemFromCache$1","gridCache","cachedItems","sizer","lastVisited","bs$1","es$1","findItem$1","lastVisitedItemOffset","lastVisitedRowIndex","sizeOfVisitedRows","unvisitedItems","sizeOfUnvisitedItems","lastVisitedColumnIndex","sizeOfVisitedColumns","ACCESS_ESTIMATED_SIZE_KEY_MAP","estimatedSizeAssociates","estimatedSize"],"mappings":"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","file":"js/chunk-vendors~e3f8acb7.5c7c8048.js","sourcesContent":["import { defineComponent, inject, openBlock, createBlock, createCommentVNode, renderSlot, createVNode, toDisplayString } from 'vue';\n\nvar script = defineComponent({\n name: \"ElTimelineItem\",\n props: {\n timestamp: {\n type: String,\n default: \"\"\n },\n hideTimestamp: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String,\n default: \"bottom\"\n },\n type: {\n type: String,\n default: \"\"\n },\n color: {\n type: String,\n default: \"\"\n },\n size: {\n type: String,\n default: \"normal\"\n },\n icon: {\n type: String,\n default: \"\"\n }\n },\n setup() {\n inject(\"timeline\");\n }\n});\n\nconst _hoisted_1 = { class: \"el-timeline-item\" };\nconst _hoisted_2 = /* @__PURE__ */ createVNode(\"div\", { class: \"el-timeline-item__tail\" }, null, -1);\nconst _hoisted_3 = {\n key: 1,\n class: \"el-timeline-item__dot\"\n};\nconst _hoisted_4 = { class: \"el-timeline-item__wrapper\" };\nconst _hoisted_5 = {\n key: 0,\n class: \"el-timeline-item__timestamp is-top\"\n};\nconst _hoisted_6 = { class: \"el-timeline-item__content\" };\nconst _hoisted_7 = {\n key: 1,\n class: \"el-timeline-item__timestamp is-bottom\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(\"li\", _hoisted_1, [\n _hoisted_2,\n !_ctx.$slots.dot ? (openBlock(), createBlock(\"div\", {\n key: 0,\n class: [\"el-timeline-item__node\", [\n `el-timeline-item__node--${_ctx.size || \"\"}`,\n `el-timeline-item__node--${_ctx.type || \"\"}`\n ]],\n style: {\n backgroundColor: _ctx.color\n }\n }, [\n _ctx.icon ? (openBlock(), createBlock(\"i\", {\n key: 0,\n class: [\"el-timeline-item__icon\", _ctx.icon]\n }, null, 2)) : createCommentVNode(\"v-if\", true)\n ], 6)) : createCommentVNode(\"v-if\", true),\n _ctx.$slots.dot ? (openBlock(), createBlock(\"div\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"dot\")\n ])) : createCommentVNode(\"v-if\", true),\n createVNode(\"div\", _hoisted_4, [\n !_ctx.hideTimestamp && _ctx.placement === \"top\" ? (openBlock(), createBlock(\"div\", _hoisted_5, toDisplayString(_ctx.timestamp), 1)) : createCommentVNode(\"v-if\", true),\n createVNode(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n !_ctx.hideTimestamp && _ctx.placement === \"bottom\" ? (openBlock(), createBlock(\"div\", _hoisted_7, toDisplayString(_ctx.timestamp), 1)) : createCommentVNode(\"v-if\", true)\n ])\n ]);\n}\n\nscript.render = render;\nscript.__file = \"packages/timeline/src/item.vue\";\n\nscript.install = (app) => {\n app.component(script.name, script);\n};\nconst _TimelineItem = script;\n\nexport default _TimelineItem;\n","import { defineComponent, ref, h, cloneVNode } from 'vue';\nimport ElPopper, { defaultProps } from '../el-popper';\nimport { UPDATE_MODEL_EVENT } from '../utils/constants';\nimport throwError from '../utils/error';\nimport { getFirstValidNode } from '../utils/vnode';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar Tooltip = defineComponent({\n name: \"ElTooltip\",\n components: {\n ElPopper\n },\n props: __spreadProps(__spreadValues({}, defaultProps), {\n manual: {\n type: Boolean,\n default: false\n },\n modelValue: {\n type: Boolean,\n validator: (val) => {\n return typeof val === \"boolean\";\n },\n default: void 0\n },\n openDelay: {\n type: Number,\n default: 0\n },\n visibleArrow: {\n type: Boolean,\n default: true\n },\n tabindex: {\n type: [String, Number],\n default: \"0\"\n }\n }),\n emits: [UPDATE_MODEL_EVENT],\n setup(props, ctx) {\n if (props.manual && typeof props.modelValue === \"undefined\") {\n throwError(\"[ElTooltip]\", \"You need to pass a v-model to el-tooltip when `manual` is true\");\n }\n const popper = ref(null);\n const onUpdateVisible = (val) => {\n ctx.emit(UPDATE_MODEL_EVENT, val);\n };\n const updatePopper = () => {\n return popper.value.update();\n };\n return {\n popper,\n onUpdateVisible,\n updatePopper\n };\n },\n render() {\n const {\n $slots,\n content,\n manual,\n openDelay,\n onUpdateVisible,\n showAfter,\n visibleArrow,\n modelValue,\n tabindex\n } = this;\n const throwErrorTip = () => {\n throwError(\"[ElTooltip]\", \"you need to provide a valid default slot.\");\n };\n const popper = h(ElPopper, __spreadProps(__spreadValues({}, Object.keys(defaultProps).reduce((result, key) => {\n return __spreadProps(__spreadValues({}, result), { [key]: this[key] });\n }, {})), {\n ref: \"popper\",\n manualMode: manual,\n showAfter: openDelay || showAfter,\n showArrow: visibleArrow,\n visible: modelValue,\n \"onUpdate:visible\": onUpdateVisible\n }), {\n default: () => $slots.content ? $slots.content() : content,\n trigger: () => {\n if ($slots.default) {\n const firstVnode = getFirstValidNode($slots.default(), 1);\n if (!firstVnode)\n throwErrorTip();\n return cloneVNode(firstVnode, { tabindex }, true);\n }\n throwErrorTip();\n }\n });\n return popper;\n }\n});\n\nTooltip.install = (app) => {\n app.component(Tooltip.name, Tooltip);\n};\nconst _Tooltip = Tooltip;\n\nexport default _Tooltip;\n","import { defineComponent, provide, h } from 'vue';\n\nvar script = defineComponent({\n name: \"ElTimeline\",\n setup(props, ctx) {\n provide(\"timeline\", ctx);\n return () => {\n var _a, _b;\n return h(\"ul\", {\n class: { \"el-timeline\": true }\n }, (_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a));\n };\n }\n});\n\nscript.__file = \"packages/timeline/src/index.vue\";\n\nscript.install = (app) => {\n app.component(script.name, script);\n};\nconst _Timeline = script;\n\nexport default _Timeline;\n","import { defineComponent, ref, computed, resolveComponent, openBlock, createBlock, withCtx, createVNode, Fragment, renderList } from 'vue';\nimport ElSelect from '../el-select';\nimport ElOption from '../el-option';\n\nconst parseTime = (time) => {\n const values = (time || \"\").split(\":\");\n if (values.length >= 2) {\n const hours = parseInt(values[0], 10);\n const minutes = parseInt(values[1], 10);\n return {\n hours,\n minutes\n };\n }\n return null;\n};\nconst compareTime = (time1, time2) => {\n const value1 = parseTime(time1);\n const value2 = parseTime(time2);\n const minutes1 = value1.minutes + value1.hours * 60;\n const minutes2 = value2.minutes + value2.hours * 60;\n if (minutes1 === minutes2) {\n return 0;\n }\n return minutes1 > minutes2 ? 1 : -1;\n};\nconst formatTime = (time) => {\n return (time.hours < 10 ? \"0\" + time.hours : time.hours) + \":\" + (time.minutes < 10 ? \"0\" + time.minutes : time.minutes);\n};\nconst nextTime = (time, step) => {\n const timeValue = parseTime(time);\n const stepValue = parseTime(step);\n const next = {\n hours: timeValue.hours,\n minutes: timeValue.minutes\n };\n next.minutes += stepValue.minutes;\n next.hours += stepValue.hours;\n next.hours += Math.floor(next.minutes / 60);\n next.minutes = next.minutes % 60;\n return formatTime(next);\n};\nvar script = defineComponent({\n name: \"ElTimeSelect\",\n components: { ElSelect, ElOption },\n model: {\n prop: \"value\",\n event: \"change\"\n },\n props: {\n modelValue: String,\n disabled: {\n type: Boolean,\n default: false\n },\n editable: {\n type: Boolean,\n default: true\n },\n clearable: {\n type: Boolean,\n default: true\n },\n size: {\n type: String,\n default: \"\",\n validator: (value) => !value || [\"medium\", \"small\", \"mini\"].indexOf(value) !== -1\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n start: {\n type: String,\n default: \"09:00\"\n },\n end: {\n type: String,\n default: \"18:00\"\n },\n step: {\n type: String,\n default: \"00:30\"\n },\n minTime: {\n type: String,\n default: \"\"\n },\n maxTime: {\n type: String,\n default: \"\"\n },\n name: {\n type: String,\n default: \"\"\n },\n prefixIcon: {\n type: String,\n default: \"el-icon-time\"\n },\n clearIcon: {\n type: String,\n default: \"el-icon-circle-close\"\n }\n },\n emits: [\"change\", \"blur\", \"focus\", \"update:modelValue\"],\n setup(props) {\n const select = ref(null);\n const value = computed(() => props.modelValue);\n const items = computed(() => {\n const result = [];\n if (props.start && props.end && props.step) {\n let current = props.start;\n while (compareTime(current, props.end) <= 0) {\n result.push({\n value: current,\n disabled: compareTime(current, props.minTime || \"-1:-1\") <= 0 || compareTime(current, props.maxTime || \"100:100\") >= 0\n });\n current = nextTime(current, props.step);\n }\n }\n return result;\n });\n const blur = () => {\n var _a, _b;\n (_b = (_a = select.value) == null ? void 0 : _a.blur) == null ? void 0 : _b.call(_a);\n };\n const focus = () => {\n var _a, _b;\n (_b = (_a = select.value) == null ? void 0 : _a.focus) == null ? void 0 : _b.call(_a);\n };\n return {\n select,\n value,\n items,\n blur,\n focus\n };\n }\n});\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_option = resolveComponent(\"el-option\");\n const _component_el_select = resolveComponent(\"el-select\");\n return openBlock(), createBlock(_component_el_select, {\n ref: \"select\",\n \"model-value\": _ctx.value,\n disabled: _ctx.disabled,\n clearable: _ctx.clearable,\n \"clear-icon\": _ctx.clearIcon,\n size: _ctx.size,\n placeholder: _ctx.placeholder,\n \"default-first-option\": \"\",\n filterable: _ctx.editable,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = (event) => _ctx.$emit(\"update:modelValue\", event)),\n onChange: _cache[2] || (_cache[2] = (event) => _ctx.$emit(\"change\", event)),\n onBlur: _cache[3] || (_cache[3] = (event) => _ctx.$emit(\"blur\", event)),\n onFocus: _cache[4] || (_cache[4] = (event) => _ctx.$emit(\"focus\", event))\n }, {\n prefix: withCtx(() => [\n createVNode(\"i\", {\n class: `el-input__icon ${_ctx.prefixIcon}`\n }, null, 2)\n ]),\n default: withCtx(() => [\n (openBlock(true), createBlock(Fragment, null, renderList(_ctx.items, (item) => {\n return openBlock(), createBlock(_component_el_option, {\n key: item.value,\n label: item.value,\n value: item.value,\n disabled: item.disabled\n }, null, 8, [\"label\", \"value\", \"disabled\"]);\n }), 128))\n ]),\n _: 1\n }, 8, [\"model-value\", \"disabled\", \"clearable\", \"clear-icon\", \"size\", \"placeholder\", \"filterable\"]);\n}\n\nscript.render = render;\nscript.__file = \"packages/time-select/src/time-select.vue\";\n\nscript.install = (app) => {\n app.component(script.name, script);\n};\nconst _TimeSelect = script;\n\nexport default _TimeSelect;\n","import { defineComponent, inject, ref, watch, nextTick, computed, provide, resolveComponent, resolveDirective, openBlock, createBlock, mergeProps, withCtx, withDirectives, createVNode, renderSlot, toDisplayString, withModifiers, onMounted, Fragment, renderList, createTextVNode, createCommentVNode, Transition, h } from 'vue';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport isEqual from 'lodash/isEqual';\nimport { useLocaleInject } from '../hooks';\nimport { ClickOutside, RepeatClick } from '../directives';\nimport ElInput from '../el-input';\nimport ElPopper from '../el-popper';\nimport { EVENT_CODE } from '../utils/aria';\nimport { useGlobalConfig, isEmpty } from '../utils/util';\nimport { elFormKey, elFormItemKey } from '../el-form';\nimport { isValidComponentSize } from '../utils/validators';\nimport debounce from 'lodash/debounce';\nimport ElScrollbar from '../el-scrollbar';\nimport union from 'lodash/union';\n\nconst DEFAULT_FORMATS_TIME = \"HH:mm:ss\";\nconst DEFAULT_FORMATS_DATE = \"YYYY-MM-DD\";\nconst DEFAULT_FORMATS_DATEPICKER = {\n date: DEFAULT_FORMATS_DATE,\n week: \"gggg[w]ww\",\n year: \"YYYY\",\n month: \"YYYY-MM\",\n datetime: `${DEFAULT_FORMATS_DATE} ${DEFAULT_FORMATS_TIME}`,\n monthrange: \"YYYY-MM\",\n daterange: DEFAULT_FORMATS_DATE,\n datetimerange: `${DEFAULT_FORMATS_DATE} ${DEFAULT_FORMATS_TIME}`\n};\n\nconst defaultProps = {\n name: {\n type: [Array, String],\n default: \"\"\n },\n popperClass: {\n type: String,\n default: \"\"\n },\n format: {\n type: String\n },\n valueFormat: {\n type: String\n },\n type: {\n type: String,\n default: \"\"\n },\n clearable: {\n type: Boolean,\n default: true\n },\n clearIcon: {\n type: String,\n default: \"el-icon-circle-close\"\n },\n editable: {\n type: Boolean,\n default: true\n },\n prefixIcon: {\n type: String,\n default: \"\"\n },\n size: {\n type: String,\n validator: isValidComponentSize\n },\n readonly: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n popperOptions: {\n type: Object,\n default: () => ({})\n },\n modelValue: {\n type: [Date, Array, String],\n default: \"\"\n },\n rangeSeparator: {\n type: String,\n default: \"-\"\n },\n startPlaceholder: String,\n endPlaceholder: String,\n defaultValue: {\n type: [Date, Array]\n },\n defaultTime: {\n type: [Date, Array]\n },\n isRange: {\n type: Boolean,\n default: false\n },\n disabledHours: {\n type: Function\n },\n disabledMinutes: {\n type: Function\n },\n disabledSeconds: {\n type: Function\n },\n disabledDate: {\n type: Function\n },\n cellClassName: {\n type: Function\n },\n shortcuts: {\n type: Array,\n default: () => []\n },\n arrowControl: {\n type: Boolean,\n default: false\n },\n validateEvent: {\n type: Boolean,\n default: true\n },\n unlinkPanels: Boolean\n};\n\nconst dateEquals = function(a, b) {\n const aIsDate = a instanceof Date;\n const bIsDate = b instanceof Date;\n if (aIsDate && bIsDate) {\n return a.getTime() === b.getTime();\n }\n if (!aIsDate && !bIsDate) {\n return a === b;\n }\n return false;\n};\nconst valueEquals = function(a, b) {\n const aIsArray = a instanceof Array;\n const bIsArray = b instanceof Array;\n if (aIsArray && bIsArray) {\n if (a.length !== b.length) {\n return false;\n }\n return a.every((item, index) => dateEquals(item, b[index]));\n }\n if (!aIsArray && !bIsArray) {\n return dateEquals(a, b);\n }\n return false;\n};\nconst parser = function(date, format, lang) {\n const day = isEmpty(format) ? dayjs(date).locale(lang) : dayjs(date, format).locale(lang);\n return day.isValid() ? day : void 0;\n};\nconst formatter = function(date, format, lang) {\n return isEmpty(format) ? date : dayjs(date).locale(lang).format(format);\n};\nvar script = defineComponent({\n name: \"Picker\",\n components: {\n ElInput,\n ElPopper\n },\n directives: { clickoutside: ClickOutside },\n props: defaultProps,\n emits: [\"update:modelValue\", \"change\", \"focus\", \"blur\", \"calendar-change\"],\n setup(props, ctx) {\n const ELEMENT = useGlobalConfig();\n const { lang } = useLocaleInject();\n const elForm = inject(elFormKey, {});\n const elFormItem = inject(elFormItemKey, {});\n const elPopperOptions = inject(\"ElPopperOptions\", {});\n const refPopper = ref(null);\n const pickerVisible = ref(false);\n const pickerActualVisible = ref(false);\n const valueOnOpen = ref(null);\n watch(pickerVisible, (val) => {\n var _a;\n if (!val) {\n userInput.value = null;\n nextTick(() => {\n emitChange(props.modelValue);\n });\n ctx.emit(\"blur\");\n blurInput();\n props.validateEvent && ((_a = elFormItem.formItemMitt) == null ? void 0 : _a.emit(\"el.form.blur\"));\n } else {\n valueOnOpen.value = props.modelValue;\n }\n });\n const emitChange = (val, isClear) => {\n var _a;\n if (isClear || !valueEquals(val, valueOnOpen.value)) {\n ctx.emit(\"change\", val);\n props.validateEvent && ((_a = elFormItem.formItemMitt) == null ? void 0 : _a.emit(\"el.form.change\", val));\n }\n };\n const emitInput = (val) => {\n if (!valueEquals(props.modelValue, val)) {\n let formatValue;\n if (Array.isArray(val)) {\n formatValue = val.map((_) => formatter(_, props.valueFormat, lang.value));\n } else if (val) {\n formatValue = formatter(val, props.valueFormat, lang.value);\n }\n ctx.emit(\"update:modelValue\", val ? formatValue : val, lang.value);\n }\n };\n const refInput = computed(() => {\n if (refPopper.value.triggerRef) {\n const _r = isRangeInput.value ? refPopper.value.triggerRef : refPopper.value.triggerRef.$el;\n return [].slice.call(_r.querySelectorAll(\"input\"));\n }\n return [];\n });\n const setSelectionRange = (start, end, pos) => {\n const _inputs = refInput.value;\n if (!_inputs.length)\n return;\n if (!pos || pos === \"min\") {\n _inputs[0].setSelectionRange(start, end);\n _inputs[0].focus();\n } else if (pos === \"max\") {\n _inputs[1].setSelectionRange(start, end);\n _inputs[1].focus();\n }\n };\n const onPick = (date = \"\", visible = false) => {\n pickerVisible.value = visible;\n let result;\n if (Array.isArray(date)) {\n result = date.map((_) => _.toDate());\n } else {\n result = date ? date.toDate() : date;\n }\n userInput.value = null;\n emitInput(result);\n };\n const handleFocus = (e) => {\n if (props.readonly || pickerDisabled.value || pickerVisible.value)\n return;\n pickerVisible.value = true;\n ctx.emit(\"focus\", e);\n };\n const handleBlur = () => {\n pickerVisible.value = false;\n blurInput();\n };\n const pickerDisabled = computed(() => {\n return props.disabled || elForm.disabled;\n });\n const parsedValue = computed(() => {\n let result;\n if (valueIsEmpty.value) {\n if (pickerOptions.value.getDefaultValue) {\n result = pickerOptions.value.getDefaultValue();\n }\n } else {\n if (Array.isArray(props.modelValue)) {\n result = props.modelValue.map((_) => parser(_, props.valueFormat, lang.value));\n } else {\n result = parser(props.modelValue, props.valueFormat, lang.value);\n }\n }\n if (pickerOptions.value.getRangeAvailableTime) {\n const availableResult = pickerOptions.value.getRangeAvailableTime(result);\n if (!isEqual(availableResult, result)) {\n result = availableResult;\n emitInput(Array.isArray(result) ? result.map((_) => _.toDate()) : result.toDate());\n }\n }\n if (Array.isArray(result) && result.some((_) => !_)) {\n result = [];\n }\n return result;\n });\n const displayValue = computed(() => {\n if (!pickerOptions.value.panelReady)\n return;\n const formattedValue = formatDayjsToString(parsedValue.value);\n if (Array.isArray(userInput.value)) {\n return [\n userInput.value[0] || formattedValue && formattedValue[0] || \"\",\n userInput.value[1] || formattedValue && formattedValue[1] || \"\"\n ];\n } else if (userInput.value !== null) {\n return userInput.value;\n }\n if (!isTimePicker.value && valueIsEmpty.value)\n return;\n if (!pickerVisible.value && valueIsEmpty.value)\n return;\n if (formattedValue) {\n return isDatesPicker.value ? formattedValue.join(\", \") : formattedValue;\n }\n return \"\";\n });\n const isTimeLikePicker = computed(() => {\n return props.type.indexOf(\"time\") !== -1;\n });\n const isTimePicker = computed(() => {\n return props.type.indexOf(\"time\") === 0;\n });\n const isDatesPicker = computed(() => {\n return props.type === \"dates\";\n });\n const triggerClass = computed(() => {\n return props.prefixIcon || (isTimeLikePicker.value ? \"el-icon-time\" : \"el-icon-date\");\n });\n const showClose = ref(false);\n const onClearIconClick = (event) => {\n if (props.readonly || pickerDisabled.value)\n return;\n if (showClose.value) {\n event.stopPropagation();\n emitInput(null);\n emitChange(null, true);\n showClose.value = false;\n pickerVisible.value = false;\n pickerOptions.value.handleClear && pickerOptions.value.handleClear();\n }\n };\n const valueIsEmpty = computed(() => {\n return !props.modelValue || Array.isArray(props.modelValue) && !props.modelValue.length;\n });\n const onMouseEnter = () => {\n if (props.readonly || pickerDisabled.value)\n return;\n if (!valueIsEmpty.value && props.clearable) {\n showClose.value = true;\n }\n };\n const onMouseLeave = () => {\n showClose.value = false;\n };\n const isRangeInput = computed(() => {\n return props.type.indexOf(\"range\") > -1;\n });\n const pickerSize = computed(() => {\n return props.size || elFormItem.size || ELEMENT.size;\n });\n const popperPaneRef = computed(() => {\n var _a;\n return (_a = refPopper.value) == null ? void 0 : _a.popperRef;\n });\n const onClickOutside = () => {\n if (!pickerVisible.value)\n return;\n pickerVisible.value = false;\n };\n const userInput = ref(null);\n const handleChange = () => {\n if (userInput.value) {\n const value = parseUserInputToDayjs(displayValue.value);\n if (value) {\n if (isValidValue(value)) {\n emitInput(Array.isArray(value) ? value.map((_) => _.toDate()) : value.toDate());\n userInput.value = null;\n }\n }\n }\n if (userInput.value === \"\") {\n emitInput(null);\n emitChange(null);\n userInput.value = null;\n }\n };\n const blurInput = () => {\n refInput.value.forEach((input) => input.blur());\n };\n const parseUserInputToDayjs = (value) => {\n if (!value)\n return null;\n return pickerOptions.value.parseUserInput(value);\n };\n const formatDayjsToString = (value) => {\n if (!value)\n return null;\n return pickerOptions.value.formatToString(value);\n };\n const isValidValue = (value) => {\n return pickerOptions.value.isValidValue(value);\n };\n const handleKeydown = (event) => {\n const code = event.code;\n if (code === EVENT_CODE.esc) {\n pickerVisible.value = false;\n event.stopPropagation();\n return;\n }\n if (code === EVENT_CODE.tab) {\n if (!isRangeInput.value) {\n handleChange();\n pickerVisible.value = false;\n event.stopPropagation();\n } else {\n setTimeout(() => {\n if (refInput.value.indexOf(document.activeElement) === -1) {\n pickerVisible.value = false;\n blurInput();\n }\n }, 0);\n }\n return;\n }\n if (code === EVENT_CODE.enter) {\n if (userInput.value === \"\" || isValidValue(parseUserInputToDayjs(displayValue.value))) {\n handleChange();\n pickerVisible.value = false;\n }\n event.stopPropagation();\n return;\n }\n if (userInput.value) {\n event.stopPropagation();\n return;\n }\n if (pickerOptions.value.handleKeydown) {\n pickerOptions.value.handleKeydown(event);\n }\n };\n const onUserInput = (e) => {\n userInput.value = e;\n };\n const handleStartInput = (event) => {\n if (userInput.value) {\n userInput.value = [event.target.value, userInput.value[1]];\n } else {\n userInput.value = [event.target.value, null];\n }\n };\n const handleEndInput = (event) => {\n if (userInput.value) {\n userInput.value = [userInput.value[0], event.target.value];\n } else {\n userInput.value = [null, event.target.value];\n }\n };\n const handleStartChange = () => {\n const value = parseUserInputToDayjs(userInput.value && userInput.value[0]);\n if (value && value.isValid()) {\n userInput.value = [formatDayjsToString(value), displayValue.value[1]];\n const newValue = [value, parsedValue.value && parsedValue.value[1]];\n if (isValidValue(newValue)) {\n emitInput(newValue);\n userInput.value = null;\n }\n }\n };\n const handleEndChange = () => {\n const value = parseUserInputToDayjs(userInput.value && userInput.value[1]);\n if (value && value.isValid()) {\n userInput.value = [displayValue.value[0], formatDayjsToString(value)];\n const newValue = [parsedValue.value && parsedValue.value[0], value];\n if (isValidValue(newValue)) {\n emitInput(newValue);\n userInput.value = null;\n }\n }\n };\n const pickerOptions = ref({});\n const onSetPickerOption = (e) => {\n pickerOptions.value[e[0]] = e[1];\n pickerOptions.value.panelReady = true;\n };\n const onCalendarChange = (e) => {\n ctx.emit(\"calendar-change\", e);\n };\n provide(\"EP_PICKER_BASE\", {\n props\n });\n return {\n elPopperOptions,\n isDatesPicker,\n handleEndChange,\n handleStartChange,\n handleStartInput,\n handleEndInput,\n onUserInput,\n handleChange,\n handleKeydown,\n popperPaneRef,\n onClickOutside,\n pickerSize,\n isRangeInput,\n onMouseLeave,\n onMouseEnter,\n onClearIconClick,\n showClose,\n triggerClass,\n onPick,\n handleFocus,\n handleBlur,\n pickerVisible,\n pickerActualVisible,\n displayValue,\n parsedValue,\n setSelectionRange,\n refPopper,\n pickerDisabled,\n onSetPickerOption,\n onCalendarChange\n };\n }\n});\n\nconst _hoisted_1 = { class: \"el-range-separator\" };\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_input = resolveComponent(\"el-input\");\n const _component_el_popper = resolveComponent(\"el-popper\");\n const _directive_clickoutside = resolveDirective(\"clickoutside\");\n return openBlock(), createBlock(_component_el_popper, mergeProps({\n ref: \"refPopper\",\n visible: _ctx.pickerVisible,\n \"onUpdate:visible\": _cache[19] || (_cache[19] = ($event) => _ctx.pickerVisible = $event),\n \"manual-mode\": \"\",\n effect: \"light\",\n pure: \"\",\n trigger: \"click\"\n }, _ctx.$attrs, {\n \"popper-class\": `el-picker__popper ${_ctx.popperClass}`,\n \"popper-options\": _ctx.elPopperOptions,\n \"fallback-placements\": [\"bottom\", \"top\", \"right\", \"left\"],\n transition: \"el-zoom-in-top\",\n \"gpu-acceleration\": false,\n \"stop-popper-mouse-event\": false,\n \"append-to-body\": \"\",\n onBeforeEnter: _cache[20] || (_cache[20] = ($event) => _ctx.pickerActualVisible = true),\n onAfterLeave: _cache[21] || (_cache[21] = ($event) => _ctx.pickerActualVisible = false)\n }), {\n trigger: withCtx(() => [\n !_ctx.isRangeInput ? withDirectives((openBlock(), createBlock(_component_el_input, {\n key: 0,\n \"model-value\": _ctx.displayValue,\n name: _ctx.name,\n size: _ctx.pickerSize,\n disabled: _ctx.pickerDisabled,\n placeholder: _ctx.placeholder,\n class: [\"el-date-editor\", \"el-date-editor--\" + _ctx.type],\n readonly: !_ctx.editable || _ctx.readonly || _ctx.isDatesPicker || _ctx.type === \"week\",\n onInput: _ctx.onUserInput,\n onFocus: _ctx.handleFocus,\n onKeydown: _ctx.handleKeydown,\n onChange: _ctx.handleChange,\n onMouseenter: _ctx.onMouseEnter,\n onMouseleave: _ctx.onMouseLeave\n }, {\n prefix: withCtx(() => [\n createVNode(\"i\", {\n class: [\"el-input__icon\", _ctx.triggerClass],\n onClick: _cache[1] || (_cache[1] = (...args) => _ctx.handleFocus && _ctx.handleFocus(...args))\n }, null, 2)\n ]),\n suffix: withCtx(() => [\n createVNode(\"i\", {\n class: [\"el-input__icon\", [_ctx.showClose ? \"\" + _ctx.clearIcon : \"\"]],\n onClick: _cache[2] || (_cache[2] = (...args) => _ctx.onClearIconClick && _ctx.onClearIconClick(...args))\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"model-value\", \"name\", \"size\", \"disabled\", \"placeholder\", \"class\", \"readonly\", \"onInput\", \"onFocus\", \"onKeydown\", \"onChange\", \"onMouseenter\", \"onMouseleave\"])), [\n [_directive_clickoutside, _ctx.onClickOutside, _ctx.popperPaneRef]\n ]) : withDirectives((openBlock(), createBlock(\"div\", {\n key: 1,\n class: [\"el-date-editor el-range-editor el-input__inner\", [\n \"el-date-editor--\" + _ctx.type,\n _ctx.pickerSize ? `el-range-editor--${_ctx.pickerSize}` : \"\",\n _ctx.pickerDisabled ? \"is-disabled\" : \"\",\n _ctx.pickerVisible ? \"is-active\" : \"\"\n ]],\n onClick: _cache[10] || (_cache[10] = (...args) => _ctx.handleFocus && _ctx.handleFocus(...args)),\n onMouseenter: _cache[11] || (_cache[11] = (...args) => _ctx.onMouseEnter && _ctx.onMouseEnter(...args)),\n onMouseleave: _cache[12] || (_cache[12] = (...args) => _ctx.onMouseLeave && _ctx.onMouseLeave(...args)),\n onKeydown: _cache[13] || (_cache[13] = (...args) => _ctx.handleKeydown && _ctx.handleKeydown(...args))\n }, [\n createVNode(\"i\", {\n class: [\"el-input__icon\", \"el-range__icon\", _ctx.triggerClass]\n }, null, 2),\n createVNode(\"input\", {\n autocomplete: \"off\",\n name: _ctx.name && _ctx.name[0],\n placeholder: _ctx.startPlaceholder,\n value: _ctx.displayValue && _ctx.displayValue[0],\n disabled: _ctx.pickerDisabled,\n readonly: !_ctx.editable || _ctx.readonly,\n class: \"el-range-input\",\n onInput: _cache[3] || (_cache[3] = (...args) => _ctx.handleStartInput && _ctx.handleStartInput(...args)),\n onChange: _cache[4] || (_cache[4] = (...args) => _ctx.handleStartChange && _ctx.handleStartChange(...args)),\n onFocus: _cache[5] || (_cache[5] = (...args) => _ctx.handleFocus && _ctx.handleFocus(...args))\n }, null, 40, [\"name\", \"placeholder\", \"value\", \"disabled\", \"readonly\"]),\n renderSlot(_ctx.$slots, \"range-separator\", {}, () => [\n createVNode(\"span\", _hoisted_1, toDisplayString(_ctx.rangeSeparator), 1)\n ]),\n createVNode(\"input\", {\n autocomplete: \"off\",\n name: _ctx.name && _ctx.name[1],\n placeholder: _ctx.endPlaceholder,\n value: _ctx.displayValue && _ctx.displayValue[1],\n disabled: _ctx.pickerDisabled,\n readonly: !_ctx.editable || _ctx.readonly,\n class: \"el-range-input\",\n onFocus: _cache[6] || (_cache[6] = (...args) => _ctx.handleFocus && _ctx.handleFocus(...args)),\n onInput: _cache[7] || (_cache[7] = (...args) => _ctx.handleEndInput && _ctx.handleEndInput(...args)),\n onChange: _cache[8] || (_cache[8] = (...args) => _ctx.handleEndChange && _ctx.handleEndChange(...args))\n }, null, 40, [\"name\", \"placeholder\", \"value\", \"disabled\", \"readonly\"]),\n createVNode(\"i\", {\n class: [[_ctx.showClose ? \"\" + _ctx.clearIcon : \"\"], \"el-input__icon el-range__close-icon\"],\n onClick: _cache[9] || (_cache[9] = (...args) => _ctx.onClearIconClick && _ctx.onClearIconClick(...args))\n }, null, 2)\n ], 34)), [\n [_directive_clickoutside, _ctx.onClickOutside, _ctx.popperPaneRef]\n ])\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {\n visible: _ctx.pickerVisible,\n actualVisible: _ctx.pickerActualVisible,\n parsedValue: _ctx.parsedValue,\n format: _ctx.format,\n unlinkPanels: _ctx.unlinkPanels,\n type: _ctx.type,\n defaultValue: _ctx.defaultValue,\n onPick: _cache[14] || (_cache[14] = (...args) => _ctx.onPick && _ctx.onPick(...args)),\n onSelectRange: _cache[15] || (_cache[15] = (...args) => _ctx.setSelectionRange && _ctx.setSelectionRange(...args)),\n onSetPickerOption: _cache[16] || (_cache[16] = (...args) => _ctx.onSetPickerOption && _ctx.onSetPickerOption(...args)),\n onCalendarChange: _cache[17] || (_cache[17] = (...args) => _ctx.onCalendarChange && _ctx.onCalendarChange(...args)),\n onMousedown: _cache[18] || (_cache[18] = withModifiers(() => {\n }, [\"stop\"]))\n })\n ]),\n _: 1\n }, 16, [\"visible\", \"popper-class\", \"popper-options\"]);\n}\n\nscript.render = render;\nscript.__file = \"packages/time-picker/src/common/picker.vue\";\n\nconst makeList = (total, method, methodFunc) => {\n const arr = [];\n const disabledArr = method && methodFunc();\n for (let i = 0; i < total; i++) {\n arr[i] = disabledArr ? disabledArr.includes(i) : false;\n }\n return arr;\n};\nconst makeAvailableArr = (list) => {\n return list.map((_, index) => !_ ? index : _).filter((_) => _ !== true);\n};\nconst getTimeLists = (disabledHours, disabledMinutes, disabledSeconds) => {\n const getHoursList = (role, compare) => {\n return makeList(24, disabledHours, () => disabledHours(role, compare));\n };\n const getMinutesList = (hour, role, compare) => {\n return makeList(60, disabledMinutes, () => disabledMinutes(hour, role, compare));\n };\n const getSecondsList = (hour, minute, role, compare) => {\n return makeList(60, disabledSeconds, () => disabledSeconds(hour, minute, role, compare));\n };\n return {\n getHoursList,\n getMinutesList,\n getSecondsList\n };\n};\nconst getAvailableArrs = (disabledHours, disabledMinutes, disabledSeconds) => {\n const {\n getHoursList,\n getMinutesList,\n getSecondsList\n } = getTimeLists(disabledHours, disabledMinutes, disabledSeconds);\n const getAvailableHours = (role, compare) => {\n return makeAvailableArr(getHoursList(role, compare));\n };\n const getAvailableMinutes = (hour, role, compare) => {\n return makeAvailableArr(getMinutesList(hour, role, compare));\n };\n const getAvailableSeconds = (hour, minute, role, compare) => {\n return makeAvailableArr(getSecondsList(hour, minute, role, compare));\n };\n return {\n getAvailableHours,\n getAvailableMinutes,\n getAvailableSeconds\n };\n};\nconst useOldValue = (props) => {\n const oldValue = ref(props.parsedValue);\n watch(() => props.visible, (val) => {\n if (!val) {\n oldValue.value = props.parsedValue;\n }\n });\n return oldValue;\n};\n\nvar script$1 = defineComponent({\n directives: {\n repeatClick: RepeatClick\n },\n components: {\n ElScrollbar\n },\n props: {\n role: {\n type: String,\n required: true\n },\n spinnerDate: {\n type: Object,\n required: true\n },\n showSeconds: {\n type: Boolean,\n default: true\n },\n arrowControl: Boolean,\n amPmMode: {\n type: String,\n default: \"\"\n },\n disabledHours: {\n type: Function\n },\n disabledMinutes: {\n type: Function\n },\n disabledSeconds: {\n type: Function\n }\n },\n emits: [\"change\", \"select-range\", \"set-option\"],\n setup(props, ctx) {\n let isScrolling = false;\n const debouncedResetScroll = debounce((type) => {\n isScrolling = false;\n adjustCurrentSpinner(type);\n }, 200);\n const currentScrollbar = ref(null);\n const listHoursRef = ref(null);\n const listMinutesRef = ref(null);\n const listSecondsRef = ref(null);\n const listRefsMap = {\n hours: listHoursRef,\n minutes: listMinutesRef,\n seconds: listSecondsRef\n };\n const spinnerItems = computed(() => {\n const arr = [\"hours\", \"minutes\", \"seconds\"];\n return props.showSeconds ? arr : arr.slice(0, 2);\n });\n const hours = computed(() => {\n return props.spinnerDate.hour();\n });\n const minutes = computed(() => {\n return props.spinnerDate.minute();\n });\n const seconds = computed(() => {\n return props.spinnerDate.second();\n });\n const timePartsMap = computed(() => ({\n hours,\n minutes,\n seconds\n }));\n const hoursList = computed(() => {\n return getHoursList(props.role);\n });\n const minutesList = computed(() => {\n return getMinutesList(hours.value, props.role);\n });\n const secondsList = computed(() => {\n return getSecondsList(hours.value, minutes.value, props.role);\n });\n const listMap = computed(() => ({\n hours: hoursList,\n minutes: minutesList,\n seconds: secondsList\n }));\n const arrowHourList = computed(() => {\n const hour = hours.value;\n return [\n hour > 0 ? hour - 1 : void 0,\n hour,\n hour < 23 ? hour + 1 : void 0\n ];\n });\n const arrowMinuteList = computed(() => {\n const minute = minutes.value;\n return [\n minute > 0 ? minute - 1 : void 0,\n minute,\n minute < 59 ? minute + 1 : void 0\n ];\n });\n const arrowSecondList = computed(() => {\n const second = seconds.value;\n return [\n second > 0 ? second - 1 : void 0,\n second,\n second < 59 ? second + 1 : void 0\n ];\n });\n const arrowListMap = computed(() => ({\n hours: arrowHourList,\n minutes: arrowMinuteList,\n seconds: arrowSecondList\n }));\n const getAmPmFlag = (hour) => {\n let shouldShowAmPm = !!props.amPmMode;\n if (!shouldShowAmPm)\n return \"\";\n let isCapital = props.amPmMode === \"A\";\n let content = hour < 12 ? \" am\" : \" pm\";\n if (isCapital)\n content = content.toUpperCase();\n return content;\n };\n const emitSelectRange = (type) => {\n if (type === \"hours\") {\n ctx.emit(\"select-range\", 0, 2);\n } else if (type === \"minutes\") {\n ctx.emit(\"select-range\", 3, 5);\n } else if (type === \"seconds\") {\n ctx.emit(\"select-range\", 6, 8);\n }\n currentScrollbar.value = type;\n };\n const adjustCurrentSpinner = (type) => {\n adjustSpinner(type, timePartsMap.value[type].value);\n };\n const adjustSpinners = () => {\n adjustCurrentSpinner(\"hours\");\n adjustCurrentSpinner(\"minutes\");\n adjustCurrentSpinner(\"seconds\");\n };\n const adjustSpinner = (type, value) => {\n if (props.arrowControl)\n return;\n const el = listRefsMap[type];\n if (el.value) {\n el.value.$el.querySelector(\".el-scrollbar__wrap\").scrollTop = Math.max(0, value * typeItemHeight(type));\n }\n };\n const typeItemHeight = (type) => {\n const el = listRefsMap[type];\n return el.value.$el.querySelector(\"li\").offsetHeight;\n };\n const onIncreaseClick = () => {\n scrollDown(1);\n };\n const onDecreaseClick = () => {\n scrollDown(-1);\n };\n const scrollDown = (step) => {\n if (!currentScrollbar.value) {\n emitSelectRange(\"hours\");\n }\n const label = currentScrollbar.value;\n let now = timePartsMap.value[label].value;\n const total = currentScrollbar.value === \"hours\" ? 24 : 60;\n now = (now + step + total) % total;\n modifyDateField(label, now);\n adjustSpinner(label, now);\n nextTick(() => emitSelectRange(currentScrollbar.value));\n };\n const modifyDateField = (type, value) => {\n const list = listMap.value[type].value;\n const isDisabled = list[value];\n if (isDisabled)\n return;\n switch (type) {\n case \"hours\":\n ctx.emit(\"change\", props.spinnerDate.hour(value).minute(minutes.value).second(seconds.value));\n break;\n case \"minutes\":\n ctx.emit(\"change\", props.spinnerDate.hour(hours.value).minute(value).second(seconds.value));\n break;\n case \"seconds\":\n ctx.emit(\"change\", props.spinnerDate.hour(hours.value).minute(minutes.value).second(value));\n break;\n }\n };\n const handleClick = (type, { value, disabled }) => {\n if (!disabled) {\n modifyDateField(type, value);\n emitSelectRange(type);\n adjustSpinner(type, value);\n }\n };\n const handleScroll = (type) => {\n isScrolling = true;\n debouncedResetScroll(type);\n const value = Math.min(Math.round((listRefsMap[type].value.$el.querySelector(\".el-scrollbar__wrap\").scrollTop - (scrollBarHeight(type) * 0.5 - 10) / typeItemHeight(type) + 3) / typeItemHeight(type)), type === \"hours\" ? 23 : 59);\n modifyDateField(type, value);\n };\n const scrollBarHeight = (type) => {\n return listRefsMap[type].value.$el.offsetHeight;\n };\n const bindScrollEvent = () => {\n const bindFuntion = (type) => {\n if (listRefsMap[type].value) {\n listRefsMap[type].value.$el.querySelector(\".el-scrollbar__wrap\").onscroll = () => {\n handleScroll(type);\n };\n }\n };\n bindFuntion(\"hours\");\n bindFuntion(\"minutes\");\n bindFuntion(\"seconds\");\n };\n onMounted(() => {\n nextTick(() => {\n !props.arrowControl && bindScrollEvent();\n adjustSpinners();\n if (props.role === \"start\")\n emitSelectRange(\"hours\");\n });\n });\n const getRefId = (item) => {\n return `list${item.charAt(0).toUpperCase() + item.slice(1)}Ref`;\n };\n ctx.emit(\"set-option\", [`${props.role}_scrollDown`, scrollDown]);\n ctx.emit(\"set-option\", [`${props.role}_emitSelectRange`, emitSelectRange]);\n const {\n getHoursList,\n getMinutesList,\n getSecondsList\n } = getTimeLists(props.disabledHours, props.disabledMinutes, props.disabledSeconds);\n watch(() => props.spinnerDate, () => {\n if (isScrolling)\n return;\n adjustSpinners();\n });\n return {\n getRefId,\n spinnerItems,\n currentScrollbar,\n hours,\n minutes,\n seconds,\n hoursList,\n minutesList,\n arrowHourList,\n arrowMinuteList,\n arrowSecondList,\n getAmPmFlag,\n emitSelectRange,\n adjustCurrentSpinner,\n typeItemHeight,\n listHoursRef,\n listMinutesRef,\n listSecondsRef,\n onIncreaseClick,\n onDecreaseClick,\n handleClick,\n secondsList,\n timePartsMap,\n arrowListMap,\n listMap\n };\n }\n});\n\nconst _hoisted_1$1 = { class: \"el-time-spinner__arrow el-icon-arrow-up\" };\nconst _hoisted_2 = { class: \"el-time-spinner__arrow el-icon-arrow-down\" };\nconst _hoisted_3 = { class: \"el-time-spinner__list\" };\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_scrollbar = resolveComponent(\"el-scrollbar\");\n const _directive_repeat_click = resolveDirective(\"repeat-click\");\n return openBlock(), createBlock(\"div\", {\n class: [\"el-time-spinner\", { \"has-seconds\": _ctx.showSeconds }]\n }, [\n !_ctx.arrowControl ? (openBlock(true), createBlock(Fragment, { key: 0 }, renderList(_ctx.spinnerItems, (item) => {\n return openBlock(), createBlock(_component_el_scrollbar, {\n key: item,\n ref: _ctx.getRefId(item),\n class: \"el-time-spinner__wrapper\",\n \"wrap-style\": \"max-height: inherit;\",\n \"view-class\": \"el-time-spinner__list\",\n noresize: \"\",\n tag: \"ul\",\n onMouseenter: ($event) => _ctx.emitSelectRange(item),\n onMousemove: ($event) => _ctx.adjustCurrentSpinner(item)\n }, {\n default: withCtx(() => [\n (openBlock(true), createBlock(Fragment, null, renderList(_ctx.listMap[item].value, (disabled, key) => {\n return openBlock(), createBlock(\"li\", {\n key,\n class: [\"el-time-spinner__item\", { \"active\": key === _ctx.timePartsMap[item].value, disabled }],\n onClick: ($event) => _ctx.handleClick(item, { value: key, disabled })\n }, [\n item === \"hours\" ? (openBlock(), createBlock(Fragment, { key: 0 }, [\n createTextVNode(toDisplayString((\"0\" + (_ctx.amPmMode ? key % 12 || 12 : key)).slice(-2)) + toDisplayString(_ctx.getAmPmFlag(key)), 1)\n ], 2112)) : (openBlock(), createBlock(Fragment, { key: 1 }, [\n createTextVNode(toDisplayString((\"0\" + key).slice(-2)), 1)\n ], 2112))\n ], 10, [\"onClick\"]);\n }), 128))\n ]),\n _: 2\n }, 1032, [\"onMouseenter\", \"onMousemove\"]);\n }), 128)) : createCommentVNode(\"v-if\", true),\n _ctx.arrowControl ? (openBlock(true), createBlock(Fragment, { key: 1 }, renderList(_ctx.spinnerItems, (item) => {\n return openBlock(), createBlock(\"div\", {\n key: item,\n class: \"el-time-spinner__wrapper is-arrow\",\n onMouseenter: ($event) => _ctx.emitSelectRange(item)\n }, [\n withDirectives(createVNode(\"i\", _hoisted_1$1, null, 512), [\n [_directive_repeat_click, _ctx.onDecreaseClick]\n ]),\n withDirectives(createVNode(\"i\", _hoisted_2, null, 512), [\n [_directive_repeat_click, _ctx.onIncreaseClick]\n ]),\n createVNode(\"ul\", _hoisted_3, [\n (openBlock(true), createBlock(Fragment, null, renderList(_ctx.arrowListMap[item].value, (time, key) => {\n return openBlock(), createBlock(\"li\", {\n key,\n class: [\"el-time-spinner__item\", { \"active\": time === _ctx.timePartsMap[item].value, \"disabled\": _ctx.listMap[item].value[time] }]\n }, toDisplayString(time === void 0 ? \"\" : (\"0\" + (_ctx.amPmMode ? time % 12 || 12 : time)).slice(-2) + _ctx.getAmPmFlag(time)), 3);\n }), 128))\n ])\n ], 40, [\"onMouseenter\"]);\n }), 128)) : createCommentVNode(\"v-if\", true)\n ], 2);\n}\n\nscript$1.render = render$1;\nscript$1.__file = \"packages/time-picker/src/time-picker-com/basic-time-spinner.vue\";\n\nvar script$2 = defineComponent({\n components: {\n TimeSpinner: script$1\n },\n props: {\n visible: Boolean,\n actualVisible: {\n type: Boolean,\n default: void 0\n },\n datetimeRole: {\n type: String\n },\n parsedValue: {\n type: [Object, String]\n },\n format: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"pick\", \"select-range\", \"set-picker-option\"],\n setup(props, ctx) {\n const { t, lang } = useLocaleInject();\n const selectionRange = ref([0, 2]);\n const oldValue = useOldValue(props);\n const transitionName = computed(() => {\n return props.actualVisible === void 0 ? \"el-zoom-in-top\" : \"\";\n });\n const showSeconds = computed(() => {\n return props.format.includes(\"ss\");\n });\n const amPmMode = computed(() => {\n if (props.format.includes(\"A\"))\n return \"A\";\n if (props.format.includes(\"a\"))\n return \"a\";\n return \"\";\n });\n const isValidValue = (_date) => {\n const parsedDate = dayjs(_date).locale(lang.value);\n const result = getRangeAvailableTime(parsedDate);\n return parsedDate.isSame(result);\n };\n const handleCancel = () => {\n ctx.emit(\"pick\", oldValue.value, false);\n };\n const handleConfirm = (visible = false, first) => {\n if (first)\n return;\n ctx.emit(\"pick\", props.parsedValue, visible);\n };\n const handleChange = (_date) => {\n if (!props.visible) {\n return;\n }\n const result = getRangeAvailableTime(_date).millisecond(0);\n ctx.emit(\"pick\", result, true);\n };\n const setSelectionRange = (start, end) => {\n ctx.emit(\"select-range\", start, end);\n selectionRange.value = [start, end];\n };\n const changeSelectionRange = (step) => {\n const list = [0, 3].concat(showSeconds.value ? [6] : []);\n const mapping = [\"hours\", \"minutes\"].concat(showSeconds.value ? [\"seconds\"] : []);\n const index = list.indexOf(selectionRange.value[0]);\n const next = (index + step + list.length) % list.length;\n timePickerOptions[\"start_emitSelectRange\"](mapping[next]);\n };\n const handleKeydown = (event) => {\n const code = event.code;\n if (code === EVENT_CODE.left || code === EVENT_CODE.right) {\n const step = code === EVENT_CODE.left ? -1 : 1;\n changeSelectionRange(step);\n event.preventDefault();\n return;\n }\n if (code === EVENT_CODE.up || code === EVENT_CODE.down) {\n const step = code === EVENT_CODE.up ? -1 : 1;\n timePickerOptions[\"start_scrollDown\"](step);\n event.preventDefault();\n return;\n }\n };\n const getRangeAvailableTime = (date) => {\n const availableMap = {\n hour: getAvailableHours,\n minute: getAvailableMinutes,\n second: getAvailableSeconds\n };\n let result = date;\n [\"hour\", \"minute\", \"second\"].forEach((_) => {\n if (availableMap[_]) {\n let availableArr;\n const method = availableMap[_];\n if (_ === \"minute\") {\n availableArr = method(result.hour(), props.datetimeRole);\n } else if (_ === \"second\") {\n availableArr = method(result.hour(), result.minute(), props.datetimeRole);\n } else {\n availableArr = method(props.datetimeRole);\n }\n if (availableArr && availableArr.length && !availableArr.includes(result[_]())) {\n result = result[_](availableArr[0]);\n }\n }\n });\n return result;\n };\n const parseUserInput = (value) => {\n if (!value)\n return null;\n return dayjs(value, props.format).locale(lang.value);\n };\n const formatToString = (value) => {\n if (!value)\n return null;\n return value.format(props.format);\n };\n const getDefaultValue = () => {\n return dayjs(defaultValue).locale(lang.value);\n };\n ctx.emit(\"set-picker-option\", [\"isValidValue\", isValidValue]);\n ctx.emit(\"set-picker-option\", [\"formatToString\", formatToString]);\n ctx.emit(\"set-picker-option\", [\"parseUserInput\", parseUserInput]);\n ctx.emit(\"set-picker-option\", [\"handleKeydown\", handleKeydown]);\n ctx.emit(\"set-picker-option\", [\"getRangeAvailableTime\", getRangeAvailableTime]);\n ctx.emit(\"set-picker-option\", [\"getDefaultValue\", getDefaultValue]);\n const timePickerOptions = {};\n const onSetOption = (e) => {\n timePickerOptions[e[0]] = e[1];\n };\n const pickerBase = inject(\"EP_PICKER_BASE\");\n const { arrowControl, disabledHours, disabledMinutes, disabledSeconds, defaultValue } = pickerBase.props;\n const {\n getAvailableHours,\n getAvailableMinutes,\n getAvailableSeconds\n } = getAvailableArrs(disabledHours, disabledMinutes, disabledSeconds);\n return {\n transitionName,\n arrowControl,\n onSetOption,\n t,\n handleConfirm,\n handleChange,\n setSelectionRange,\n amPmMode,\n showSeconds,\n handleCancel,\n disabledHours,\n disabledMinutes,\n disabledSeconds\n };\n }\n});\n\nconst _hoisted_1$2 = {\n key: 0,\n class: \"el-time-panel\"\n};\nconst _hoisted_2$1 = { class: \"el-time-panel__footer\" };\nfunction render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_time_spinner = resolveComponent(\"time-spinner\");\n return openBlock(), createBlock(Transition, { name: _ctx.transitionName }, {\n default: withCtx(() => [\n _ctx.actualVisible || _ctx.visible ? (openBlock(), createBlock(\"div\", _hoisted_1$2, [\n createVNode(\"div\", {\n class: [\"el-time-panel__content\", { \"has-seconds\": _ctx.showSeconds }]\n }, [\n createVNode(_component_time_spinner, {\n ref: \"spinner\",\n role: _ctx.datetimeRole || \"start\",\n \"arrow-control\": _ctx.arrowControl,\n \"show-seconds\": _ctx.showSeconds,\n \"am-pm-mode\": _ctx.amPmMode,\n \"spinner-date\": _ctx.parsedValue,\n \"disabled-hours\": _ctx.disabledHours,\n \"disabled-minutes\": _ctx.disabledMinutes,\n \"disabled-seconds\": _ctx.disabledSeconds,\n onChange: _ctx.handleChange,\n onSetOption: _ctx.onSetOption,\n onSelectRange: _ctx.setSelectionRange\n }, null, 8, [\"role\", \"arrow-control\", \"show-seconds\", \"am-pm-mode\", \"spinner-date\", \"disabled-hours\", \"disabled-minutes\", \"disabled-seconds\", \"onChange\", \"onSetOption\", \"onSelectRange\"])\n ], 2),\n createVNode(\"div\", _hoisted_2$1, [\n createVNode(\"button\", {\n type: \"button\",\n class: \"el-time-panel__btn cancel\",\n onClick: _cache[1] || (_cache[1] = (...args) => _ctx.handleCancel && _ctx.handleCancel(...args))\n }, toDisplayString(_ctx.t(\"el.datepicker.cancel\")), 1),\n createVNode(\"button\", {\n type: \"button\",\n class: \"el-time-panel__btn confirm\",\n onClick: _cache[2] || (_cache[2] = ($event) => _ctx.handleConfirm())\n }, toDisplayString(_ctx.t(\"el.datepicker.confirm\")), 1)\n ])\n ])) : createCommentVNode(\"v-if\", true)\n ]),\n _: 1\n }, 8, [\"name\"]);\n}\n\nscript$2.render = render$2;\nscript$2.__file = \"packages/time-picker/src/time-picker-com/panel-time-pick.vue\";\n\nconst makeSelectRange = (start, end) => {\n const result = [];\n for (let i = start; i <= end; i++) {\n result.push(i);\n }\n return result;\n};\nvar script$3 = defineComponent({\n components: { TimeSpinner: script$1 },\n props: {\n visible: Boolean,\n actualVisible: Boolean,\n parsedValue: {\n type: [Array, String]\n },\n format: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"pick\", \"select-range\", \"set-picker-option\"],\n setup(props, ctx) {\n const { t, lang } = useLocaleInject();\n const minDate = computed(() => props.parsedValue[0]);\n const maxDate = computed(() => props.parsedValue[1]);\n const oldValue = useOldValue(props);\n const handleCancel = () => {\n ctx.emit(\"pick\", oldValue.value, null);\n };\n const showSeconds = computed(() => {\n return props.format.includes(\"ss\");\n });\n const amPmMode = computed(() => {\n if (props.format.includes(\"A\"))\n return \"A\";\n if (props.format.includes(\"a\"))\n return \"a\";\n return \"\";\n });\n const minSelectableRange = ref([]);\n const maxSelectableRange = ref([]);\n const handleConfirm = (visible = false) => {\n ctx.emit(\"pick\", [minDate.value, maxDate.value], visible);\n };\n const handleMinChange = (date) => {\n handleChange(date.millisecond(0), maxDate.value);\n };\n const handleMaxChange = (date) => {\n handleChange(minDate.value, date.millisecond(0));\n };\n const isValidValue = (_date) => {\n const parsedDate = _date.map((_) => dayjs(_).locale(lang.value));\n const result = getRangeAvailableTime(parsedDate);\n return parsedDate[0].isSame(result[0]) && parsedDate[1].isSame(result[1]);\n };\n const handleChange = (_minDate, _maxDate) => {\n ctx.emit(\"pick\", [_minDate, _maxDate], true);\n };\n const btnConfirmDisabled = computed(() => {\n return minDate.value > maxDate.value;\n });\n const selectionRange = ref([0, 2]);\n const setMinSelectionRange = (start, end) => {\n ctx.emit(\"select-range\", start, end, \"min\");\n selectionRange.value = [start, end];\n };\n const offset = computed(() => showSeconds.value ? 11 : 8);\n const setMaxSelectionRange = (start, end) => {\n ctx.emit(\"select-range\", start, end, \"max\");\n selectionRange.value = [start + offset.value, end + offset.value];\n };\n const changeSelectionRange = (step) => {\n const list = showSeconds.value ? [0, 3, 6, 11, 14, 17] : [0, 3, 8, 11];\n const mapping = [\"hours\", \"minutes\"].concat(showSeconds.value ? [\"seconds\"] : []);\n const index = list.indexOf(selectionRange.value[0]);\n const next = (index + step + list.length) % list.length;\n const half = list.length / 2;\n if (next < half) {\n timePickerOptions[\"start_emitSelectRange\"](mapping[next]);\n } else {\n timePickerOptions[\"end_emitSelectRange\"](mapping[next - half]);\n }\n };\n const handleKeydown = (event) => {\n const code = event.code;\n if (code === EVENT_CODE.left || code === EVENT_CODE.right) {\n const step = code === EVENT_CODE.left ? -1 : 1;\n changeSelectionRange(step);\n event.preventDefault();\n return;\n }\n if (code === EVENT_CODE.up || code === EVENT_CODE.down) {\n const step = code === EVENT_CODE.up ? -1 : 1;\n const role = selectionRange.value[0] < offset.value ? \"start\" : \"end\";\n timePickerOptions[`${role}_scrollDown`](step);\n event.preventDefault();\n return;\n }\n };\n const disabledHours_ = (role, compare) => {\n const defaultDisable = disabledHours ? disabledHours(role) : [];\n const isStart = role === \"start\";\n const compareDate = compare || (isStart ? maxDate.value : minDate.value);\n const compareHour = compareDate.hour();\n const nextDisable = isStart ? makeSelectRange(compareHour + 1, 23) : makeSelectRange(0, compareHour - 1);\n return union(defaultDisable, nextDisable);\n };\n const disabledMinutes_ = (hour, role, compare) => {\n const defaultDisable = disabledMinutes ? disabledMinutes(hour, role) : [];\n const isStart = role === \"start\";\n const compareDate = compare || (isStart ? maxDate.value : minDate.value);\n const compareHour = compareDate.hour();\n if (hour !== compareHour) {\n return defaultDisable;\n }\n const compareMinute = compareDate.minute();\n const nextDisable = isStart ? makeSelectRange(compareMinute + 1, 59) : makeSelectRange(0, compareMinute - 1);\n return union(defaultDisable, nextDisable);\n };\n const disabledSeconds_ = (hour, minute, role, compare) => {\n const defaultDisable = disabledSeconds ? disabledSeconds(hour, minute, role) : [];\n const isStart = role === \"start\";\n const compareDate = compare || (isStart ? maxDate.value : minDate.value);\n const compareHour = compareDate.hour();\n const compareMinute = compareDate.minute();\n if (hour !== compareHour || minute !== compareMinute) {\n return defaultDisable;\n }\n const compareSecond = compareDate.second();\n const nextDisable = isStart ? makeSelectRange(compareSecond + 1, 59) : makeSelectRange(0, compareSecond - 1);\n return union(defaultDisable, nextDisable);\n };\n const getRangeAvailableTime = (dates) => {\n return dates.map((_, index) => getRangeAvailableTimeEach(dates[0], dates[1], index === 0 ? \"start\" : \"end\"));\n };\n const {\n getAvailableHours,\n getAvailableMinutes,\n getAvailableSeconds\n } = getAvailableArrs(disabledHours_, disabledMinutes_, disabledSeconds_);\n const getRangeAvailableTimeEach = (startDate, endDate, role) => {\n const availableMap = {\n hour: getAvailableHours,\n minute: getAvailableMinutes,\n second: getAvailableSeconds\n };\n const isStart = role === \"start\";\n let result = isStart ? startDate : endDate;\n const compareDate = isStart ? endDate : startDate;\n [\"hour\", \"minute\", \"second\"].forEach((_) => {\n if (availableMap[_]) {\n let availableArr;\n const method = availableMap[_];\n if (_ === \"minute\") {\n availableArr = method(result.hour(), role, compareDate);\n } else if (_ === \"second\") {\n availableArr = method(result.hour(), result.minute(), role, compareDate);\n } else {\n availableArr = method(role, compareDate);\n }\n if (availableArr && availableArr.length && !availableArr.includes(result[_]())) {\n const pos = isStart ? 0 : availableArr.length - 1;\n result = result[_](availableArr[pos]);\n }\n }\n });\n return result;\n };\n const parseUserInput = (value) => {\n if (!value)\n return null;\n if (Array.isArray(value)) {\n return value.map((_) => dayjs(_, props.format).locale(lang.value));\n }\n return dayjs(value, props.format).locale(lang.value);\n };\n const formatToString = (value) => {\n if (!value)\n return null;\n if (Array.isArray(value)) {\n return value.map((_) => _.format(props.format));\n }\n return value.format(props.format);\n };\n const getDefaultValue = () => {\n if (Array.isArray(defaultValue)) {\n return defaultValue.map((_) => dayjs(_).locale(lang.value));\n }\n const defaultDay = dayjs(defaultValue).locale(lang.value);\n return [\n defaultDay,\n defaultDay.add(60, \"m\")\n ];\n };\n ctx.emit(\"set-picker-option\", [\"formatToString\", formatToString]);\n ctx.emit(\"set-picker-option\", [\"parseUserInput\", parseUserInput]);\n ctx.emit(\"set-picker-option\", [\"isValidValue\", isValidValue]);\n ctx.emit(\"set-picker-option\", [\"handleKeydown\", handleKeydown]);\n ctx.emit(\"set-picker-option\", [\"getDefaultValue\", getDefaultValue]);\n ctx.emit(\"set-picker-option\", [\"getRangeAvailableTime\", getRangeAvailableTime]);\n const timePickerOptions = {};\n const onSetOption = (e) => {\n timePickerOptions[e[0]] = e[1];\n };\n const pickerBase = inject(\"EP_PICKER_BASE\");\n const { arrowControl, disabledHours, disabledMinutes, disabledSeconds, defaultValue } = pickerBase.props;\n return {\n arrowControl,\n onSetOption,\n setMaxSelectionRange,\n setMinSelectionRange,\n btnConfirmDisabled,\n handleCancel,\n handleConfirm,\n t,\n showSeconds,\n minDate,\n maxDate,\n amPmMode,\n handleMinChange,\n handleMaxChange,\n minSelectableRange,\n maxSelectableRange,\n disabledHours_,\n disabledMinutes_,\n disabledSeconds_\n };\n }\n});\n\nconst _hoisted_1$3 = {\n key: 0,\n class: \"el-time-range-picker el-picker-panel\"\n};\nconst _hoisted_2$2 = { class: \"el-time-range-picker__content\" };\nconst _hoisted_3$1 = { class: \"el-time-range-picker__cell\" };\nconst _hoisted_4 = { class: \"el-time-range-picker__header\" };\nconst _hoisted_5 = { class: \"el-time-range-picker__cell\" };\nconst _hoisted_6 = { class: \"el-time-range-picker__header\" };\nconst _hoisted_7 = { class: \"el-time-panel__footer\" };\nfunction render$3(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_time_spinner = resolveComponent(\"time-spinner\");\n return _ctx.actualVisible ? (openBlock(), createBlock(\"div\", _hoisted_1$3, [\n createVNode(\"div\", _hoisted_2$2, [\n createVNode(\"div\", _hoisted_3$1, [\n createVNode(\"div\", _hoisted_4, toDisplayString(_ctx.t(\"el.datepicker.startTime\")), 1),\n createVNode(\"div\", {\n class: [{ \"has-seconds\": _ctx.showSeconds, \"is-arrow\": _ctx.arrowControl }, \"el-time-range-picker__body el-time-panel__content\"]\n }, [\n createVNode(_component_time_spinner, {\n ref: \"minSpinner\",\n role: \"start\",\n \"show-seconds\": _ctx.showSeconds,\n \"am-pm-mode\": _ctx.amPmMode,\n \"arrow-control\": _ctx.arrowControl,\n \"spinner-date\": _ctx.minDate,\n \"disabled-hours\": _ctx.disabledHours_,\n \"disabled-minutes\": _ctx.disabledMinutes_,\n \"disabled-seconds\": _ctx.disabledSeconds_,\n onChange: _ctx.handleMinChange,\n onSetOption: _ctx.onSetOption,\n onSelectRange: _ctx.setMinSelectionRange\n }, null, 8, [\"show-seconds\", \"am-pm-mode\", \"arrow-control\", \"spinner-date\", \"disabled-hours\", \"disabled-minutes\", \"disabled-seconds\", \"onChange\", \"onSetOption\", \"onSelectRange\"])\n ], 2)\n ]),\n createVNode(\"div\", _hoisted_5, [\n createVNode(\"div\", _hoisted_6, toDisplayString(_ctx.t(\"el.datepicker.endTime\")), 1),\n createVNode(\"div\", {\n class: [{ \"has-seconds\": _ctx.showSeconds, \"is-arrow\": _ctx.arrowControl }, \"el-time-range-picker__body el-time-panel__content\"]\n }, [\n createVNode(_component_time_spinner, {\n ref: \"maxSpinner\",\n role: \"end\",\n \"show-seconds\": _ctx.showSeconds,\n \"am-pm-mode\": _ctx.amPmMode,\n \"arrow-control\": _ctx.arrowControl,\n \"spinner-date\": _ctx.maxDate,\n \"disabled-hours\": _ctx.disabledHours_,\n \"disabled-minutes\": _ctx.disabledMinutes_,\n \"disabled-seconds\": _ctx.disabledSeconds_,\n onChange: _ctx.handleMaxChange,\n onSetOption: _ctx.onSetOption,\n onSelectRange: _ctx.setMaxSelectionRange\n }, null, 8, [\"show-seconds\", \"am-pm-mode\", \"arrow-control\", \"spinner-date\", \"disabled-hours\", \"disabled-minutes\", \"disabled-seconds\", \"onChange\", \"onSetOption\", \"onSelectRange\"])\n ], 2)\n ])\n ]),\n createVNode(\"div\", _hoisted_7, [\n createVNode(\"button\", {\n type: \"button\",\n class: \"el-time-panel__btn cancel\",\n onClick: _cache[1] || (_cache[1] = ($event) => _ctx.handleCancel())\n }, toDisplayString(_ctx.t(\"el.datepicker.cancel\")), 1),\n createVNode(\"button\", {\n type: \"button\",\n class: \"el-time-panel__btn confirm\",\n disabled: _ctx.btnConfirmDisabled,\n onClick: _cache[2] || (_cache[2] = ($event) => _ctx.handleConfirm())\n }, toDisplayString(_ctx.t(\"el.datepicker.confirm\")), 9, [\"disabled\"])\n ])\n ])) : createCommentVNode(\"v-if\", true);\n}\n\nscript$3.render = render$3;\nscript$3.__file = \"packages/time-picker/src/time-picker-com/panel-time-range.vue\";\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\ndayjs.extend(customParseFormat);\nvar TimePicker = defineComponent({\n name: \"ElTimePicker\",\n install: null,\n props: __spreadProps(__spreadValues({}, defaultProps), {\n isRange: {\n type: Boolean,\n default: false\n }\n }),\n emits: [\"update:modelValue\"],\n setup(props, ctx) {\n const commonPicker = ref(null);\n const type = props.isRange ? \"timerange\" : \"time\";\n const panel = props.isRange ? script$3 : script$2;\n const refProps = __spreadProps(__spreadValues({}, props), {\n focus: () => {\n var _a;\n (_a = commonPicker.value) == null ? void 0 : _a.handleFocus();\n },\n blur: () => {\n var _a;\n (_a = commonPicker.value) == null ? void 0 : _a.handleBlur();\n }\n });\n provide(\"ElPopperOptions\", props.popperOptions);\n ctx.expose(refProps);\n return () => {\n var _a;\n const format = (_a = props.format) != null ? _a : DEFAULT_FORMATS_TIME;\n return h(script, __spreadProps(__spreadValues({}, props), {\n format,\n type,\n ref: commonPicker,\n \"onUpdate:modelValue\": (value) => ctx.emit(\"update:modelValue\", value)\n }), {\n default: (scopedProps) => h(panel, scopedProps)\n });\n };\n }\n});\n\nconst rangeArr = (n) => {\n return Array.from(Array(n).keys());\n};\nconst extractDateFormat = (format) => {\n return format.replace(/\\W?m{1,2}|\\W?ZZ/g, \"\").replace(/\\W?h{1,2}|\\W?s{1,3}|\\W?a/gi, \"\").trim();\n};\nconst extractTimeFormat = (format) => {\n return format.replace(/\\W?D{1,2}|\\W?Do|\\W?d{1,4}|\\W?M{1,4}|\\W?Y{2,4}/g, \"\").trim();\n};\n\nconst _TimePicker = TimePicker;\n_TimePicker.install = (app) => {\n app.component(_TimePicker.name, _TimePicker);\n};\n\nexport default _TimePicker;\nexport { script as CommonPicker, DEFAULT_FORMATS_DATE, DEFAULT_FORMATS_DATEPICKER, DEFAULT_FORMATS_TIME, script$2 as TimePickPanel, defaultProps, extractDateFormat, extractTimeFormat, rangeArr };\n","import { reactive, defineComponent, inject, h, provide, ref, getCurrentInstance, watch, nextTick, resolveComponent, withDirectives, openBlock, createBlock, withModifiers, createVNode, createCommentVNode, withCtx, Fragment, renderList, vShow, onMounted, onBeforeUnmount, onUpdated, computed, toDisplayString } from 'vue';\nimport ElCollapseTransition from '../el-collapse-transition';\nimport ElCheckbox from '../el-checkbox';\nimport mitt from 'mitt';\nimport { removeClass, addClass, on, off } from '../utils/dom';\nimport { EVENT_CODE } from '../utils/aria';\nimport { useLocaleInject } from '../hooks';\n\n/**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n * IMPORTANT: all calls of this function must be prefixed with\r\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\r\n * So that rollup can tree-shake them if necessary.\r\n */\r\nconst EMPTY_OBJ = (process.env.NODE_ENV !== 'production')\r\n ? Object.freeze({})\r\n : {};\r\nconst EMPTY_ARR = (process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\n\nconst NODE_KEY = \"$treeNodeId\";\nconst markNodeData = function(node, data) {\n if (!data || data[NODE_KEY])\n return;\n Object.defineProperty(data, NODE_KEY, {\n value: node.id,\n enumerable: false,\n configurable: false,\n writable: false\n });\n};\nconst getNodeKey = function(key, data) {\n if (!key)\n return data[NODE_KEY];\n return data[key];\n};\n\nconst getChildState = (node) => {\n let all = true;\n let none = true;\n let allWithoutDisable = true;\n for (let i = 0, j = node.length; i < j; i++) {\n const n = node[i];\n if (n.checked !== true || n.indeterminate) {\n all = false;\n if (!n.disabled) {\n allWithoutDisable = false;\n }\n }\n if (n.checked !== false || n.indeterminate) {\n none = false;\n }\n }\n return { all, none, allWithoutDisable, half: !all && !none };\n};\nconst reInitChecked = function(node) {\n if (node.childNodes.length === 0)\n return;\n const { all, none, half } = getChildState(node.childNodes);\n if (all) {\n node.checked = true;\n node.indeterminate = false;\n } else if (half) {\n node.checked = false;\n node.indeterminate = true;\n } else if (none) {\n node.checked = false;\n node.indeterminate = false;\n }\n const parent = node.parent;\n if (!parent || parent.level === 0)\n return;\n if (!node.store.checkStrictly) {\n reInitChecked(parent);\n }\n};\nconst getPropertyFromData = function(node, prop) {\n const props = node.store.props;\n const data = node.data || {};\n const config = props[prop];\n if (typeof config === \"function\") {\n return config(data, node);\n } else if (typeof config === \"string\") {\n return data[config];\n } else if (typeof config === \"undefined\") {\n const dataProp = data[prop];\n return dataProp === void 0 ? \"\" : dataProp;\n }\n};\nlet nodeIdSeed = 0;\nclass Node {\n constructor(options) {\n this.id = nodeIdSeed++;\n this.text = null;\n this.checked = false;\n this.indeterminate = false;\n this.data = null;\n this.expanded = false;\n this.parent = null;\n this.visible = true;\n this.isCurrent = false;\n this.canFocus = false;\n for (const name in options) {\n if (hasOwn(options, name)) {\n this[name] = options[name];\n }\n }\n this.level = 0;\n this.loaded = false;\n this.childNodes = [];\n this.loading = false;\n if (this.parent) {\n this.level = this.parent.level + 1;\n }\n }\n initialize() {\n const store = this.store;\n if (!store) {\n throw new Error(\"[Node]store is required!\");\n }\n store.registerNode(this);\n const props = store.props;\n if (props && typeof props.isLeaf !== \"undefined\") {\n const isLeaf = getPropertyFromData(this, \"isLeaf\");\n if (typeof isLeaf === \"boolean\") {\n this.isLeafByUser = isLeaf;\n }\n }\n if (store.lazy !== true && this.data) {\n this.setData(this.data);\n if (store.defaultExpandAll) {\n this.expanded = true;\n this.canFocus = true;\n }\n } else if (this.level > 0 && store.lazy && store.defaultExpandAll) {\n this.expand();\n }\n if (!Array.isArray(this.data)) {\n markNodeData(this, this.data);\n }\n if (!this.data)\n return;\n const defaultExpandedKeys = store.defaultExpandedKeys;\n const key = store.key;\n if (key && defaultExpandedKeys && defaultExpandedKeys.indexOf(this.key) !== -1) {\n this.expand(null, store.autoExpandParent);\n }\n if (key && store.currentNodeKey !== void 0 && this.key === store.currentNodeKey) {\n store.currentNode = this;\n store.currentNode.isCurrent = true;\n }\n if (store.lazy) {\n store._initDefaultCheckedNode(this);\n }\n this.updateLeafState();\n if (this.parent && (this.level === 1 || this.parent.expanded === true))\n this.canFocus = true;\n }\n setData(data) {\n if (!Array.isArray(data)) {\n markNodeData(this, data);\n }\n this.data = data;\n this.childNodes = [];\n let children;\n if (this.level === 0 && this.data instanceof Array) {\n children = this.data;\n } else {\n children = getPropertyFromData(this, \"children\") || [];\n }\n for (let i = 0, j = children.length; i < j; i++) {\n this.insertChild({ data: children[i] });\n }\n }\n get label() {\n return getPropertyFromData(this, \"label\");\n }\n get key() {\n const nodeKey = this.store.key;\n if (this.data)\n return this.data[nodeKey];\n return null;\n }\n get disabled() {\n return getPropertyFromData(this, \"disabled\");\n }\n get nextSibling() {\n const parent = this.parent;\n if (parent) {\n const index = parent.childNodes.indexOf(this);\n if (index > -1) {\n return parent.childNodes[index + 1];\n }\n }\n return null;\n }\n get previousSibling() {\n const parent = this.parent;\n if (parent) {\n const index = parent.childNodes.indexOf(this);\n if (index > -1) {\n return index > 0 ? parent.childNodes[index - 1] : null;\n }\n }\n return null;\n }\n contains(target, deep = true) {\n return (this.childNodes || []).some((child) => child === target || deep && child.contains(target));\n }\n remove() {\n const parent = this.parent;\n if (parent) {\n parent.removeChild(this);\n }\n }\n insertChild(child, index, batch) {\n if (!child)\n throw new Error(\"insertChild error: child is required.\");\n if (!(child instanceof Node)) {\n if (!batch) {\n const children = this.getChildren(true);\n if (children.indexOf(child.data) === -1) {\n if (typeof index === \"undefined\" || index < 0) {\n children.push(child.data);\n } else {\n children.splice(index, 0, child.data);\n }\n }\n }\n Object.assign(child, {\n parent: this,\n store: this.store\n });\n child = reactive(new Node(child));\n if (child instanceof Node) {\n child.initialize();\n }\n }\n child.level = this.level + 1;\n if (typeof index === \"undefined\" || index < 0) {\n this.childNodes.push(child);\n } else {\n this.childNodes.splice(index, 0, child);\n }\n this.updateLeafState();\n }\n insertBefore(child, ref) {\n let index;\n if (ref) {\n index = this.childNodes.indexOf(ref);\n }\n this.insertChild(child, index);\n }\n insertAfter(child, ref) {\n let index;\n if (ref) {\n index = this.childNodes.indexOf(ref);\n if (index !== -1)\n index += 1;\n }\n this.insertChild(child, index);\n }\n removeChild(child) {\n const children = this.getChildren() || [];\n const dataIndex = children.indexOf(child.data);\n if (dataIndex > -1) {\n children.splice(dataIndex, 1);\n }\n const index = this.childNodes.indexOf(child);\n if (index > -1) {\n this.store && this.store.deregisterNode(child);\n child.parent = null;\n this.childNodes.splice(index, 1);\n }\n this.updateLeafState();\n }\n removeChildByData(data) {\n let targetNode = null;\n for (let i = 0; i < this.childNodes.length; i++) {\n if (this.childNodes[i].data === data) {\n targetNode = this.childNodes[i];\n break;\n }\n }\n if (targetNode) {\n this.removeChild(targetNode);\n }\n }\n expand(callback, expandParent) {\n const done = () => {\n if (expandParent) {\n let parent = this.parent;\n while (parent.level > 0) {\n parent.expanded = true;\n parent = parent.parent;\n }\n }\n this.expanded = true;\n if (callback)\n callback();\n this.childNodes.forEach((item) => {\n item.canFocus = true;\n });\n };\n if (this.shouldLoadData()) {\n this.loadData((data) => {\n if (Array.isArray(data)) {\n if (this.checked) {\n this.setChecked(true, true);\n } else if (!this.store.checkStrictly) {\n reInitChecked(this);\n }\n done();\n }\n });\n } else {\n done();\n }\n }\n doCreateChildren(array, defaultProps = {}) {\n array.forEach((item) => {\n this.insertChild(Object.assign({ data: item }, defaultProps), void 0, true);\n });\n }\n collapse() {\n this.expanded = false;\n this.childNodes.forEach((item) => {\n item.canFocus = false;\n });\n }\n shouldLoadData() {\n return this.store.lazy === true && this.store.load && !this.loaded;\n }\n updateLeafState() {\n if (this.store.lazy === true && this.loaded !== true && typeof this.isLeafByUser !== \"undefined\") {\n this.isLeaf = this.isLeafByUser;\n return;\n }\n const childNodes = this.childNodes;\n if (!this.store.lazy || this.store.lazy === true && this.loaded === true) {\n this.isLeaf = !childNodes || childNodes.length === 0;\n return;\n }\n this.isLeaf = false;\n }\n setChecked(value, deep, recursion, passValue) {\n this.indeterminate = value === \"half\";\n this.checked = value === true;\n if (this.store.checkStrictly)\n return;\n if (!(this.shouldLoadData() && !this.store.checkDescendants)) {\n const { all, allWithoutDisable } = getChildState(this.childNodes);\n if (!this.isLeaf && (!all && allWithoutDisable)) {\n this.checked = false;\n value = false;\n }\n const handleDescendants = () => {\n if (deep) {\n const childNodes = this.childNodes;\n for (let i = 0, j = childNodes.length; i < j; i++) {\n const child = childNodes[i];\n passValue = passValue || value !== false;\n const isCheck = child.disabled ? child.checked : passValue;\n child.setChecked(isCheck, deep, true, passValue);\n }\n const { half, all: all2 } = getChildState(childNodes);\n if (!all2) {\n this.checked = all2;\n this.indeterminate = half;\n }\n }\n };\n if (this.shouldLoadData()) {\n this.loadData(() => {\n handleDescendants();\n reInitChecked(this);\n }, {\n checked: value !== false\n });\n return;\n } else {\n handleDescendants();\n }\n }\n const parent = this.parent;\n if (!parent || parent.level === 0)\n return;\n if (!recursion) {\n reInitChecked(parent);\n }\n }\n getChildren(forceInit = false) {\n if (this.level === 0)\n return this.data;\n const data = this.data;\n if (!data)\n return null;\n const props = this.store.props;\n let children = \"children\";\n if (props) {\n children = props.children || \"children\";\n }\n if (data[children] === void 0) {\n data[children] = null;\n }\n if (forceInit && !data[children]) {\n data[children] = [];\n }\n return data[children];\n }\n updateChildren() {\n const newData = this.getChildren() || [];\n const oldData = this.childNodes.map((node) => node.data);\n const newDataMap = {};\n const newNodes = [];\n newData.forEach((item, index) => {\n const key = item[NODE_KEY];\n const isNodeExists = !!key && oldData.findIndex((data) => data[NODE_KEY] === key) >= 0;\n if (isNodeExists) {\n newDataMap[key] = { index, data: item };\n } else {\n newNodes.push({ index, data: item });\n }\n });\n if (!this.store.lazy) {\n oldData.forEach((item) => {\n if (!newDataMap[item[NODE_KEY]])\n this.removeChildByData(item);\n });\n }\n newNodes.forEach(({ index, data }) => {\n this.insertChild({ data }, index);\n });\n this.updateLeafState();\n }\n loadData(callback, defaultProps = {}) {\n if (this.store.lazy === true && this.store.load && !this.loaded && (!this.loading || Object.keys(defaultProps).length)) {\n this.loading = true;\n const resolve = (children) => {\n this.loaded = true;\n this.loading = false;\n this.childNodes = [];\n this.doCreateChildren(children, defaultProps);\n this.updateLeafState();\n if (callback) {\n callback.call(this, children);\n }\n };\n this.store.load(this, resolve);\n } else {\n if (callback) {\n callback.call(this);\n }\n }\n }\n}\n\nclass TreeStore {\n constructor(options) {\n this.currentNode = null;\n this.currentNodeKey = null;\n for (const option in options) {\n if (hasOwn(options, option)) {\n this[option] = options[option];\n }\n }\n this.nodesMap = {};\n }\n initialize() {\n this.root = new Node({\n data: this.data,\n store: this\n });\n this.root.initialize();\n if (this.lazy && this.load) {\n const loadFn = this.load;\n loadFn(this.root, (data) => {\n this.root.doCreateChildren(data);\n this._initDefaultCheckedNodes();\n });\n } else {\n this._initDefaultCheckedNodes();\n }\n }\n filter(value) {\n const filterNodeMethod = this.filterNodeMethod;\n const lazy = this.lazy;\n const traverse = function(node) {\n const childNodes = node.root ? node.root.childNodes : node.childNodes;\n childNodes.forEach((child) => {\n child.visible = filterNodeMethod.call(child, value, child.data, child);\n traverse(child);\n });\n if (!node.visible && childNodes.length) {\n let allHidden = true;\n allHidden = !childNodes.some((child) => child.visible);\n if (node.root) {\n node.root.visible = allHidden === false;\n } else {\n node.visible = allHidden === false;\n }\n }\n if (!value)\n return;\n if (node.visible && !node.isLeaf && !lazy)\n node.expand();\n };\n traverse(this);\n }\n setData(newVal) {\n const instanceChanged = newVal !== this.root.data;\n if (instanceChanged) {\n this.root.setData(newVal);\n this._initDefaultCheckedNodes();\n } else {\n this.root.updateChildren();\n }\n }\n getNode(data) {\n if (data instanceof Node)\n return data;\n const key = typeof data !== \"object\" ? data : getNodeKey(this.key, data);\n return this.nodesMap[key] || null;\n }\n insertBefore(data, refData) {\n const refNode = this.getNode(refData);\n refNode.parent.insertBefore({ data }, refNode);\n }\n insertAfter(data, refData) {\n const refNode = this.getNode(refData);\n refNode.parent.insertAfter({ data }, refNode);\n }\n remove(data) {\n const node = this.getNode(data);\n if (node && node.parent) {\n if (node === this.currentNode) {\n this.currentNode = null;\n }\n node.parent.removeChild(node);\n }\n }\n append(data, parentData) {\n const parentNode = parentData ? this.getNode(parentData) : this.root;\n if (parentNode) {\n parentNode.insertChild({ data });\n }\n }\n _initDefaultCheckedNodes() {\n const defaultCheckedKeys = this.defaultCheckedKeys || [];\n const nodesMap = this.nodesMap;\n defaultCheckedKeys.forEach((checkedKey) => {\n const node = nodesMap[checkedKey];\n if (node) {\n node.setChecked(true, !this.checkStrictly);\n }\n });\n }\n _initDefaultCheckedNode(node) {\n const defaultCheckedKeys = this.defaultCheckedKeys || [];\n if (defaultCheckedKeys.indexOf(node.key) !== -1) {\n node.setChecked(true, !this.checkStrictly);\n }\n }\n setDefaultCheckedKey(newVal) {\n if (newVal !== this.defaultCheckedKeys) {\n this.defaultCheckedKeys = newVal;\n this._initDefaultCheckedNodes();\n }\n }\n registerNode(node) {\n const key = this.key;\n if (!node || !node.data)\n return;\n if (!key) {\n this.nodesMap[node.id] = node;\n } else {\n const nodeKey = node.key;\n if (nodeKey !== void 0)\n this.nodesMap[node.key] = node;\n }\n }\n deregisterNode(node) {\n const key = this.key;\n if (!key || !node || !node.data)\n return;\n node.childNodes.forEach((child) => {\n this.deregisterNode(child);\n });\n delete this.nodesMap[node.key];\n }\n getCheckedNodes(leafOnly = false, includeHalfChecked = false) {\n const checkedNodes = [];\n const traverse = function(node) {\n const childNodes = node.root ? node.root.childNodes : node.childNodes;\n childNodes.forEach((child) => {\n if ((child.checked || includeHalfChecked && child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) {\n checkedNodes.push(child.data);\n }\n traverse(child);\n });\n };\n traverse(this);\n return checkedNodes;\n }\n getCheckedKeys(leafOnly = false) {\n return this.getCheckedNodes(leafOnly).map((data) => (data || {})[this.key]);\n }\n getHalfCheckedNodes() {\n const nodes = [];\n const traverse = function(node) {\n const childNodes = node.root ? node.root.childNodes : node.childNodes;\n childNodes.forEach((child) => {\n if (child.indeterminate) {\n nodes.push(child.data);\n }\n traverse(child);\n });\n };\n traverse(this);\n return nodes;\n }\n getHalfCheckedKeys() {\n return this.getHalfCheckedNodes().map((data) => (data || {})[this.key]);\n }\n _getAllNodes() {\n const allNodes = [];\n const nodesMap = this.nodesMap;\n for (const nodeKey in nodesMap) {\n if (hasOwn(nodesMap, nodeKey)) {\n allNodes.push(nodesMap[nodeKey]);\n }\n }\n return allNodes;\n }\n updateChildren(key, data) {\n const node = this.nodesMap[key];\n if (!node)\n return;\n const childNodes = node.childNodes;\n for (let i = childNodes.length - 1; i >= 0; i--) {\n const child = childNodes[i];\n this.remove(child.data);\n }\n for (let i = 0, j = data.length; i < j; i++) {\n const child = data[i];\n this.append(child, node.data);\n }\n }\n _setCheckedKeys(key, leafOnly = false, checkedKeys) {\n const allNodes = this._getAllNodes().sort((a, b) => b.level - a.level);\n const cache = Object.create(null);\n const keys = Object.keys(checkedKeys);\n allNodes.forEach((node) => node.setChecked(false, false));\n for (let i = 0, j = allNodes.length; i < j; i++) {\n const node = allNodes[i];\n const nodeKey = node.data[key].toString();\n const checked = keys.indexOf(nodeKey) > -1;\n if (!checked) {\n if (node.checked && !cache[nodeKey]) {\n node.setChecked(false, false);\n }\n continue;\n }\n let parent = node.parent;\n while (parent && parent.level > 0) {\n cache[parent.data[key]] = true;\n parent = parent.parent;\n }\n if (node.isLeaf || this.checkStrictly) {\n node.setChecked(true, false);\n continue;\n }\n node.setChecked(true, true);\n if (leafOnly) {\n node.setChecked(false, false);\n const traverse = function(node2) {\n const childNodes = node2.childNodes;\n childNodes.forEach((child) => {\n if (!child.isLeaf) {\n child.setChecked(false, false);\n }\n traverse(child);\n });\n };\n traverse(node);\n }\n }\n }\n setCheckedNodes(array, leafOnly = false) {\n const key = this.key;\n const checkedKeys = {};\n array.forEach((item) => {\n checkedKeys[(item || {})[key]] = true;\n });\n this._setCheckedKeys(key, leafOnly, checkedKeys);\n }\n setCheckedKeys(keys, leafOnly = false) {\n this.defaultCheckedKeys = keys;\n const key = this.key;\n const checkedKeys = {};\n keys.forEach((key2) => {\n checkedKeys[key2] = true;\n });\n this._setCheckedKeys(key, leafOnly, checkedKeys);\n }\n setDefaultExpandedKeys(keys) {\n keys = keys || [];\n this.defaultExpandedKeys = keys;\n keys.forEach((key) => {\n const node = this.getNode(key);\n if (node)\n node.expand(null, this.autoExpandParent);\n });\n }\n setChecked(data, checked, deep) {\n const node = this.getNode(data);\n if (node) {\n node.setChecked(!!checked, deep);\n }\n }\n getCurrentNode() {\n return this.currentNode;\n }\n setCurrentNode(currentNode) {\n const prevCurrentNode = this.currentNode;\n if (prevCurrentNode) {\n prevCurrentNode.isCurrent = false;\n }\n this.currentNode = currentNode;\n this.currentNode.isCurrent = true;\n }\n setUserCurrentNode(node, shouldAutoExpandParent = true) {\n const key = node[this.key];\n const currNode = this.nodesMap[key];\n this.setCurrentNode(currNode);\n if (shouldAutoExpandParent && this.currentNode.level > 1) {\n this.currentNode.parent.expand(null, true);\n }\n }\n setCurrentNodeKey(key, shouldAutoExpandParent = true) {\n if (key === null || key === void 0) {\n this.currentNode && (this.currentNode.isCurrent = false);\n this.currentNode = null;\n return;\n }\n const node = this.getNode(key);\n if (node) {\n this.setCurrentNode(node);\n if (shouldAutoExpandParent && this.currentNode.level > 1) {\n this.currentNode.parent.expand(null, true);\n }\n }\n }\n}\n\nvar script = defineComponent({\n name: \"ElTreeNodeContent\",\n props: {\n node: {\n type: Object,\n required: true\n },\n renderContent: Function\n },\n setup(props) {\n const nodeInstance = inject(\"NodeInstance\");\n const tree = inject(\"RootTree\");\n return () => {\n const node = props.node;\n const { data, store } = node;\n return props.renderContent ? props.renderContent(h, { _self: nodeInstance, node, data, store }) : tree.ctx.slots.default ? tree.ctx.slots.default({ node, data }) : h(\"span\", { class: \"el-tree-node__label\" }, [node.label]);\n };\n }\n});\n\nscript.__file = \"packages/tree/src/tree-node-content.vue\";\n\nfunction useNodeExpandEventBroadcast(props) {\n const parentNodeMap = inject(\"TreeNodeMap\", null);\n const currentNodeMap = {\n treeNodeExpand: (node) => {\n if (props.node !== node) {\n props.node.collapse();\n }\n },\n children: []\n };\n if (parentNodeMap) {\n parentNodeMap.children.push(currentNodeMap);\n }\n provide(\"TreeNodeMap\", currentNodeMap);\n return {\n broadcastExpanded: (node) => {\n if (!props.accordion)\n return;\n for (const childNode of currentNodeMap.children) {\n childNode.treeNodeExpand(node);\n }\n }\n };\n}\n\nfunction useDragNodeHandler({ props, ctx, el$, dropIndicator$, store }) {\n const emitter = mitt();\n provide(\"DragNodeEmitter\", emitter);\n const dragState = ref({\n showDropIndicator: false,\n draggingNode: null,\n dropNode: null,\n allowDrop: true,\n dropType: null\n });\n emitter.on(\"tree-node-drag-start\", ({ event, treeNode }) => {\n if (typeof props.allowDrag === \"function\" && !props.allowDrag(treeNode.node)) {\n event.preventDefault();\n return false;\n }\n event.dataTransfer.effectAllowed = \"move\";\n try {\n event.dataTransfer.setData(\"text/plain\", \"\");\n } catch (e) {\n }\n dragState.value.draggingNode = treeNode;\n ctx.emit(\"node-drag-start\", treeNode.node, event);\n });\n emitter.on(\"tree-node-drag-over\", ({ event, treeNode }) => {\n const dropNode = treeNode;\n const oldDropNode = dragState.value.dropNode;\n if (oldDropNode && oldDropNode !== dropNode) {\n removeClass(oldDropNode.$el, \"is-drop-inner\");\n }\n const draggingNode = dragState.value.draggingNode;\n if (!draggingNode || !dropNode)\n return;\n let dropPrev = true;\n let dropInner = true;\n let dropNext = true;\n let userAllowDropInner = true;\n if (typeof props.allowDrop === \"function\") {\n dropPrev = props.allowDrop(draggingNode.node, dropNode.node, \"prev\");\n userAllowDropInner = dropInner = props.allowDrop(draggingNode.node, dropNode.node, \"inner\");\n dropNext = props.allowDrop(draggingNode.node, dropNode.node, \"next\");\n }\n event.dataTransfer.dropEffect = dropInner ? \"move\" : \"none\";\n if ((dropPrev || dropInner || dropNext) && oldDropNode !== dropNode) {\n if (oldDropNode) {\n ctx.emit(\"node-drag-leave\", draggingNode.node, oldDropNode.node, event);\n }\n ctx.emit(\"node-drag-enter\", draggingNode.node, dropNode.node, event);\n }\n if (dropPrev || dropInner || dropNext) {\n dragState.value.dropNode = dropNode;\n }\n if (dropNode.node.nextSibling === draggingNode.node) {\n dropNext = false;\n }\n if (dropNode.node.previousSibling === draggingNode.node) {\n dropPrev = false;\n }\n if (dropNode.node.contains(draggingNode.node, false)) {\n dropInner = false;\n }\n if (draggingNode.node === dropNode.node || draggingNode.node.contains(dropNode.node)) {\n dropPrev = false;\n dropInner = false;\n dropNext = false;\n }\n const targetPosition = dropNode.$el.getBoundingClientRect();\n const treePosition = el$.value.getBoundingClientRect();\n let dropType;\n const prevPercent = dropPrev ? dropInner ? 0.25 : dropNext ? 0.45 : 1 : -1;\n const nextPercent = dropNext ? dropInner ? 0.75 : dropPrev ? 0.55 : 0 : 1;\n let indicatorTop = -9999;\n const distance = event.clientY - targetPosition.top;\n if (distance < targetPosition.height * prevPercent) {\n dropType = \"before\";\n } else if (distance > targetPosition.height * nextPercent) {\n dropType = \"after\";\n } else if (dropInner) {\n dropType = \"inner\";\n } else {\n dropType = \"none\";\n }\n const iconPosition = dropNode.$el.querySelector(\".el-tree-node__expand-icon\").getBoundingClientRect();\n const dropIndicator = dropIndicator$.value;\n if (dropType === \"before\") {\n indicatorTop = iconPosition.top - treePosition.top;\n } else if (dropType === \"after\") {\n indicatorTop = iconPosition.bottom - treePosition.top;\n }\n dropIndicator.style.top = indicatorTop + \"px\";\n dropIndicator.style.left = iconPosition.right - treePosition.left + \"px\";\n if (dropType === \"inner\") {\n addClass(dropNode.$el, \"is-drop-inner\");\n } else {\n removeClass(dropNode.$el, \"is-drop-inner\");\n }\n dragState.value.showDropIndicator = dropType === \"before\" || dropType === \"after\";\n dragState.value.allowDrop = dragState.value.showDropIndicator || userAllowDropInner;\n dragState.value.dropType = dropType;\n ctx.emit(\"node-drag-over\", draggingNode.node, dropNode.node, event);\n });\n emitter.on(\"tree-node-drag-end\", (event) => {\n const { draggingNode, dropType, dropNode } = dragState.value;\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n if (draggingNode && dropNode) {\n const draggingNodeCopy = { data: draggingNode.node.data };\n if (dropType !== \"none\") {\n draggingNode.node.remove();\n }\n if (dropType === \"before\") {\n dropNode.node.parent.insertBefore(draggingNodeCopy, dropNode.node);\n } else if (dropType === \"after\") {\n dropNode.node.parent.insertAfter(draggingNodeCopy, dropNode.node);\n } else if (dropType === \"inner\") {\n dropNode.node.insertChild(draggingNodeCopy);\n }\n if (dropType !== \"none\") {\n store.value.registerNode(draggingNodeCopy);\n }\n removeClass(dropNode.$el, \"is-drop-inner\");\n ctx.emit(\"node-drag-end\", draggingNode.node, dropNode.node, dropType, event);\n if (dropType !== \"none\") {\n ctx.emit(\"node-drop\", draggingNode.node, dropNode.node, dropType, event);\n }\n }\n if (draggingNode && !dropNode) {\n ctx.emit(\"node-drag-end\", draggingNode.node, null, dropType, event);\n }\n dragState.value.showDropIndicator = false;\n dragState.value.draggingNode = null;\n dragState.value.dropNode = null;\n dragState.value.allowDrop = true;\n });\n return {\n dragState\n };\n}\nfunction useDragNodeEmitter() {\n const emitter = inject(\"DragNodeEmitter\");\n return {\n emitter\n };\n}\n\nvar script$1 = defineComponent({\n name: \"ElTreeNode\",\n components: {\n ElCollapseTransition,\n ElCheckbox,\n NodeContent: script\n },\n props: {\n node: {\n type: Node,\n default: () => ({})\n },\n props: {\n type: Object,\n default: () => ({})\n },\n accordion: Boolean,\n renderContent: Function,\n renderAfterExpand: Boolean,\n showCheckbox: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"node-expand\"],\n setup(props, ctx) {\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props);\n const tree = inject(\"RootTree\");\n const expanded = ref(false);\n const childNodeRendered = ref(false);\n const oldChecked = ref(null);\n const oldIndeterminate = ref(null);\n const node$ = ref(null);\n const { emitter } = useDragNodeEmitter();\n const instance = getCurrentInstance();\n provide(\"NodeInstance\", instance);\n if (!tree) {\n console.warn(\"Can not find node's tree.\");\n }\n if (props.node.expanded) {\n expanded.value = true;\n childNodeRendered.value = true;\n }\n const childrenKey = tree.props[\"children\"] || \"children\";\n watch(() => {\n const children = props.node.data[childrenKey];\n return children && [...children];\n }, () => {\n props.node.updateChildren();\n });\n watch(() => props.node.indeterminate, (val) => {\n handleSelectChange(props.node.checked, val);\n });\n watch(() => props.node.checked, (val) => {\n handleSelectChange(val, props.node.indeterminate);\n });\n watch(() => props.node.expanded, (val) => {\n nextTick(() => expanded.value = val);\n if (val) {\n childNodeRendered.value = true;\n }\n });\n const getNodeKey$1 = (node) => {\n return getNodeKey(tree.props.nodeKey, node.data);\n };\n const handleSelectChange = (checked, indeterminate) => {\n if (oldChecked.value !== checked || oldIndeterminate.value !== indeterminate) {\n tree.ctx.emit(\"check-change\", props.node.data, checked, indeterminate);\n }\n oldChecked.value = checked;\n oldIndeterminate.value = indeterminate;\n };\n const handleClick = () => {\n const store = tree.store.value;\n store.setCurrentNode(props.node);\n tree.ctx.emit(\"current-change\", store.currentNode ? store.currentNode.data : null, store.currentNode);\n tree.currentNode.value = props.node;\n if (tree.props.expandOnClickNode) {\n handleExpandIconClick();\n }\n if (tree.props.checkOnClickNode && !props.node.disabled) {\n handleCheckChange(null, {\n target: { checked: !props.node.checked }\n });\n }\n tree.ctx.emit(\"node-click\", props.node.data, props.node, instance);\n };\n const handleContextMenu = (event) => {\n if (tree.instance.vnode.props[\"onNodeContextmenu\"]) {\n event.stopPropagation();\n event.preventDefault();\n }\n tree.ctx.emit(\"node-contextmenu\", event, props.node.data, props.node, instance);\n };\n const handleExpandIconClick = () => {\n if (props.node.isLeaf)\n return;\n if (expanded.value) {\n tree.ctx.emit(\"node-collapse\", props.node.data, props.node, instance);\n props.node.collapse();\n } else {\n props.node.expand();\n ctx.emit(\"node-expand\", props.node.data, props.node, instance);\n }\n };\n const handleCheckChange = (value, ev) => {\n props.node.setChecked(ev.target.checked, !tree.props.checkStrictly);\n nextTick(() => {\n const store = tree.store.value;\n tree.ctx.emit(\"check\", props.node.data, {\n checkedNodes: store.getCheckedNodes(),\n checkedKeys: store.getCheckedKeys(),\n halfCheckedNodes: store.getHalfCheckedNodes(),\n halfCheckedKeys: store.getHalfCheckedKeys()\n });\n });\n };\n const handleChildNodeExpand = (nodeData, node, instance2) => {\n broadcastExpanded(node);\n tree.ctx.emit(\"node-expand\", nodeData, node, instance2);\n };\n const handleDragStart = (event) => {\n if (!tree.props.draggable)\n return;\n emitter.emit(\"tree-node-drag-start\", { event, treeNode: props });\n };\n const handleDragOver = (event) => {\n if (!tree.props.draggable)\n return;\n emitter.emit(\"tree-node-drag-over\", { event, treeNode: { $el: node$.value, node: props.node } });\n event.preventDefault();\n };\n const handleDrop = (event) => {\n event.preventDefault();\n };\n const handleDragEnd = (event) => {\n if (!tree.props.draggable)\n return;\n emitter.emit(\"tree-node-drag-end\", event);\n };\n return {\n node$,\n tree,\n expanded,\n childNodeRendered,\n oldChecked,\n oldIndeterminate,\n emitter,\n getNodeKey: getNodeKey$1,\n handleSelectChange,\n handleClick,\n handleContextMenu,\n handleExpandIconClick,\n handleCheckChange,\n handleChildNodeExpand,\n handleDragStart,\n handleDragOver,\n handleDrop,\n handleDragEnd\n };\n }\n});\n\nconst _hoisted_1 = {\n key: 1,\n class: \"el-tree-node__loading-icon el-icon-loading\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_checkbox = resolveComponent(\"el-checkbox\");\n const _component_node_content = resolveComponent(\"node-content\");\n const _component_el_tree_node = resolveComponent(\"el-tree-node\");\n const _component_el_collapse_transition = resolveComponent(\"el-collapse-transition\");\n return withDirectives((openBlock(), createBlock(\"div\", {\n ref: \"node$\",\n class: [\"el-tree-node\", {\n \"is-expanded\": _ctx.expanded,\n \"is-current\": _ctx.node.isCurrent,\n \"is-hidden\": !_ctx.node.visible,\n \"is-focusable\": !_ctx.node.disabled,\n \"is-checked\": !_ctx.node.disabled && _ctx.node.checked\n }],\n role: \"treeitem\",\n tabindex: \"-1\",\n \"aria-expanded\": _ctx.expanded,\n \"aria-disabled\": _ctx.node.disabled,\n \"aria-checked\": _ctx.node.checked,\n draggable: _ctx.tree.props.draggable,\n \"data-key\": _ctx.getNodeKey(_ctx.node),\n onClick: _cache[3] || (_cache[3] = withModifiers((...args) => _ctx.handleClick && _ctx.handleClick(...args), [\"stop\"])),\n onContextmenu: _cache[4] || (_cache[4] = (...args) => _ctx.handleContextMenu && _ctx.handleContextMenu(...args)),\n onDragstart: _cache[5] || (_cache[5] = withModifiers((...args) => _ctx.handleDragStart && _ctx.handleDragStart(...args), [\"stop\"])),\n onDragover: _cache[6] || (_cache[6] = withModifiers((...args) => _ctx.handleDragOver && _ctx.handleDragOver(...args), [\"stop\"])),\n onDragend: _cache[7] || (_cache[7] = withModifiers((...args) => _ctx.handleDragEnd && _ctx.handleDragEnd(...args), [\"stop\"])),\n onDrop: _cache[8] || (_cache[8] = withModifiers((...args) => _ctx.handleDrop && _ctx.handleDrop(...args), [\"stop\"]))\n }, [\n createVNode(\"div\", {\n class: \"el-tree-node__content\",\n style: { \"padding-left\": (_ctx.node.level - 1) * _ctx.tree.props.indent + \"px\" }\n }, [\n createVNode(\"span\", {\n class: [\n {\n \"is-leaf\": _ctx.node.isLeaf,\n expanded: !_ctx.node.isLeaf && _ctx.expanded\n },\n \"el-tree-node__expand-icon\",\n _ctx.tree.props.iconClass ? _ctx.tree.props.iconClass : \"el-icon-caret-right\"\n ],\n onClick: _cache[1] || (_cache[1] = withModifiers((...args) => _ctx.handleExpandIconClick && _ctx.handleExpandIconClick(...args), [\"stop\"]))\n }, null, 2),\n _ctx.showCheckbox ? (openBlock(), createBlock(_component_el_checkbox, {\n key: 0,\n \"model-value\": _ctx.node.checked,\n indeterminate: _ctx.node.indeterminate,\n disabled: !!_ctx.node.disabled,\n onClick: _cache[2] || (_cache[2] = withModifiers(() => {\n }, [\"stop\"])),\n onChange: _ctx.handleCheckChange\n }, null, 8, [\"model-value\", \"indeterminate\", \"disabled\", \"onChange\"])) : createCommentVNode(\"v-if\", true),\n _ctx.node.loading ? (openBlock(), createBlock(\"span\", _hoisted_1)) : createCommentVNode(\"v-if\", true),\n createVNode(_component_node_content, {\n node: _ctx.node,\n \"render-content\": _ctx.renderContent\n }, null, 8, [\"node\", \"render-content\"])\n ], 4),\n createVNode(_component_el_collapse_transition, null, {\n default: withCtx(() => [\n !_ctx.renderAfterExpand || _ctx.childNodeRendered ? withDirectives((openBlock(), createBlock(\"div\", {\n key: 0,\n class: \"el-tree-node__children\",\n role: \"group\",\n \"aria-expanded\": _ctx.expanded\n }, [\n (openBlock(true), createBlock(Fragment, null, renderList(_ctx.node.childNodes, (child) => {\n return openBlock(), createBlock(_component_el_tree_node, {\n key: _ctx.getNodeKey(child),\n \"render-content\": _ctx.renderContent,\n \"render-after-expand\": _ctx.renderAfterExpand,\n \"show-checkbox\": _ctx.showCheckbox,\n node: child,\n onNodeExpand: _ctx.handleChildNodeExpand\n }, null, 8, [\"render-content\", \"render-after-expand\", \"show-checkbox\", \"node\", \"onNodeExpand\"]);\n }), 128))\n ], 8, [\"aria-expanded\"])), [\n [vShow, _ctx.expanded]\n ]) : createCommentVNode(\"v-if\", true)\n ]),\n _: 1\n })\n ], 42, [\"aria-expanded\", \"aria-disabled\", \"aria-checked\", \"draggable\", \"data-key\"])), [\n [vShow, _ctx.node.visible]\n ]);\n}\n\nscript$1.render = render;\nscript$1.__file = \"packages/tree/src/tree-node.vue\";\n\nfunction useKeydown({ el$ }, store) {\n const treeItems = ref([]);\n const checkboxItems = ref([]);\n onMounted(() => {\n initTabIndex();\n on(el$.value, \"keydown\", handleKeydown);\n });\n onBeforeUnmount(() => {\n off(el$.value, \"keydown\", handleKeydown);\n });\n onUpdated(() => {\n treeItems.value = Array.from(el$.value.querySelectorAll(\"[role=treeitem]\"));\n checkboxItems.value = Array.from(el$.value.querySelectorAll(\"input[type=checkbox]\"));\n });\n watch(checkboxItems, (val) => {\n val.forEach((checkbox) => {\n checkbox.setAttribute(\"tabindex\", \"-1\");\n });\n });\n const handleKeydown = (ev) => {\n const currentItem = ev.target;\n if (currentItem.className.indexOf(\"el-tree-node\") === -1)\n return;\n const code = ev.code;\n treeItems.value = Array.from(el$.value.querySelectorAll(\".is-focusable[role=treeitem]\"));\n const currentIndex = treeItems.value.indexOf(currentItem);\n let nextIndex;\n if ([EVENT_CODE.up, EVENT_CODE.down].indexOf(code) > -1) {\n ev.preventDefault();\n if (code === EVENT_CODE.up) {\n nextIndex = currentIndex === -1 ? 0 : currentIndex !== 0 ? currentIndex - 1 : treeItems.value.length - 1;\n const startIndex = nextIndex;\n while (true) {\n if (store.value.getNode(treeItems.value[nextIndex].dataset.key).canFocus)\n break;\n nextIndex--;\n if (nextIndex === startIndex) {\n nextIndex = -1;\n break;\n }\n if (nextIndex < 0) {\n nextIndex = treeItems.value.length - 1;\n }\n }\n } else {\n nextIndex = currentIndex === -1 ? 0 : currentIndex < treeItems.value.length - 1 ? currentIndex + 1 : 0;\n const startIndex = nextIndex;\n while (true) {\n if (store.value.getNode(treeItems.value[nextIndex].dataset.key).canFocus)\n break;\n nextIndex++;\n if (nextIndex === startIndex) {\n nextIndex = -1;\n break;\n }\n if (nextIndex >= treeItems.value.length) {\n nextIndex = 0;\n }\n }\n }\n nextIndex !== -1 && treeItems.value[nextIndex].focus();\n }\n if ([EVENT_CODE.left, EVENT_CODE.right].indexOf(code) > -1) {\n ev.preventDefault();\n currentItem.click();\n }\n const hasInput = currentItem.querySelector('[type=\"checkbox\"]');\n if ([EVENT_CODE.enter, EVENT_CODE.space].indexOf(code) > -1 && hasInput) {\n ev.preventDefault();\n hasInput.click();\n }\n };\n const initTabIndex = () => {\n var _a;\n treeItems.value = Array.from(el$.value.querySelectorAll(\".is-focusable[role=treeitem]\"));\n checkboxItems.value = Array.from(el$.value.querySelectorAll(\"input[type=checkbox]\"));\n const checkedItem = el$.value.querySelectorAll(\".is-checked[role=treeitem]\");\n if (checkedItem.length) {\n checkedItem[0].setAttribute(\"tabindex\", \"0\");\n return;\n }\n (_a = treeItems.value[0]) == null ? void 0 : _a.setAttribute(\"tabindex\", \"0\");\n };\n}\n\nvar script$2 = defineComponent({\n name: \"ElTree\",\n components: { ElTreeNode: script$1 },\n props: {\n data: {\n type: Array\n },\n emptyText: {\n type: String\n },\n renderAfterExpand: {\n type: Boolean,\n default: true\n },\n nodeKey: String,\n checkStrictly: Boolean,\n defaultExpandAll: Boolean,\n expandOnClickNode: {\n type: Boolean,\n default: true\n },\n checkOnClickNode: Boolean,\n checkDescendants: {\n type: Boolean,\n default: false\n },\n autoExpandParent: {\n type: Boolean,\n default: true\n },\n defaultCheckedKeys: Array,\n defaultExpandedKeys: Array,\n currentNodeKey: [String, Number],\n renderContent: Function,\n showCheckbox: {\n type: Boolean,\n default: false\n },\n draggable: {\n type: Boolean,\n default: false\n },\n allowDrag: Function,\n allowDrop: Function,\n props: {\n type: Object,\n default() {\n return {\n children: \"children\",\n label: \"label\",\n disabled: \"disabled\"\n };\n }\n },\n lazy: {\n type: Boolean,\n default: false\n },\n highlightCurrent: Boolean,\n load: Function,\n filterNodeMethod: Function,\n accordion: Boolean,\n indent: {\n type: Number,\n default: 18\n },\n iconClass: String\n },\n emits: [\n \"check-change\",\n \"current-change\",\n \"node-click\",\n \"node-contextmenu\",\n \"node-collapse\",\n \"node-expand\",\n \"check\",\n \"node-drag-start\",\n \"node-drag-end\",\n \"node-drop\",\n \"node-drag-leave\",\n \"node-drag-enter\",\n \"node-drag-over\"\n ],\n setup(props, ctx) {\n const { t } = useLocaleInject();\n const store = ref(new TreeStore({\n key: props.nodeKey,\n data: props.data,\n lazy: props.lazy,\n props: props.props,\n load: props.load,\n currentNodeKey: props.currentNodeKey,\n checkStrictly: props.checkStrictly,\n checkDescendants: props.checkDescendants,\n defaultCheckedKeys: props.defaultCheckedKeys,\n defaultExpandedKeys: props.defaultExpandedKeys,\n autoExpandParent: props.autoExpandParent,\n defaultExpandAll: props.defaultExpandAll,\n filterNodeMethod: props.filterNodeMethod\n }));\n store.value.initialize();\n const root = ref(store.value.root);\n const currentNode = ref(null);\n const el$ = ref(null);\n const dropIndicator$ = ref(null);\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props);\n const { dragState } = useDragNodeHandler({\n props,\n ctx,\n el$,\n dropIndicator$,\n store\n });\n useKeydown({ el$ }, store);\n const isEmpty = computed(() => {\n const { childNodes } = root.value;\n return !childNodes || childNodes.length === 0 || childNodes.every(({ visible }) => !visible);\n });\n watch(() => props.defaultCheckedKeys, (newVal) => {\n store.value.setDefaultCheckedKey(newVal);\n });\n watch(() => props.defaultExpandedKeys, (newVal) => {\n store.value.defaultExpandedKeys = newVal;\n store.value.setDefaultExpandedKeys(newVal);\n });\n watch(() => props.data, (newVal) => {\n store.value.setData(newVal);\n }, { deep: true });\n watch(() => props.checkStrictly, (newVal) => {\n store.value.checkStrictly = newVal;\n });\n const filter = (value) => {\n if (!props.filterNodeMethod)\n throw new Error(\"[Tree] filterNodeMethod is required when filter\");\n store.value.filter(value);\n };\n const getNodeKey$1 = (node) => {\n return getNodeKey(props.nodeKey, node.data);\n };\n const getNodePath = (data) => {\n if (!props.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in getNodePath\");\n const node = store.value.getNode(data);\n if (!node)\n return [];\n const path = [node.data];\n let parent = node.parent;\n while (parent && parent !== root.value) {\n path.push(parent.data);\n parent = parent.parent;\n }\n return path.reverse();\n };\n const getCheckedNodes = (leafOnly, includeHalfChecked) => {\n return store.value.getCheckedNodes(leafOnly, includeHalfChecked);\n };\n const getCheckedKeys = (leafOnly) => {\n return store.value.getCheckedKeys(leafOnly);\n };\n const getCurrentNode = () => {\n const currentNode2 = store.value.getCurrentNode();\n return currentNode2 ? currentNode2.data : null;\n };\n const getCurrentKey = () => {\n if (!props.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in getCurrentKey\");\n const currentNode2 = getCurrentNode();\n return currentNode2 ? currentNode2[props.nodeKey] : null;\n };\n const setCheckedNodes = (nodes, leafOnly) => {\n if (!props.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in setCheckedNodes\");\n store.value.setCheckedNodes(nodes, leafOnly);\n };\n const setCheckedKeys = (keys, leafOnly) => {\n if (!props.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in setCheckedKeys\");\n store.value.setCheckedKeys(keys, leafOnly);\n };\n const setChecked = (data, checked, deep) => {\n store.value.setChecked(data, checked, deep);\n };\n const getHalfCheckedNodes = () => {\n return store.value.getHalfCheckedNodes();\n };\n const getHalfCheckedKeys = () => {\n return store.value.getHalfCheckedKeys();\n };\n const setCurrentNode = (node, shouldAutoExpandParent = true) => {\n if (!props.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in setCurrentNode\");\n store.value.setUserCurrentNode(node, shouldAutoExpandParent);\n };\n const setCurrentKey = (key, shouldAutoExpandParent = true) => {\n if (!props.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in setCurrentKey\");\n store.value.setCurrentNodeKey(key, shouldAutoExpandParent);\n };\n const getNode = (data) => {\n return store.value.getNode(data);\n };\n const remove = (data) => {\n store.value.remove(data);\n };\n const append = (data, parentNode) => {\n store.value.append(data, parentNode);\n };\n const insertBefore = (data, refNode) => {\n store.value.insertBefore(data, refNode);\n };\n const insertAfter = (data, refNode) => {\n store.value.insertAfter(data, refNode);\n };\n const handleNodeExpand = (nodeData, node, instance) => {\n broadcastExpanded(node);\n ctx.emit(\"node-expand\", nodeData, node, instance);\n };\n const updateKeyChildren = (key, data) => {\n if (!props.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in updateKeyChild\");\n store.value.updateChildren(key, data);\n };\n provide(\"RootTree\", {\n ctx,\n props,\n store,\n root,\n currentNode,\n instance: getCurrentInstance()\n });\n return {\n store,\n root,\n currentNode,\n dragState,\n el$,\n dropIndicator$,\n isEmpty,\n filter,\n getNodeKey: getNodeKey$1,\n getNodePath,\n getCheckedNodes,\n getCheckedKeys,\n getCurrentNode,\n getCurrentKey,\n setCheckedNodes,\n setCheckedKeys,\n setChecked,\n getHalfCheckedNodes,\n getHalfCheckedKeys,\n setCurrentNode,\n setCurrentKey,\n t,\n getNode,\n remove,\n append,\n insertBefore,\n insertAfter,\n handleNodeExpand,\n updateKeyChildren\n };\n }\n});\n\nconst _hoisted_1$1 = {\n key: 0,\n class: \"el-tree__empty-block\"\n};\nconst _hoisted_2 = { class: \"el-tree__empty-text\" };\nconst _hoisted_3 = {\n ref: \"dropIndicator$\",\n class: \"el-tree__drop-indicator\"\n};\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_tree_node = resolveComponent(\"el-tree-node\");\n return openBlock(), createBlock(\"div\", {\n ref: \"el$\",\n class: [\"el-tree\", {\n \"el-tree--highlight-current\": _ctx.highlightCurrent,\n \"is-dragging\": !!_ctx.dragState.draggingNode,\n \"is-drop-not-allow\": !_ctx.dragState.allowDrop,\n \"is-drop-inner\": _ctx.dragState.dropType === \"inner\"\n }],\n role: \"tree\"\n }, [\n (openBlock(true), createBlock(Fragment, null, renderList(_ctx.root.childNodes, (child) => {\n return openBlock(), createBlock(_component_el_tree_node, {\n key: _ctx.getNodeKey(child),\n node: child,\n props: _ctx.props,\n accordion: _ctx.accordion,\n \"render-after-expand\": _ctx.renderAfterExpand,\n \"show-checkbox\": _ctx.showCheckbox,\n \"render-content\": _ctx.renderContent,\n onNodeExpand: _ctx.handleNodeExpand\n }, null, 8, [\"node\", \"props\", \"accordion\", \"render-after-expand\", \"show-checkbox\", \"render-content\", \"onNodeExpand\"]);\n }), 128)),\n _ctx.isEmpty ? (openBlock(), createBlock(\"div\", _hoisted_1$1, [\n createVNode(\"span\", _hoisted_2, toDisplayString(_ctx.emptyText || _ctx.t(\"el.tree.emptyText\")), 1)\n ])) : createCommentVNode(\"v-if\", true),\n withDirectives(createVNode(\"div\", _hoisted_3, null, 512), [\n [vShow, _ctx.dragState.showDropIndicator]\n ])\n ], 2);\n}\n\nscript$2.render = render$1;\nscript$2.__file = \"packages/tree/src/tree.vue\";\n\nscript$2.install = (app) => {\n app.component(script$2.name, script$2);\n};\nconst _Tree = script$2;\n\nexport default _Tree;\n","import { computed, watch, defineComponent, reactive, toRefs, resolveComponent, openBlock, createBlock, createVNode, withCtx, createTextVNode, toDisplayString, createCommentVNode, withDirectives, Fragment, renderList, vShow, renderSlot, inject, ref, h } from 'vue';\nimport { useLocaleInject } from '../hooks';\nimport ElButton from '../el-button';\nimport ElCheckbox from '../el-checkbox';\nimport ElCheckboxGroup from '../el-checkbox-group';\nimport ElInput from '../el-input';\nimport { UPDATE_MODEL_EVENT as UPDATE_MODEL_EVENT$1 } from '../utils/constants';\nimport { elFormItemKey } from '../el-form';\n\nconst CHECKED_CHANGE_EVENT = \"checked-change\";\nconst useCheck = (props, panelState, emit) => {\n const labelProp = computed(() => props.props.label || \"label\");\n const keyProp = computed(() => props.props.key || \"key\");\n const disabledProp = computed(() => props.props.disabled || \"disabled\");\n const filteredData = computed(() => {\n return props.data.filter((item) => {\n if (typeof props.filterMethod === \"function\") {\n return props.filterMethod(panelState.query, item);\n } else {\n const label = item[labelProp.value] || item[keyProp.value].toString();\n return label.toLowerCase().includes(panelState.query.toLowerCase());\n }\n });\n });\n const checkableData = computed(() => {\n return filteredData.value.filter((item) => !item[disabledProp.value]);\n });\n const checkedSummary = computed(() => {\n const checkedLength = panelState.checked.length;\n const dataLength = props.data.length;\n const { noChecked, hasChecked } = props.format;\n if (noChecked && hasChecked) {\n return checkedLength > 0 ? hasChecked.replace(/\\${checked}/g, checkedLength.toString()).replace(/\\${total}/g, dataLength.toString()) : noChecked.replace(/\\${total}/g, dataLength.toString());\n } else {\n return `${checkedLength}/${dataLength}`;\n }\n });\n const isIndeterminate = computed(() => {\n const checkedLength = panelState.checked.length;\n return checkedLength > 0 && checkedLength < checkableData.value.length;\n });\n const updateAllChecked = () => {\n const checkableDataKeys = checkableData.value.map((item) => item[keyProp.value]);\n panelState.allChecked = checkableDataKeys.length > 0 && checkableDataKeys.every((item) => panelState.checked.includes(item));\n };\n const handleAllCheckedChange = (value) => {\n panelState.checked = value ? checkableData.value.map((item) => item[keyProp.value]) : [];\n };\n watch(() => panelState.checked, (val, oldVal) => {\n updateAllChecked();\n if (panelState.checkChangeByUser) {\n const movedKeys = val.concat(oldVal).filter((v) => !val.includes(v) || !oldVal.includes(v));\n emit(CHECKED_CHANGE_EVENT, val, movedKeys);\n } else {\n emit(CHECKED_CHANGE_EVENT, val);\n panelState.checkChangeByUser = true;\n }\n });\n watch(checkableData, () => {\n updateAllChecked();\n });\n watch(() => props.data, () => {\n const checked = [];\n const filteredDataKeys = filteredData.value.map((item) => item[keyProp.value]);\n panelState.checked.forEach((item) => {\n if (filteredDataKeys.includes(item)) {\n checked.push(item);\n }\n });\n panelState.checkChangeByUser = false;\n panelState.checked = checked;\n });\n watch(() => props.defaultChecked, (val, oldVal) => {\n if (oldVal && val.length === oldVal.length && val.every((item) => oldVal.includes(item)))\n return;\n const checked = [];\n const checkableDataKeys = checkableData.value.map((item) => item[keyProp.value]);\n val.forEach((item) => {\n if (checkableDataKeys.includes(item)) {\n checked.push(item);\n }\n });\n panelState.checkChangeByUser = false;\n panelState.checked = checked;\n }, {\n immediate: true\n });\n return {\n labelProp,\n keyProp,\n disabledProp,\n filteredData,\n checkableData,\n checkedSummary,\n isIndeterminate,\n updateAllChecked,\n handleAllCheckedChange\n };\n};\n\nvar script = defineComponent({\n name: \"ElTransferPanel\",\n components: {\n ElCheckboxGroup,\n ElCheckbox,\n ElInput,\n OptionContent: ({ option }) => option\n },\n props: {\n data: {\n type: Array,\n default() {\n return [];\n }\n },\n optionRender: Function,\n placeholder: String,\n title: String,\n filterable: Boolean,\n format: Object,\n filterMethod: Function,\n defaultChecked: Array,\n props: Object\n },\n emits: [CHECKED_CHANGE_EVENT],\n setup(props, { emit, slots }) {\n const { t } = useLocaleInject();\n const panelState = reactive({\n checked: [],\n allChecked: false,\n query: \"\",\n inputHover: false,\n checkChangeByUser: true\n });\n const {\n labelProp,\n keyProp,\n disabledProp,\n filteredData,\n checkedSummary,\n isIndeterminate,\n handleAllCheckedChange\n } = useCheck(props, panelState, emit);\n const hasNoMatch = computed(() => {\n return panelState.query.length > 0 && filteredData.value.length === 0;\n });\n const inputIcon = computed(() => {\n return panelState.query.length > 0 && panelState.inputHover ? \"circle-close\" : \"search\";\n });\n const hasFooter = computed(() => !!slots.default()[0].children.length);\n const clearQuery = () => {\n if (inputIcon.value === \"circle-close\") {\n panelState.query = \"\";\n }\n };\n const {\n checked,\n allChecked,\n query,\n inputHover,\n checkChangeByUser\n } = toRefs(panelState);\n return {\n labelProp,\n keyProp,\n disabledProp,\n filteredData,\n checkedSummary,\n isIndeterminate,\n handleAllCheckedChange,\n checked,\n allChecked,\n query,\n inputHover,\n checkChangeByUser,\n hasNoMatch,\n inputIcon,\n hasFooter,\n clearQuery,\n t\n };\n }\n});\n\nconst _hoisted_1 = { class: \"el-transfer-panel\" };\nconst _hoisted_2 = { class: \"el-transfer-panel__header\" };\nconst _hoisted_3 = {\n key: 0,\n class: \"el-transfer-panel__footer\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_checkbox = resolveComponent(\"el-checkbox\");\n const _component_el_input = resolveComponent(\"el-input\");\n const _component_option_content = resolveComponent(\"option-content\");\n const _component_el_checkbox_group = resolveComponent(\"el-checkbox-group\");\n return openBlock(), createBlock(\"div\", _hoisted_1, [\n createVNode(\"p\", _hoisted_2, [\n createVNode(_component_el_checkbox, {\n modelValue: _ctx.allChecked,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => _ctx.allChecked = $event),\n indeterminate: _ctx.isIndeterminate,\n onChange: _ctx.handleAllCheckedChange\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(_ctx.title) + \" \", 1),\n createVNode(\"span\", null, toDisplayString(_ctx.checkedSummary), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"indeterminate\", \"onChange\"])\n ]),\n createVNode(\"div\", {\n class: [\"el-transfer-panel__body\", _ctx.hasFooter ? \"is-with-footer\" : \"\"]\n }, [\n _ctx.filterable ? (openBlock(), createBlock(_component_el_input, {\n key: 0,\n modelValue: _ctx.query,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event) => _ctx.query = $event),\n class: \"el-transfer-panel__filter\",\n size: \"small\",\n placeholder: _ctx.placeholder,\n onMouseenter: _cache[4] || (_cache[4] = ($event) => _ctx.inputHover = true),\n onMouseleave: _cache[5] || (_cache[5] = ($event) => _ctx.inputHover = false)\n }, {\n prefix: withCtx(() => [\n createVNode(\"i\", {\n class: [\"el-input__icon\", \"el-icon-\" + _ctx.inputIcon],\n onClick: _cache[2] || (_cache[2] = (...args) => _ctx.clearQuery && _ctx.clearQuery(...args))\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\"])) : createCommentVNode(\"v-if\", true),\n withDirectives(createVNode(_component_el_checkbox_group, {\n modelValue: _ctx.checked,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event) => _ctx.checked = $event),\n class: [{ \"is-filterable\": _ctx.filterable }, \"el-transfer-panel__list\"]\n }, {\n default: withCtx(() => [\n (openBlock(true), createBlock(Fragment, null, renderList(_ctx.filteredData, (item) => {\n return openBlock(), createBlock(_component_el_checkbox, {\n key: item[_ctx.keyProp],\n class: \"el-transfer-panel__item\",\n label: item[_ctx.keyProp],\n disabled: item[_ctx.disabledProp]\n }, {\n default: withCtx(() => [\n createVNode(_component_option_content, {\n option: _ctx.optionRender(item)\n }, null, 8, [\"option\"])\n ]),\n _: 2\n }, 1032, [\"label\", \"disabled\"]);\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"class\"]), [\n [vShow, !_ctx.hasNoMatch && _ctx.data.length > 0]\n ]),\n withDirectives(createVNode(\"p\", { class: \"el-transfer-panel__empty\" }, toDisplayString(_ctx.hasNoMatch ? _ctx.t(\"el.transfer.noMatch\") : _ctx.t(\"el.transfer.noData\")), 513), [\n [vShow, _ctx.hasNoMatch || _ctx.data.length === 0]\n ])\n ], 2),\n _ctx.hasFooter ? (openBlock(), createBlock(\"p\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"default\")\n ])) : createCommentVNode(\"v-if\", true)\n ]);\n}\n\nscript.render = render;\nscript.__file = \"packages/transfer/src/transfer-panel.vue\";\n\nconst useComputedData = (props) => {\n const propsKey = computed(() => props.props.key);\n const dataObj = computed(() => {\n return props.data.reduce((o, cur) => (o[cur[propsKey.value]] = cur) && o, {});\n });\n const sourceData = computed(() => {\n return props.data.filter((item) => !props.modelValue.includes(item[propsKey.value]));\n });\n const targetData = computed(() => {\n if (props.targetOrder === \"original\") {\n return props.data.filter((item) => props.modelValue.includes(item[propsKey.value]));\n } else {\n return props.modelValue.reduce((arr, cur) => {\n const val = dataObj.value[cur];\n if (val) {\n arr.push(val);\n }\n return arr;\n }, []);\n }\n });\n return {\n propsKey,\n sourceData,\n targetData\n };\n};\n\nconst LEFT_CHECK_CHANGE_EVENT = \"left-check-change\";\nconst RIGHT_CHECK_CHANGE_EVENT = \"right-check-change\";\nconst useCheckedChange = (checkedState, emit) => {\n const onSourceCheckedChange = (val, movedKeys) => {\n checkedState.leftChecked = val;\n if (movedKeys === void 0)\n return;\n emit(LEFT_CHECK_CHANGE_EVENT, val, movedKeys);\n };\n const onTargetCheckedChange = (val, movedKeys) => {\n checkedState.rightChecked = val;\n if (movedKeys === void 0)\n return;\n emit(RIGHT_CHECK_CHANGE_EVENT, val, movedKeys);\n };\n return {\n onSourceCheckedChange,\n onTargetCheckedChange\n };\n};\n\nconst UPDATE_MODEL_EVENT = \"update:modelValue\";\n\nconst useMove = (props, checkedState, propsKey, emit) => {\n const _emit = (value, type, checked) => {\n emit(UPDATE_MODEL_EVENT, value);\n emit(CHANGE_EVENT, value, type, checked);\n };\n const addToLeft = () => {\n const currentValue = props.modelValue.slice();\n checkedState.rightChecked.forEach((item) => {\n const index = currentValue.indexOf(item);\n if (index > -1) {\n currentValue.splice(index, 1);\n }\n });\n _emit(currentValue, \"left\", checkedState.rightChecked);\n };\n const addToRight = () => {\n let currentValue = props.modelValue.slice();\n const itemsToBeMoved = props.data.filter((item) => {\n const itemKey = item[propsKey.value];\n return checkedState.leftChecked.includes(itemKey) && !props.modelValue.includes(itemKey);\n }).map((item) => item[propsKey.value]);\n currentValue = props.targetOrder === \"unshift\" ? itemsToBeMoved.concat(currentValue) : currentValue.concat(itemsToBeMoved);\n _emit(currentValue, \"right\", checkedState.leftChecked);\n };\n return {\n addToLeft,\n addToRight\n };\n};\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst CHANGE_EVENT = \"change\";\nvar script$1 = defineComponent({\n name: \"ElTransfer\",\n components: {\n TransferPanel: script,\n ElButton\n },\n props: {\n data: {\n type: Array,\n default: () => []\n },\n titles: {\n type: Array,\n default: () => []\n },\n buttonTexts: {\n type: Array,\n default: () => []\n },\n filterPlaceholder: {\n type: String,\n default: \"\"\n },\n filterMethod: Function,\n leftDefaultChecked: {\n type: Array,\n default: () => []\n },\n rightDefaultChecked: {\n type: Array,\n default: () => []\n },\n renderContent: Function,\n modelValue: {\n type: Array,\n default: () => []\n },\n format: {\n type: Object,\n default: () => ({})\n },\n filterable: {\n type: Boolean,\n default: false\n },\n props: {\n type: Object,\n default: () => ({\n label: \"label\",\n key: \"key\",\n disabled: \"disabled\"\n })\n },\n targetOrder: {\n type: String,\n default: \"original\",\n validator: (val) => {\n return [\"original\", \"push\", \"unshift\"].includes(val);\n }\n }\n },\n emits: [\n UPDATE_MODEL_EVENT$1,\n CHANGE_EVENT,\n LEFT_CHECK_CHANGE_EVENT,\n RIGHT_CHECK_CHANGE_EVENT\n ],\n setup(props, { emit, slots }) {\n const { t } = useLocaleInject();\n const elFormItem = inject(elFormItemKey, {});\n const checkedState = reactive({\n leftChecked: [],\n rightChecked: []\n });\n const {\n propsKey,\n sourceData,\n targetData\n } = useComputedData(props);\n const {\n onSourceCheckedChange,\n onTargetCheckedChange\n } = useCheckedChange(checkedState, emit);\n const {\n addToLeft,\n addToRight\n } = useMove(props, checkedState, propsKey, emit);\n const leftPanel = ref(null);\n const rightPanel = ref(null);\n const clearQuery = (which) => {\n if (which === \"left\") {\n leftPanel.value.query = \"\";\n } else if (which === \"right\") {\n rightPanel.value.query = \"\";\n }\n };\n const hasButtonTexts = computed(() => props.buttonTexts.length === 2);\n const leftPanelTitle = computed(() => props.titles[0] || t(\"el.transfer.titles.0\"));\n const rightPanelTitle = computed(() => props.titles[1] || t(\"el.transfer.titles.1\"));\n const panelFilterPlaceholder = computed(() => props.filterPlaceholder || t(\"el.transfer.filterPlaceholder\"));\n watch(() => props.modelValue, (val) => {\n var _a;\n (_a = elFormItem.formItemMitt) == null ? void 0 : _a.emit(\"el.form.change\", val);\n });\n const optionRender = computed(() => (option) => {\n if (props.renderContent)\n return props.renderContent(h, option);\n if (slots.default)\n return slots.default({ option });\n return h(\"span\", option[props.props.label] || option[props.props.key]);\n });\n return __spreadProps(__spreadValues({\n sourceData,\n targetData,\n onSourceCheckedChange,\n onTargetCheckedChange,\n addToLeft,\n addToRight\n }, toRefs(checkedState)), {\n hasButtonTexts,\n leftPanelTitle,\n rightPanelTitle,\n panelFilterPlaceholder,\n clearQuery,\n optionRender\n });\n }\n});\n\nconst _hoisted_1$1 = { class: \"el-transfer\" };\nconst _hoisted_2$1 = { class: \"el-transfer__buttons\" };\nconst _hoisted_3$1 = /* @__PURE__ */ createVNode(\"i\", { class: \"el-icon-arrow-left\" }, null, -1);\nconst _hoisted_4 = { key: 0 };\nconst _hoisted_5 = { key: 0 };\nconst _hoisted_6 = /* @__PURE__ */ createVNode(\"i\", { class: \"el-icon-arrow-right\" }, null, -1);\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_transfer_panel = resolveComponent(\"transfer-panel\");\n const _component_el_button = resolveComponent(\"el-button\");\n return openBlock(), createBlock(\"div\", _hoisted_1$1, [\n createVNode(_component_transfer_panel, {\n ref: \"leftPanel\",\n data: _ctx.sourceData,\n \"option-render\": _ctx.optionRender,\n placeholder: _ctx.panelFilterPlaceholder,\n title: _ctx.leftPanelTitle,\n filterable: _ctx.filterable,\n format: _ctx.format,\n \"filter-method\": _ctx.filterMethod,\n \"default-checked\": _ctx.leftDefaultChecked,\n props: _ctx.props,\n onCheckedChange: _ctx.onSourceCheckedChange\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"left-footer\")\n ]),\n _: 3\n }, 8, [\"data\", \"option-render\", \"placeholder\", \"title\", \"filterable\", \"format\", \"filter-method\", \"default-checked\", \"props\", \"onCheckedChange\"]),\n createVNode(\"div\", _hoisted_2$1, [\n createVNode(_component_el_button, {\n type: \"primary\",\n class: [\"el-transfer__button\", _ctx.hasButtonTexts ? \"is-with-texts\" : \"\"],\n disabled: _ctx.rightChecked.length === 0,\n onClick: _ctx.addToLeft\n }, {\n default: withCtx(() => [\n _hoisted_3$1,\n _ctx.buttonTexts[0] !== void 0 ? (openBlock(), createBlock(\"span\", _hoisted_4, toDisplayString(_ctx.buttonTexts[0]), 1)) : createCommentVNode(\"v-if\", true)\n ]),\n _: 1\n }, 8, [\"class\", \"disabled\", \"onClick\"]),\n createVNode(_component_el_button, {\n type: \"primary\",\n class: [\"el-transfer__button\", _ctx.hasButtonTexts ? \"is-with-texts\" : \"\"],\n disabled: _ctx.leftChecked.length === 0,\n onClick: _ctx.addToRight\n }, {\n default: withCtx(() => [\n _ctx.buttonTexts[1] !== void 0 ? (openBlock(), createBlock(\"span\", _hoisted_5, toDisplayString(_ctx.buttonTexts[1]), 1)) : createCommentVNode(\"v-if\", true),\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"class\", \"disabled\", \"onClick\"])\n ]),\n createVNode(_component_transfer_panel, {\n ref: \"rightPanel\",\n data: _ctx.targetData,\n \"option-render\": _ctx.optionRender,\n placeholder: _ctx.panelFilterPlaceholder,\n filterable: _ctx.filterable,\n format: _ctx.format,\n \"filter-method\": _ctx.filterMethod,\n title: _ctx.rightPanelTitle,\n \"default-checked\": _ctx.rightDefaultChecked,\n props: _ctx.props,\n onCheckedChange: _ctx.onTargetCheckedChange\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"right-footer\")\n ]),\n _: 3\n }, 8, [\"data\", \"option-render\", \"placeholder\", \"filterable\", \"format\", \"filter-method\", \"title\", \"default-checked\", \"props\", \"onCheckedChange\"])\n ]);\n}\n\nscript$1.render = render$1;\nscript$1.__file = \"packages/transfer/src/index.vue\";\n\nscript$1.install = (app) => {\n app.component(script$1.name, script$1);\n};\nconst _Transfer = script$1;\n\nexport default _Transfer;\n","import { defineComponent, ref, resolveComponent, openBlock, createBlock, TransitionGroup, withCtx, Fragment, renderList, withKeys, renderSlot, createCommentVNode, createVNode, createTextVNode, toDisplayString, inject, withModifiers, watch, computed, provide, getCurrentInstance, onBeforeUnmount, h } from 'vue';\nimport { elFormKey } from '../el-form';\nimport { useLocaleInject } from '../hooks';\nimport ElProgress from '../el-progress';\nimport cloneDeep from 'lodash/cloneDeep';\n\n/**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n * IMPORTANT: all calls of this function must be prefixed with\r\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\r\n * So that rollup can tree-shake them if necessary.\r\n */\r\nconst EMPTY_OBJ = (process.env.NODE_ENV !== 'production')\r\n ? Object.freeze({})\r\n : {};\r\nconst EMPTY_ARR = (process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];\r\nconst NOOP = () => { };\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\n\nfunction getError(action, option, xhr) {\n let msg;\n if (xhr.response) {\n msg = `${xhr.response.error || xhr.response}`;\n } else if (xhr.responseText) {\n msg = `${xhr.responseText}`;\n } else {\n msg = `fail to post ${action} ${xhr.status}`;\n }\n const err = new Error(msg);\n err.status = xhr.status;\n err.method = \"post\";\n err.url = action;\n return err;\n}\nfunction getBody(xhr) {\n const text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\nfunction upload(option) {\n if (typeof XMLHttpRequest === \"undefined\") {\n return;\n }\n const xhr = new XMLHttpRequest();\n const action = option.action;\n if (xhr.upload) {\n xhr.upload.onprogress = function progress(e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n option.onProgress(e);\n };\n }\n const formData = new FormData();\n if (option.data) {\n Object.keys(option.data).forEach((key) => {\n formData.append(key, option.data[key]);\n });\n }\n formData.append(option.filename, option.file, option.file.name);\n xhr.onerror = function error() {\n option.onError(getError(action, option, xhr));\n };\n xhr.onload = function onload() {\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(action, option, xhr));\n }\n option.onSuccess(getBody(xhr));\n };\n xhr.open(\"post\", action, true);\n if (option.withCredentials && \"withCredentials\" in xhr) {\n xhr.withCredentials = true;\n }\n const headers = option.headers || {};\n for (const item in headers) {\n if (hasOwn(headers, item) && headers[item] !== null) {\n xhr.setRequestHeader(item, headers[item]);\n }\n }\n xhr.send(formData);\n return xhr;\n}\n\nvar script = defineComponent({\n name: \"ElUploadList\",\n components: { ElProgress },\n props: {\n files: {\n type: Array,\n default: () => []\n },\n disabled: {\n type: Boolean,\n default: false\n },\n handlePreview: {\n type: Function,\n default: () => NOOP\n },\n listType: {\n type: String,\n default: \"text\"\n }\n },\n emits: [\"remove\"],\n setup(props, { emit }) {\n const { t } = useLocaleInject();\n const parsePercentage = (val) => {\n return parseInt(val, 10);\n };\n const handleClick = (file) => {\n props.handlePreview(file);\n };\n const onFileClicked = (e) => {\n e.target.focus();\n };\n const handleRemove = (e, file) => {\n emit(\"remove\", file);\n };\n return {\n focusing: ref(false),\n parsePercentage,\n handleClick,\n handleRemove,\n onFileClicked,\n t\n };\n }\n});\n\nconst _hoisted_1 = /* @__PURE__ */ createVNode(\"i\", { class: \"el-icon-document\" }, null, -1);\nconst _hoisted_2 = { class: \"el-upload-list__item-status-label\" };\nconst _hoisted_3 = {\n key: 2,\n class: \"el-icon-close-tip\"\n};\nconst _hoisted_4 = {\n key: 4,\n class: \"el-upload-list__item-actions\"\n};\nconst _hoisted_5 = /* @__PURE__ */ createVNode(\"i\", { class: \"el-icon-zoom-in\" }, null, -1);\nconst _hoisted_6 = /* @__PURE__ */ createVNode(\"i\", { class: \"el-icon-delete\" }, null, -1);\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_progress = resolveComponent(\"el-progress\");\n return openBlock(), createBlock(TransitionGroup, {\n tag: \"ul\",\n class: [\n \"el-upload-list\",\n \"el-upload-list--\" + _ctx.listType,\n { \"is-disabled\": _ctx.disabled }\n ],\n name: \"el-list\"\n }, {\n default: withCtx(() => [\n (openBlock(true), createBlock(Fragment, null, renderList(_ctx.files, (file) => {\n return openBlock(), createBlock(\"li\", {\n key: file.uid || file,\n class: [\"el-upload-list__item\", \"is-\" + file.status, _ctx.focusing ? \"focusing\" : \"\"],\n tabindex: \"0\",\n onKeydown: withKeys(($event) => !_ctx.disabled && _ctx.handleRemove($event, file), [\"delete\"]),\n onFocus: _cache[1] || (_cache[1] = ($event) => _ctx.focusing = true),\n onBlur: _cache[2] || (_cache[2] = ($event) => _ctx.focusing = false),\n onClick: _cache[3] || (_cache[3] = (...args) => _ctx.onFileClicked && _ctx.onFileClicked(...args))\n }, [\n renderSlot(_ctx.$slots, \"default\", { file }, () => [\n file.status !== \"uploading\" && [\"picture-card\", \"picture\"].includes(_ctx.listType) ? (openBlock(), createBlock(\"img\", {\n key: 0,\n class: \"el-upload-list__item-thumbnail\",\n src: file.url,\n alt: \"\"\n }, null, 8, [\"src\"])) : createCommentVNode(\"v-if\", true),\n createVNode(\"a\", {\n class: \"el-upload-list__item-name\",\n onClick: ($event) => _ctx.handleClick(file)\n }, [\n _hoisted_1,\n createTextVNode(toDisplayString(file.name), 1)\n ], 8, [\"onClick\"]),\n createVNode(\"label\", _hoisted_2, [\n createVNode(\"i\", {\n class: {\n \"el-icon-upload-success\": true,\n \"el-icon-circle-check\": _ctx.listType === \"text\",\n \"el-icon-check\": [\"picture-card\", \"picture\"].includes(_ctx.listType)\n }\n }, null, 2)\n ]),\n !_ctx.disabled ? (openBlock(), createBlock(\"i\", {\n key: 1,\n class: \"el-icon-close\",\n onClick: ($event) => _ctx.handleRemove($event, file)\n }, null, 8, [\"onClick\"])) : createCommentVNode(\"v-if\", true),\n createCommentVNode(\" Due to close btn only appears when li gets focused disappears after li gets blurred, thus keyboard navigation can never reach close btn\"),\n createCommentVNode(\" This is a bug which needs to be fixed \"),\n createCommentVNode(\" TODO: Fix the incorrect navigation interaction \"),\n !_ctx.disabled ? (openBlock(), createBlock(\"i\", _hoisted_3, toDisplayString(_ctx.t(\"el.upload.deleteTip\")), 1)) : createCommentVNode(\"v-if\", true),\n file.status === \"uploading\" ? (openBlock(), createBlock(_component_el_progress, {\n key: 3,\n type: _ctx.listType === \"picture-card\" ? \"circle\" : \"line\",\n \"stroke-width\": _ctx.listType === \"picture-card\" ? 6 : 2,\n percentage: _ctx.parsePercentage(file.percentage)\n }, null, 8, [\"type\", \"stroke-width\", \"percentage\"])) : createCommentVNode(\"v-if\", true),\n _ctx.listType === \"picture-card\" ? (openBlock(), createBlock(\"span\", _hoisted_4, [\n createVNode(\"span\", {\n class: \"el-upload-list__item-preview\",\n onClick: ($event) => _ctx.handlePreview(file)\n }, [\n _hoisted_5\n ], 8, [\"onClick\"]),\n !_ctx.disabled ? (openBlock(), createBlock(\"span\", {\n key: 0,\n class: \"el-upload-list__item-delete\",\n onClick: ($event) => _ctx.handleRemove($event, file)\n }, [\n _hoisted_6\n ], 8, [\"onClick\"])) : createCommentVNode(\"v-if\", true)\n ])) : createCommentVNode(\"v-if\", true)\n ])\n ], 42, [\"onKeydown\"]);\n }), 128))\n ]),\n _: 3\n }, 8, [\"class\"]);\n}\n\nscript.render = render;\nscript.__file = \"packages/upload/src/upload-list.vue\";\n\nvar script$1 = defineComponent({\n name: \"ElUploadDrag\",\n props: {\n disabled: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"file\"],\n setup(props, { emit }) {\n const uploader = inject(\"uploader\", {});\n const dragover = ref(false);\n function onDrop(e) {\n if (props.disabled || !uploader)\n return;\n const accept = uploader.accept;\n dragover.value = false;\n if (!accept) {\n emit(\"file\", e.dataTransfer.files);\n return;\n }\n emit(\"file\", Array.from(e.dataTransfer.files).filter((file) => {\n const { type, name } = file;\n const extension = name.indexOf(\".\") > -1 ? `.${name.split(\".\").pop()}` : \"\";\n const baseType = type.replace(/\\/.*$/, \"\");\n return accept.split(\",\").map((type2) => type2.trim()).filter((type2) => type2).some((acceptedType) => {\n if (acceptedType.startsWith(\".\")) {\n return extension === acceptedType;\n }\n if (/\\/\\*$/.test(acceptedType)) {\n return baseType === acceptedType.replace(/\\/\\*$/, \"\");\n }\n if (/^[^\\/]+\\/[^\\/]+$/.test(acceptedType)) {\n return type === acceptedType;\n }\n return false;\n });\n }));\n }\n function onDragover() {\n if (!props.disabled)\n dragover.value = true;\n }\n return {\n dragover,\n onDrop,\n onDragover\n };\n }\n});\n\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(\"div\", {\n class: {\n \"el-upload-dragger\": true,\n \"is-dragover\": _ctx.dragover\n },\n onDrop: _cache[1] || (_cache[1] = withModifiers((...args) => _ctx.onDrop && _ctx.onDrop(...args), [\"prevent\"])),\n onDragover: _cache[2] || (_cache[2] = withModifiers((...args) => _ctx.onDragover && _ctx.onDragover(...args), [\"prevent\"])),\n onDragleave: _cache[3] || (_cache[3] = withModifiers(($event) => _ctx.dragover = false, [\"prevent\"]))\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 34);\n}\n\nscript$1.render = render$1;\nscript$1.__file = \"packages/upload/src/upload-dragger.vue\";\n\nvar script$2 = defineComponent({\n components: {\n UploadDragger: script$1\n },\n props: {\n type: {\n type: String,\n default: \"\"\n },\n action: {\n type: String,\n required: true\n },\n name: {\n type: String,\n default: \"file\"\n },\n data: {\n type: Object,\n default: () => null\n },\n headers: {\n type: Object,\n default: () => null\n },\n withCredentials: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: null\n },\n accept: {\n type: String,\n default: \"\"\n },\n onStart: {\n type: Function,\n default: NOOP\n },\n onProgress: {\n type: Function,\n default: NOOP\n },\n onSuccess: {\n type: Function,\n default: NOOP\n },\n onError: {\n type: Function,\n default: NOOP\n },\n beforeUpload: {\n type: Function,\n default: NOOP\n },\n drag: {\n type: Boolean,\n default: false\n },\n onPreview: {\n type: Function,\n default: NOOP\n },\n onRemove: {\n type: Function,\n default: NOOP\n },\n fileList: {\n type: Array,\n default: () => []\n },\n autoUpload: {\n type: Boolean,\n default: true\n },\n listType: {\n type: String,\n default: \"text\"\n },\n httpRequest: {\n type: Function,\n default: () => upload\n },\n disabled: Boolean,\n limit: {\n type: Number,\n default: null\n },\n onExceed: {\n type: Function,\n default: NOOP\n }\n },\n setup(props) {\n const reqs = ref({});\n const mouseover = ref(false);\n const inputRef = ref(null);\n function uploadFiles(files) {\n if (props.limit && props.fileList.length + files.length > props.limit) {\n props.onExceed(files, props.fileList);\n return;\n }\n let postFiles = Array.from(files);\n if (!props.multiple) {\n postFiles = postFiles.slice(0, 1);\n }\n if (postFiles.length === 0) {\n return;\n }\n postFiles.forEach((rawFile) => {\n props.onStart(rawFile);\n if (props.autoUpload)\n upload(rawFile);\n });\n }\n function upload(rawFile) {\n inputRef.value.value = null;\n if (!props.beforeUpload) {\n return post(rawFile);\n }\n const before = props.beforeUpload(rawFile);\n if (before instanceof Promise) {\n before.then((processedFile) => {\n const fileType = Object.prototype.toString.call(processedFile);\n if (fileType === \"[object File]\" || fileType === \"[object Blob]\") {\n if (fileType === \"[object Blob]\") {\n processedFile = new File([processedFile], rawFile.name, {\n type: rawFile.type\n });\n }\n for (const p in rawFile) {\n if (hasOwn(rawFile, p)) {\n processedFile[p] = rawFile[p];\n }\n }\n post(processedFile);\n } else {\n post(rawFile);\n }\n }).catch(() => {\n props.onRemove(null, rawFile);\n });\n } else if (before !== false) {\n post(rawFile);\n } else {\n props.onRemove(null, rawFile);\n }\n }\n function abort(file) {\n const _reqs = reqs.value;\n if (file) {\n let uid = file;\n if (file.uid)\n uid = file.uid;\n if (_reqs[uid]) {\n _reqs[uid].abort();\n }\n } else {\n Object.keys(_reqs).forEach((uid) => {\n if (_reqs[uid])\n _reqs[uid].abort();\n delete _reqs[uid];\n });\n }\n }\n function post(rawFile) {\n const { uid } = rawFile;\n const options = {\n headers: props.headers,\n withCredentials: props.withCredentials,\n file: rawFile,\n data: props.data,\n filename: props.name,\n action: props.action,\n onProgress: (e) => {\n props.onProgress(e, rawFile);\n },\n onSuccess: (res) => {\n props.onSuccess(res, rawFile);\n delete reqs.value[uid];\n },\n onError: (err) => {\n props.onError(err, rawFile);\n delete reqs.value[uid];\n }\n };\n const req = props.httpRequest(options);\n reqs.value[uid] = req;\n if (req instanceof Promise) {\n req.then(options.onSuccess, options.onError);\n }\n }\n function handleChange(e) {\n const files = e.target.files;\n if (!files)\n return;\n uploadFiles(files);\n }\n function handleClick() {\n if (!props.disabled) {\n inputRef.value.value = null;\n inputRef.value.click();\n }\n }\n function handleKeydown() {\n handleClick();\n }\n return {\n reqs,\n mouseover,\n inputRef,\n abort,\n post,\n handleChange,\n handleClick,\n handleKeydown,\n upload,\n uploadFiles\n };\n }\n});\n\nfunction render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_upload_dragger = resolveComponent(\"upload-dragger\");\n return openBlock(), createBlock(\"div\", {\n class: [\"el-upload\", `el-upload--${_ctx.listType}`],\n tabindex: \"0\",\n onClick: _cache[2] || (_cache[2] = (...args) => _ctx.handleClick && _ctx.handleClick(...args)),\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => _ctx.handleKeydown && _ctx.handleKeydown(...args), [\"self\"]), [\"enter\", \"space\"]))\n }, [\n _ctx.drag ? (openBlock(), createBlock(_component_upload_dragger, {\n key: 0,\n disabled: _ctx.disabled,\n onFile: _ctx.uploadFiles\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"disabled\", \"onFile\"])) : renderSlot(_ctx.$slots, \"default\", { key: 1 }),\n createVNode(\"input\", {\n ref: \"inputRef\",\n class: \"el-upload__input\",\n type: \"file\",\n name: _ctx.name,\n multiple: _ctx.multiple,\n accept: _ctx.accept,\n onChange: _cache[1] || (_cache[1] = (...args) => _ctx.handleChange && _ctx.handleChange(...args))\n }, null, 40, [\"name\", \"multiple\", \"accept\"])\n ], 34);\n}\n\nscript$2.render = render$2;\nscript$2.__file = \"packages/upload/src/upload.vue\";\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction getFile(rawFile, uploadFiles) {\n return uploadFiles.find((file) => file.uid === rawFile.uid);\n}\nfunction genUid(seed) {\n return Date.now() + seed;\n}\nvar useHandlers = (props) => {\n const uploadFiles = ref([]);\n const uploadRef = ref(null);\n let tempIndex = 1;\n function abort(file) {\n uploadRef.value.abort(file);\n }\n function clearFiles() {\n uploadFiles.value = [];\n }\n function handleError(err, rawFile) {\n const file = getFile(rawFile, uploadFiles.value);\n file.status = \"fail\";\n uploadFiles.value.splice(uploadFiles.value.indexOf(file), 1);\n props.onError(err, file, uploadFiles.value);\n props.onChange(file, uploadFiles.value);\n }\n function handleProgress(ev, rawFile) {\n const file = getFile(rawFile, uploadFiles.value);\n props.onProgress(ev, file, uploadFiles.value);\n file.status = \"uploading\";\n file.percentage = ev.percent || 0;\n }\n function handleSuccess(res, rawFile) {\n const file = getFile(rawFile, uploadFiles.value);\n if (file) {\n file.status = \"success\";\n file.response = res;\n props.onSuccess(res, file, uploadFiles.value);\n props.onChange(file, uploadFiles.value);\n }\n }\n function handleStart(rawFile) {\n const uid = genUid(tempIndex++);\n rawFile.uid = uid;\n const file = {\n name: rawFile.name,\n percentage: 0,\n status: \"ready\",\n size: rawFile.size,\n raw: rawFile,\n uid\n };\n if (props.listType === \"picture-card\" || props.listType === \"picture\") {\n try {\n file.url = URL.createObjectURL(rawFile);\n } catch (err) {\n console.error(\"[Element Error][Upload]\", err);\n props.onError(err, file, uploadFiles.value);\n }\n }\n uploadFiles.value.push(file);\n props.onChange(file, uploadFiles.value);\n }\n function handleRemove(file, raw) {\n if (raw) {\n file = getFile(raw, uploadFiles.value);\n }\n const doRemove = () => {\n abort(file);\n const fileList = uploadFiles.value;\n fileList.splice(fileList.indexOf(file), 1);\n props.onRemove(file, fileList);\n };\n if (!props.beforeRemove) {\n doRemove();\n } else if (typeof props.beforeRemove === \"function\") {\n const before = props.beforeRemove(file, uploadFiles.value);\n if (before instanceof Promise) {\n before.then(() => {\n doRemove();\n }).catch(NOOP);\n } else if (before !== false) {\n doRemove();\n }\n }\n }\n function submit() {\n uploadFiles.value.filter((file) => file.status === \"ready\").forEach((file) => {\n uploadRef.value.upload(file.raw);\n });\n }\n watch(() => props.listType, (val) => {\n if (val === \"picture-card\" || val === \"picture\") {\n uploadFiles.value = uploadFiles.value.map((file) => {\n if (!file.url && file.raw) {\n try {\n file.url = URL.createObjectURL(file.raw);\n } catch (err) {\n props.onError(err, file, uploadFiles.value);\n }\n }\n return file;\n });\n }\n });\n watch(() => props.fileList, (fileList) => {\n uploadFiles.value = fileList.map((file) => {\n const cloneFile = cloneDeep(file);\n return __spreadProps(__spreadValues({}, cloneFile), {\n uid: file.uid || genUid(tempIndex++),\n status: file.status || \"success\"\n });\n });\n }, {\n immediate: true,\n deep: true\n });\n return {\n abort,\n clearFiles,\n handleError,\n handleProgress,\n handleStart,\n handleSuccess,\n handleRemove,\n submit,\n uploadFiles,\n uploadRef\n };\n};\n\nvar script$3 = defineComponent({\n name: \"ElUpload\",\n components: {\n Upload: script$2,\n UploadList: script\n },\n props: {\n action: {\n type: String,\n required: true\n },\n headers: {\n type: Object,\n default: () => ({})\n },\n data: {\n type: Object,\n default: () => ({})\n },\n multiple: {\n type: Boolean,\n default: false\n },\n name: {\n type: String,\n default: \"file\"\n },\n drag: {\n type: Boolean,\n default: false\n },\n withCredentials: Boolean,\n showFileList: {\n type: Boolean,\n default: true\n },\n accept: {\n type: String,\n default: \"\"\n },\n type: {\n type: String,\n default: \"select\"\n },\n beforeUpload: {\n type: Function,\n default: NOOP\n },\n beforeRemove: {\n type: Function,\n default: NOOP\n },\n onRemove: {\n type: Function,\n default: NOOP\n },\n onChange: {\n type: Function,\n default: NOOP\n },\n onPreview: {\n type: Function,\n default: NOOP\n },\n onSuccess: {\n type: Function,\n default: NOOP\n },\n onProgress: {\n type: Function,\n default: NOOP\n },\n onError: {\n type: Function,\n default: NOOP\n },\n fileList: {\n type: Array,\n default: () => {\n return [];\n }\n },\n autoUpload: {\n type: Boolean,\n default: true\n },\n listType: {\n type: String,\n default: \"text\"\n },\n httpRequest: {\n type: Function,\n default: upload\n },\n disabled: Boolean,\n limit: {\n type: Number,\n default: null\n },\n onExceed: {\n type: Function,\n default: () => NOOP\n }\n },\n setup(props) {\n const elForm = inject(elFormKey, {});\n const uploadDisabled = computed(() => {\n return props.disabled || elForm.disabled;\n });\n const {\n abort,\n clearFiles,\n handleError,\n handleProgress,\n handleStart,\n handleSuccess,\n handleRemove,\n submit,\n uploadRef,\n uploadFiles\n } = useHandlers(props);\n provide(\"uploader\", getCurrentInstance());\n onBeforeUnmount(() => {\n uploadFiles.value.forEach((file) => {\n if (file.url && file.url.indexOf(\"blob:\") === 0) {\n URL.revokeObjectURL(file.url);\n }\n });\n });\n return {\n abort,\n dragOver: ref(false),\n draging: ref(false),\n handleError,\n handleProgress,\n handleRemove,\n handleStart,\n handleSuccess,\n uploadDisabled,\n uploadFiles,\n uploadRef,\n submit,\n clearFiles\n };\n },\n render() {\n var _a, _b;\n let uploadList;\n if (this.showFileList) {\n uploadList = h(script, {\n disabled: this.uploadDisabled,\n listType: this.listType,\n files: this.uploadFiles,\n onRemove: this.handleRemove,\n handlePreview: this.onPreview\n }, this.$slots.file ? {\n default: (props) => {\n return this.$slots.file({\n file: props.file\n });\n }\n } : null);\n } else {\n uploadList = null;\n }\n const uploadData = {\n type: this.type,\n drag: this.drag,\n action: this.action,\n multiple: this.multiple,\n \"before-upload\": this.beforeUpload,\n \"with-credentials\": this.withCredentials,\n headers: this.headers,\n name: this.name,\n data: this.data,\n accept: this.accept,\n fileList: this.uploadFiles,\n autoUpload: this.autoUpload,\n listType: this.listType,\n disabled: this.uploadDisabled,\n limit: this.limit,\n \"on-exceed\": this.onExceed,\n \"on-start\": this.handleStart,\n \"on-progress\": this.handleProgress,\n \"on-success\": this.handleSuccess,\n \"on-error\": this.handleError,\n \"on-preview\": this.onPreview,\n \"on-remove\": this.handleRemove,\n \"http-request\": this.httpRequest,\n ref: \"uploadRef\"\n };\n const trigger = this.$slots.trigger || this.$slots.default;\n const uploadComponent = h(script$2, uploadData, {\n default: () => trigger == null ? void 0 : trigger()\n });\n return h(\"div\", [\n this.listType === \"picture-card\" ? uploadList : null,\n this.$slots.trigger ? [uploadComponent, this.$slots.default()] : uploadComponent,\n (_b = (_a = this.$slots).tip) == null ? void 0 : _b.call(_a),\n this.listType !== \"picture-card\" ? uploadList : null\n ]);\n }\n});\n\nscript$3.__file = \"packages/upload/src/index.vue\";\n\nscript$3.install = (app) => {\n app.component(script$3.name, script$3);\n};\nconst _Upload = script$3;\n\nexport default _Upload;\n","import { isNumber, $, isString } from '../utils/util';\nimport throwError from '../utils/error';\nimport { defineComponent, ref, reactive, computed, watch, onMounted, onBeforeUnmount, h, withModifiers, getCurrentInstance, onUpdated, resolveDynamicComponent, nextTick } from 'vue';\nimport memo from 'lodash/memoize';\nimport isServer from '../utils/isServer';\nimport { cAF, rAF } from '../utils/raf';\nimport { on, off } from '../utils/dom';\nimport getScrollBarWidth from '../utils/scrollbar-width';\n\n/**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n * IMPORTANT: all calls of this function must be prefixed with\r\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\r\n * So that rollup can tree-shake them if necessary.\r\n */\r\nconst EMPTY_OBJ = (process.env.NODE_ENV !== 'production')\r\n ? Object.freeze({})\r\n : {};\r\nconst EMPTY_ARR = (process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];\r\nconst NOOP = () => { };\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isObject = (val) => val !== null && typeof val === 'object';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst DEFAULT_DYNAMIC_LIST_ITEM_SIZE = 50;\nconst ITEM_RENDER_EVT = \"item-rendered\";\nconst SCROLL_EVT = \"scroll\";\nconst FORWARD = \"forward\";\nconst BACKWARD = \"backward\";\nconst AUTO_ALIGNMENT = \"auto\";\nconst SMART_ALIGNMENT = \"smart\";\nconst START_ALIGNMENT = \"start\";\nconst CENTERED_ALIGNMENT = \"center\";\nconst END_ALIGNMENT = \"end\";\nconst HORIZONTAL = \"horizontal\";\nconst VERTICAL = \"vertical\";\nconst LTR = \"ltr\";\nconst RTL = \"rtl\";\nconst RTL_OFFSET_NAG = \"negative\";\nconst RTL_OFFSET_POS_ASC = \"positive-ascending\";\nconst RTL_OFFSET_POS_DESC = \"positive-descending\";\nconst DefaultListProps = {\n cache: {\n type: Number,\n default: 2\n },\n className: {\n type: String,\n default: \"\"\n },\n containerElement: {\n type: [String, Object],\n default: \"div\"\n },\n data: {\n type: [Array],\n default: () => []\n },\n direction: {\n type: String,\n default: \"ltr\",\n validator: (val) => {\n return val === LTR || val === RTL;\n }\n },\n estimatedItemSize: {\n type: [Number]\n },\n height: {\n type: [String, Number],\n required: true\n },\n layout: {\n type: String,\n default: VERTICAL\n },\n initScrollOffset: {\n type: Number,\n default: 0\n },\n innerElement: {\n type: [String, Object],\n default: \"div\"\n },\n total: {\n type: Number,\n required: true\n },\n itemSize: {\n type: [Number, Function],\n required: true\n },\n style: {\n type: [Object, String, Array],\n default: () => ({})\n },\n useIsScrolling: {\n type: Boolean,\n default: false\n },\n width: {\n type: [Number, String],\n required: true\n }\n};\nconst DefaultGridProps = {\n className: DefaultListProps.className,\n columnCache: DefaultListProps.cache,\n columnWidth: DefaultListProps.itemSize,\n containerElement: DefaultListProps.containerElement,\n data: DefaultListProps.data,\n direction: DefaultListProps.direction,\n estimatedColumnWidth: DefaultListProps.estimatedItemSize,\n estimatedRowHeight: DefaultListProps.estimatedItemSize,\n height: __spreadProps(__spreadValues({}, DefaultListProps.height), {\n validator: (val) => isNumber(val)\n }),\n initScrollLeft: DefaultListProps.initScrollOffset,\n initScrollTop: DefaultListProps.initScrollOffset,\n innerElement: DefaultListProps.innerElement,\n rowCache: DefaultListProps.cache,\n rowHeight: DefaultListProps.itemSize,\n style: DefaultListProps.style,\n useIsScrolling: DefaultListProps.useIsScrolling,\n width: __spreadProps(__spreadValues({}, DefaultListProps.width), {\n validator: (val) => {\n return isNumber(val);\n }\n }),\n totalColumn: DefaultListProps.total,\n totalRow: DefaultListProps.total\n};\nconst DefaultScrollBarProps = {\n layout: DefaultListProps.layout,\n total: Number,\n ratio: Number,\n clientSize: Number,\n scrollFrom: Number,\n visible: Boolean\n};\nconst ScrollbarDirKey = {\n [HORIZONTAL]: \"left\",\n [VERTICAL]: \"top\"\n};\nconst SCROLLBAR_MIN_SIZE = 20;\n\nconst getScrollDir = (prev, cur) => prev < cur ? FORWARD : BACKWARD;\nconst isHorizontal = (dir) => dir === LTR || dir === RTL || dir === HORIZONTAL;\nconst isRTL = (dir) => dir === RTL;\nlet cachedRTLResult = null;\nfunction getRTLOffsetType(recalculate = false) {\n if (cachedRTLResult === null || recalculate) {\n const outerDiv = document.createElement(\"div\");\n const outerStyle = outerDiv.style;\n outerStyle.width = \"50px\";\n outerStyle.height = \"50px\";\n outerStyle.overflow = \"scroll\";\n outerStyle.direction = \"rtl\";\n const innerDiv = document.createElement(\"div\");\n const innerStyle = innerDiv.style;\n innerStyle.width = \"100px\";\n innerStyle.height = \"100px\";\n outerDiv.appendChild(innerDiv);\n document.body.appendChild(outerDiv);\n if (outerDiv.scrollLeft > 0) {\n cachedRTLResult = RTL_OFFSET_POS_DESC;\n } else {\n outerDiv.scrollLeft = 1;\n if (outerDiv.scrollLeft === 0) {\n cachedRTLResult = RTL_OFFSET_NAG;\n } else {\n cachedRTLResult = RTL_OFFSET_POS_ASC;\n }\n }\n document.body.removeChild(outerDiv);\n return cachedRTLResult;\n }\n return cachedRTLResult;\n}\nfunction renderThumbStyle({ move, size, bar }, layout) {\n const style = {};\n const translate = `translate${bar.axis}(${move}px)`;\n style[bar.size] = size;\n style.transform = translate;\n style.msTransform = translate;\n style.webkitTransform = translate;\n if (layout === \"horizontal\") {\n style.height = \"100%\";\n } else {\n style.width = \"100%\";\n }\n return style;\n}\nconst isFF = typeof navigator !== \"undefined\" && isObject(navigator) && /Firefox/i.test(navigator.userAgent);\n\nconst LayoutKeys = {\n [HORIZONTAL]: \"deltaX\",\n [VERTICAL]: \"deltaY\"\n};\nconst useWheel = ({\n atEndEdge,\n atStartEdge,\n layout\n}, onWheelDelta) => {\n let frameHandle = null;\n let offset = 0;\n const hasReachedEdge = (offset2) => {\n const edgeReached = offset2 < 0 && atStartEdge.value || offset2 > 0 && atEndEdge.value;\n return edgeReached;\n };\n const onWheel = (e) => {\n cAF(frameHandle);\n const newOffset = e[LayoutKeys[layout.value]];\n if (hasReachedEdge(offset) && hasReachedEdge(offset + newOffset))\n return;\n offset += newOffset;\n if (!isFF) {\n e.preventDefault();\n }\n frameHandle = rAF(() => {\n onWheelDelta(offset);\n offset = 0;\n });\n };\n return {\n hasReachedEdge,\n onWheel\n };\n};\n\nconst BAR_MAP = {\n vertical: {\n offset: \"offsetHeight\",\n scroll: \"scrollTop\",\n scrollSize: \"scrollHeight\",\n size: \"height\",\n key: \"vertical\",\n axis: \"Y\",\n client: \"clientY\",\n direction: \"top\"\n },\n horizontal: {\n offset: \"offsetWidth\",\n scroll: \"scrollLeft\",\n scrollSize: \"scrollWidth\",\n size: \"width\",\n key: \"horizontal\",\n axis: \"X\",\n client: \"clientX\",\n direction: \"left\"\n }\n};\n\nconst ScrollBar = defineComponent({\n name: \"ElVirtualScrollBar\",\n props: DefaultScrollBarProps,\n emits: [\"scroll\", \"start-move\", \"stop-move\"],\n setup(props, { emit }) {\n const trackRef = ref(null);\n const thumbRef = ref(null);\n let frameHandle = null;\n let onselectstartStore = null;\n const state = reactive({\n isDragging: false,\n traveled: 0\n });\n const bar = computed(() => BAR_MAP[props.layout]);\n const trackStyle = computed(() => ({\n display: props.visible ? null : \"none\",\n position: \"absolute\",\n width: HORIZONTAL === props.layout ? \"100%\" : \"6px\",\n height: HORIZONTAL === props.layout ? \"6px\" : \"100%\",\n [ScrollbarDirKey[props.layout]]: \"2px\",\n right: \"2px\",\n bottom: \"2px\",\n borderRadius: \"4px\"\n }));\n const thumbSize = computed(() => {\n if (props.ratio >= 100) {\n return Number.POSITIVE_INFINITY;\n }\n if (props.ratio >= 50) {\n return props.ratio * props.clientSize / 100;\n }\n const SCROLLBAR_MAX_SIZE = props.clientSize / 3;\n return Math.floor(Math.min(Math.max(props.ratio * props.clientSize, SCROLLBAR_MIN_SIZE), SCROLLBAR_MAX_SIZE));\n });\n const thumbStyle = computed(() => {\n if (!Number.isFinite(thumbSize.value)) {\n return {\n display: \"none\"\n };\n }\n const thumb = `${thumbSize.value}px`;\n const style = renderThumbStyle({\n bar: bar.value,\n size: thumb,\n move: state.traveled\n }, props.layout);\n return style;\n });\n const totalSteps = computed(() => Math.floor(props.clientSize - thumbSize.value - 4));\n const attachEvents = () => {\n on(window, \"mousemove\", onMouseMove);\n on(window, \"mouseup\", onMouseUp);\n const thumbEl = thumbRef.value;\n onselectstartStore = document.onselectstart;\n document.onselectstart = () => false;\n on(thumbEl, \"touchmove\", onMouseMove);\n on(thumbEl, \"touchend\", onMouseUp);\n };\n const detachEvents = () => {\n off(window, \"mousemove\", onMouseMove);\n off(window, \"mouseup\", onMouseUp);\n document.onselectstart = onselectstartStore;\n onselectstartStore = null;\n const thumbEl = thumbRef.value;\n off(thumbEl, \"touchmove\", onMouseMove);\n off(thumbEl, \"touchend\", onMouseUp);\n };\n const onThumbMouseDown = (e) => {\n e.stopImmediatePropagation();\n if (e.ctrlKey || [1, 2].includes(e.button)) {\n return;\n }\n state.isDragging = true;\n state[bar.value.axis] = e.currentTarget[bar.value.offset] - (e[bar.value.client] - e.currentTarget.getBoundingClientRect()[bar.value.direction]);\n emit(\"start-move\");\n attachEvents();\n };\n const onMouseUp = () => {\n state.isDragging = false;\n state[bar.value.axis] = 0;\n emit(\"stop-move\");\n detachEvents();\n };\n const onMouseMove = (e) => {\n const { isDragging } = state;\n if (!isDragging)\n return;\n const prevPage = state[bar.value.axis];\n if (!prevPage)\n return;\n cAF(frameHandle);\n const offset = (trackRef.value.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1;\n const thumbClickPosition = thumbRef.value[bar.value.offset] - prevPage;\n const distance = offset - thumbClickPosition;\n frameHandle = rAF(() => {\n state.traveled = Math.max(2, Math.min(distance, totalSteps.value));\n emit(\"scroll\", distance, totalSteps.value);\n });\n };\n const onScrollbarTouchStart = (e) => e.preventDefault();\n watch(() => props.scrollFrom, (v) => {\n if (state.isDragging)\n return;\n state.traveled = Math.ceil(v * props.clientSize / (props.clientSize / totalSteps.value));\n });\n onMounted(() => {\n if (isServer)\n return;\n on(trackRef.value, \"touchstart\", onScrollbarTouchStart);\n on(thumbRef.value, \"touchstart\", onThumbMouseDown);\n });\n onBeforeUnmount(() => {\n off(trackRef.value, \"touchstart\", onScrollbarTouchStart);\n detachEvents();\n });\n return () => {\n return h(\"div\", {\n role: \"presentation\",\n ref: trackRef,\n class: \"el-virtual-scrollbar\",\n style: trackStyle.value,\n onMousedown: withModifiers(NOOP, [\"stop\", \"prevent\"])\n }, h(\"div\", {\n ref: thumbRef,\n class: \"el-scrollbar__thumb\",\n style: thumbStyle.value,\n onMousedown: onThumbMouseDown\n }, null));\n };\n }\n});\n\nvar __defProp$1 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nconst createList = ({\n name,\n getOffset,\n getItemSize,\n getItemOffset,\n getEstimatedTotalSize,\n getStartIndexForOffset,\n getStopIndexForStartIndex,\n initCache,\n clearCache,\n validateProps\n}) => {\n return defineComponent({\n name: name != null ? name : \"ElVirtualList\",\n props: DefaultListProps,\n emits: [ITEM_RENDER_EVT, SCROLL_EVT],\n setup(props, { emit, expose }) {\n validateProps(props);\n const instance = getCurrentInstance();\n const dynamicSizeCache = ref(initCache(props, instance));\n const windowRef = ref(null);\n const innerRef = ref(null);\n const scrollbarRef = ref(null);\n const states = ref({\n isScrolling: false,\n scrollDir: \"forward\",\n scrollOffset: isNumber(props.initScrollOffset) ? props.initScrollOffset : 0,\n updateRequested: false,\n isScrollbarDragging: false\n });\n const itemsToRender = computed(() => {\n const { total, cache } = props;\n const { isScrolling, scrollDir, scrollOffset } = $(states);\n if (total === 0) {\n return [0, 0, 0, 0];\n }\n const startIndex = getStartIndexForOffset(props, scrollOffset, $(dynamicSizeCache));\n const stopIndex = getStopIndexForStartIndex(props, startIndex, scrollOffset, $(dynamicSizeCache));\n const cacheBackward = !isScrolling || scrollDir === BACKWARD ? Math.max(1, cache) : 1;\n const cacheForward = !isScrolling || scrollDir === FORWARD ? Math.max(1, cache) : 1;\n return [\n Math.max(0, startIndex - cacheBackward),\n Math.max(0, Math.min(total - 1, stopIndex + cacheForward)),\n startIndex,\n stopIndex\n ];\n });\n const estimatedTotalSize = computed(() => getEstimatedTotalSize(props, $(dynamicSizeCache)));\n const _isHorizontal = computed(() => isHorizontal(props.layout));\n const windowStyle = computed(() => [\n {\n position: \"relative\",\n overflow: \"hidden\",\n WebkitOverflowScrolling: \"touch\",\n willChange: \"transform\"\n },\n __spreadValues$1({\n direction: props.direction,\n height: isNumber(props.height) ? `${props.height}px` : props.height,\n width: isNumber(props.width) ? `${props.width}px` : props.width\n }, props.style)\n ]);\n const innerStyle = computed(() => {\n const size = $(estimatedTotalSize);\n const horizontal = $(_isHorizontal);\n return {\n height: horizontal ? \"100%\" : `${size}px`,\n pointerEvents: $(states).isScrolling ? \"none\" : void 0,\n width: horizontal ? `${size}px` : \"100%\"\n };\n });\n const clientSize = computed(() => _isHorizontal.value ? props.width : props.height);\n const {\n onWheel\n } = useWheel({\n atStartEdge: computed(() => states.value.scrollOffset <= 0),\n atEndEdge: computed(() => states.value.scrollOffset >= estimatedTotalSize.value),\n layout: computed(() => props.layout)\n }, (offset) => {\n var _a, _b;\n (_b = (_a = scrollbarRef.value).onMouseUp) == null ? void 0 : _b.call(_a);\n scrollTo(Math.min(states.value.scrollOffset + offset, estimatedTotalSize.value - clientSize.value));\n });\n const emitEvents = () => {\n const { total } = props;\n if (total > 0) {\n const [cacheStart, cacheEnd, visibleStart, visibleEnd] = $(itemsToRender);\n emit(ITEM_RENDER_EVT, cacheStart, cacheEnd, visibleStart, visibleEnd);\n }\n const { scrollDir, scrollOffset, updateRequested } = $(states);\n emit(SCROLL_EVT, scrollDir, scrollOffset, updateRequested);\n };\n const scrollVertically = (e) => {\n const { clientHeight, scrollHeight, scrollTop } = e.currentTarget;\n const _states = $(states);\n if (_states.scrollOffset === scrollTop) {\n return;\n }\n const scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));\n states.value = __spreadProps$1(__spreadValues$1({}, _states), {\n isScrolling: true,\n scrollDir: getScrollDir(_states.scrollOffset, scrollOffset),\n scrollOffset,\n updateRequested: false\n });\n nextTick(resetIsScrolling);\n };\n const scrollHorizontally = (e) => {\n const { clientWidth, scrollLeft, scrollWidth } = e.currentTarget;\n const _states = $(states);\n if (_states.scrollOffset === scrollLeft) {\n return;\n }\n const { direction } = props;\n let scrollOffset = scrollLeft;\n if (direction === RTL) {\n switch (getRTLOffsetType()) {\n case RTL_OFFSET_NAG: {\n scrollOffset = -scrollLeft;\n break;\n }\n case RTL_OFFSET_POS_DESC: {\n scrollOffset = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n }\n scrollOffset = Math.max(0, Math.min(scrollOffset, scrollWidth - clientWidth));\n states.value = __spreadProps$1(__spreadValues$1({}, _states), {\n isScrolling: true,\n scrollDir: getScrollDir(_states.scrollOffset, scrollOffset),\n scrollOffset,\n updateRequested: false\n });\n nextTick(resetIsScrolling);\n };\n const onScroll = (e) => {\n $(_isHorizontal) ? scrollHorizontally(e) : scrollVertically(e);\n emitEvents();\n };\n const onScrollbarScroll = (distanceToGo, totalSteps) => {\n const offset = (estimatedTotalSize.value - clientSize.value) / totalSteps * distanceToGo;\n scrollTo(Math.min(estimatedTotalSize.value - clientSize.value, offset));\n };\n const getItemStyleCache = memo((_, __, ___) => ({}));\n const scrollTo = (offset) => {\n offset = Math.max(offset, 0);\n if (offset === $(states).scrollOffset) {\n return;\n }\n states.value = __spreadProps$1(__spreadValues$1({}, $(states)), {\n scrollOffset: offset,\n scrollDir: getScrollDir($(states).scrollOffset, offset),\n updateRequested: true\n });\n nextTick(resetIsScrolling);\n };\n const scrollToItem = (idx, alignment = AUTO_ALIGNMENT) => {\n const { scrollOffset } = $(states);\n idx = Math.max(0, Math.min(idx, props.total - 1));\n scrollTo(getOffset(props, idx, alignment, scrollOffset, $(dynamicSizeCache)));\n };\n const getItemStyle = (idx) => {\n const { direction, itemSize, layout } = props;\n const itemStyleCache = getItemStyleCache(clearCache && itemSize, clearCache && layout, clearCache && direction);\n let style;\n if (hasOwn(itemStyleCache, String(idx))) {\n style = itemStyleCache[idx];\n } else {\n const offset = getItemOffset(props, idx, $(dynamicSizeCache));\n const size = getItemSize(props, idx, $(dynamicSizeCache));\n const horizontal = $(_isHorizontal);\n const isRtl = direction === RTL;\n const offsetHorizontal = horizontal ? offset : 0;\n itemStyleCache[idx] = style = {\n position: \"absolute\",\n left: isRtl ? void 0 : `${offsetHorizontal}px`,\n right: isRtl ? `${offsetHorizontal}px` : void 0,\n top: !horizontal ? `${offset}px` : 0,\n height: !horizontal ? `${size}px` : \"100%\",\n width: horizontal ? `${size}px` : \"100%\"\n };\n }\n return style;\n };\n const resetIsScrolling = () => {\n states.value.isScrolling = false;\n nextTick(() => {\n getItemStyleCache(-1, null, null);\n });\n };\n onMounted(() => {\n if (isServer)\n return;\n const { initScrollOffset } = props;\n const windowElement = $(windowRef);\n if (isNumber(initScrollOffset) && windowElement !== null) {\n if ($(_isHorizontal)) {\n windowElement.scrollLeft = initScrollOffset;\n } else {\n windowElement.scrollTop = initScrollOffset;\n }\n }\n emitEvents();\n });\n onUpdated(() => {\n const { direction, layout } = props;\n const { scrollOffset, updateRequested } = $(states);\n if (updateRequested && $(windowRef) !== null) {\n const windowElement = $(windowRef);\n if (layout === HORIZONTAL) {\n if (direction === RTL) {\n switch (getRTLOffsetType()) {\n case \"negative\": {\n windowElement.scrollLeft = -scrollOffset;\n break;\n }\n case \"positive-ascending\": {\n windowElement.scrollLeft = scrollOffset;\n break;\n }\n default: {\n const { clientWidth, scrollWidth } = windowElement;\n windowElement.scrollLeft = scrollWidth - clientWidth - scrollOffset;\n break;\n }\n }\n } else {\n windowElement.scrollLeft = scrollOffset;\n }\n } else {\n windowElement.scrollTop = scrollOffset;\n }\n }\n });\n const api = {\n clientSize,\n estimatedTotalSize,\n windowStyle,\n windowRef,\n innerRef,\n innerStyle,\n itemsToRender,\n scrollbarRef,\n states,\n getItemStyle,\n onScroll,\n onScrollbarScroll,\n onWheel,\n scrollTo,\n scrollToItem\n };\n expose({\n windowRef,\n innerRef,\n getItemStyleCache,\n scrollTo,\n scrollToItem,\n states\n });\n return api;\n },\n render(ctx) {\n var _a;\n const {\n $slots,\n className,\n clientSize,\n containerElement,\n data,\n getItemStyle,\n innerElement,\n itemsToRender,\n innerStyle,\n layout,\n total,\n onScroll,\n onScrollbarScroll,\n onWheel,\n states,\n useIsScrolling,\n windowStyle\n } = ctx;\n const [start, end] = itemsToRender;\n const Container = resolveDynamicComponent(containerElement);\n const Inner = resolveDynamicComponent(innerElement);\n const children = [];\n if (total > 0) {\n for (let i = start; i <= end; i++) {\n children.push((_a = $slots.default) == null ? void 0 : _a.call($slots, {\n data,\n key: i,\n index: i,\n isScrolling: useIsScrolling ? states.isScrolling : void 0,\n style: getItemStyle(i)\n }));\n }\n }\n const InnerNode = [h(Inner, {\n style: innerStyle,\n ref: \"innerRef\"\n }, !isString(Inner) ? {\n default: () => children\n } : children)];\n const scrollbar = h(ScrollBar, {\n ref: \"scrollbarRef\",\n clientSize,\n layout,\n onScroll: onScrollbarScroll,\n ratio: clientSize * 100 / this.estimatedTotalSize,\n scrollFrom: states.scrollOffset / (this.estimatedTotalSize - clientSize),\n total,\n visible: true\n });\n const listContainer = h(Container, {\n class: className,\n style: windowStyle,\n onScroll,\n onWheel,\n ref: \"windowRef\",\n key: 0\n }, !isString(Container) ? { default: () => [InnerNode] } : [InnerNode]);\n return h(\"div\", {\n key: 0,\n class: \"el-vl__wrapper\"\n }, [\n listContainer,\n scrollbar\n ]);\n }\n });\n};\n\nconst FixedSizeList = createList({\n name: \"ElFixedSizeList\",\n getItemOffset: ({ itemSize }, index) => index * itemSize,\n getItemSize: ({ itemSize }) => itemSize,\n getEstimatedTotalSize: ({ total, itemSize }) => itemSize * total,\n getOffset: ({ height, total, itemSize, layout, width }, index, alignment, scrollOffset) => {\n const size = isHorizontal(layout) ? width : height;\n if (process.env.ENV !== \"production\" && isString(size)) {\n throwError(\"[ElVirtualList]\", `\n You should set\n width/height\n to number when your layout is\n horizontal/vertical\n `);\n }\n const lastItemOffset = Math.max(0, total * itemSize - size);\n const maxOffset = Math.min(lastItemOffset, index * itemSize);\n const minOffset = Math.max(0, (index + 1) * itemSize - size);\n if (alignment === SMART_ALIGNMENT) {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n alignment = AUTO_ALIGNMENT;\n } else {\n alignment = CENTERED_ALIGNMENT;\n }\n }\n switch (alignment) {\n case START_ALIGNMENT: {\n return maxOffset;\n }\n case END_ALIGNMENT: {\n return minOffset;\n }\n case CENTERED_ALIGNMENT: {\n const middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n if (middleOffset < Math.ceil(size / 2)) {\n return 0;\n } else if (middleOffset > lastItemOffset + Math.floor(size / 2)) {\n return lastItemOffset;\n } else {\n return middleOffset;\n }\n }\n case AUTO_ALIGNMENT:\n default: {\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n }\n }\n },\n getStartIndexForOffset: ({ total, itemSize }, offset) => Math.max(0, Math.min(total - 1, Math.floor(offset / itemSize))),\n getStopIndexForStartIndex: ({ height, total, itemSize, layout, width }, startIndex, scrollOffset) => {\n const offset = startIndex * itemSize;\n const size = isHorizontal(layout) ? width : height;\n const numVisibleItems = Math.ceil((size + scrollOffset - offset) / itemSize);\n return Math.max(0, Math.min(total - 1, startIndex + numVisibleItems - 1));\n },\n initCache() {\n return void 0;\n },\n clearCache: true,\n validateProps() {\n }\n});\n\nconst SCOPE = \"ElDynamicSizeList\";\nconst getItemFromCache = (props, index, listCache) => {\n const { itemSize } = props;\n const { items, lastVisitedIndex } = listCache;\n if (index > lastVisitedIndex) {\n let offset = 0;\n if (lastVisitedIndex >= 0) {\n const item = items[lastVisitedIndex];\n offset = item.offset + item.size;\n }\n for (let i = lastVisitedIndex + 1; i <= index; i++) {\n const size = itemSize(i);\n items[i] = {\n offset,\n size\n };\n offset += size;\n }\n listCache.lastVisitedIndex = index;\n }\n return items[index];\n};\nconst findItem = (props, listCache, offset) => {\n const { items, lastVisitedIndex } = listCache;\n const lastVisitedOffset = lastVisitedIndex > 0 ? items[lastVisitedIndex].offset : 0;\n if (lastVisitedOffset >= offset) {\n return bs(props, listCache, 0, lastVisitedIndex, offset);\n }\n return es(props, listCache, Math.max(0, lastVisitedIndex), offset);\n};\nconst bs = (props, listCache, low, high, offset) => {\n while (low <= high) {\n const mid = low + Math.floor((high - low) / 2);\n const currentOffset = getItemFromCache(props, mid, listCache).offset;\n if (currentOffset === offset) {\n return mid;\n } else if (currentOffset < offset) {\n low = mid + 1;\n } else if (currentOffset > offset) {\n high = mid - 1;\n }\n }\n return Math.max(0, low - 1);\n};\nconst es = (props, listCache, index, offset) => {\n const { total } = props;\n let exponent = 1;\n while (index < total && getItemFromCache(props, index, listCache).offset < offset) {\n index += exponent;\n exponent *= 2;\n }\n return bs(props, listCache, Math.floor(index / 2), Math.min(index, total - 1), offset);\n};\nconst getEstimatedTotalSize = ({ total }, { items, estimatedItemSize, lastVisitedIndex }) => {\n let totalSizeOfMeasuredItems = 0;\n if (lastVisitedIndex >= total) {\n lastVisitedIndex = total - 1;\n }\n if (lastVisitedIndex >= 0) {\n const item = items[lastVisitedIndex];\n totalSizeOfMeasuredItems = item.offset + item.size;\n }\n const numUnmeasuredItems = total - lastVisitedIndex - 1;\n const totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedItemSize;\n return totalSizeOfMeasuredItems + totalSizeOfUnmeasuredItems;\n};\nconst DynamicSizeList = createList({\n name: \"ElDynamicSizeList\",\n getItemOffset: (props, index, listCache) => getItemFromCache(props, index, listCache).offset,\n getItemSize: (_, index, { items }) => items[index].size,\n getEstimatedTotalSize,\n getOffset: (props, index, alignment, scrollOffset, listCache) => {\n const { height, layout, width } = props;\n const size = isHorizontal(layout) ? width : height;\n const item = getItemFromCache(props, index, listCache);\n const estimatedTotalSize = getEstimatedTotalSize(props, listCache);\n const maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, item.offset));\n const minOffset = Math.max(0, item.offset - size + item.size);\n if (alignment === SMART_ALIGNMENT) {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n alignment = AUTO_ALIGNMENT;\n } else {\n alignment = CENTERED_ALIGNMENT;\n }\n }\n switch (alignment) {\n case START_ALIGNMENT: {\n return maxOffset;\n }\n case END_ALIGNMENT: {\n return minOffset;\n }\n case CENTERED_ALIGNMENT: {\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n }\n case AUTO_ALIGNMENT:\n default: {\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n }\n }\n },\n getStartIndexForOffset: (props, offset, listCache) => findItem(props, listCache, offset),\n getStopIndexForStartIndex: (props, startIndex, scrollOffset, listCache) => {\n const { height, total, layout, width } = props;\n const size = isHorizontal(layout) ? width : height;\n const item = getItemFromCache(props, startIndex, listCache);\n const maxOffset = scrollOffset + size;\n let offset = item.offset + item.size;\n let stopIndex = startIndex;\n while (stopIndex < total - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemFromCache(props, stopIndex, listCache).size;\n }\n return stopIndex;\n },\n initCache({ estimatedItemSize = DEFAULT_DYNAMIC_LIST_ITEM_SIZE }, instance) {\n const cache = {\n items: {},\n estimatedItemSize,\n lastVisitedIndex: -1\n };\n cache.clearCacheAfterIndex = (index, forceUpdate = true) => {\n cache.lastVisitedIndex = Math.min(cache.lastVisitedIndex, index - 1);\n instance.exposed.getItemStyleCache(-1);\n if (forceUpdate) {\n instance.proxy.$forceUpdate();\n }\n };\n return cache;\n },\n clearCache: false,\n validateProps: ({ itemSize }) => {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof itemSize !== \"function\") {\n throwError(SCOPE, `\n itemSize is required as function, but the given value was ${typeof itemSize}\n `);\n }\n }\n }\n});\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nconst createGrid = ({\n name,\n clearCache,\n getColumnPosition,\n getColumnStartIndexForOffset,\n getColumnStopIndexForStartIndex,\n getEstimatedTotalHeight,\n getEstimatedTotalWidth,\n getColumnOffset,\n getRowOffset,\n getRowPosition,\n getRowStartIndexForOffset,\n getRowStopIndexForStartIndex,\n initCache,\n validateProps\n}) => {\n return defineComponent({\n name: name != null ? name : \"ElVirtualList\",\n props: DefaultGridProps,\n emits: [ITEM_RENDER_EVT, SCROLL_EVT],\n setup(props, { emit, expose }) {\n validateProps(props);\n const instance = getCurrentInstance();\n const cache = ref(initCache(props, instance));\n const windowRef = ref(null);\n const innerRef = ref(null);\n const states = ref({\n isScrolling: false,\n scrollLeft: isNumber(props.initScrollLeft) ? props.initScrollLeft : 0,\n scrollTop: isNumber(props.initScrollTop) ? props.initScrollTop : 0,\n updateRequested: false,\n xAxisScrollDir: FORWARD,\n yAxisScrollDir: FORWARD\n });\n const columnsToRender = computed(() => {\n const { totalColumn, totalRow, columnCache } = props;\n const { isScrolling, xAxisScrollDir, scrollLeft } = $(states);\n if (totalColumn === 0 || totalRow === 0) {\n return [0, 0, 0, 0];\n }\n const startIndex = getColumnStartIndexForOffset(props, scrollLeft, $(cache));\n const stopIndex = getColumnStopIndexForStartIndex(props, startIndex, scrollLeft, $(cache));\n const cacheBackward = !isScrolling || xAxisScrollDir === BACKWARD ? Math.max(1, columnCache) : 1;\n const cacheForward = !isScrolling || xAxisScrollDir === FORWARD ? Math.max(1, columnCache) : 1;\n return [\n Math.max(0, startIndex - cacheBackward),\n Math.max(0, Math.min(totalColumn - 1, stopIndex + cacheForward)),\n startIndex,\n stopIndex\n ];\n });\n const rowsToRender = computed(() => {\n const { totalColumn, totalRow, rowCache } = props;\n const { isScrolling, yAxisScrollDir, scrollTop } = $(states);\n if (totalColumn === 0 || totalRow === 0) {\n return [0, 0, 0, 0];\n }\n const startIndex = getRowStartIndexForOffset(props, scrollTop, $(cache));\n const stopIndex = getRowStopIndexForStartIndex(props, startIndex, scrollTop, $(cache));\n const cacheBackward = !isScrolling || yAxisScrollDir === BACKWARD ? Math.max(1, rowCache) : 1;\n const cacheForward = !isScrolling || yAxisScrollDir === FORWARD ? Math.max(1, rowCache) : 1;\n return [\n Math.max(0, startIndex - cacheBackward),\n Math.max(0, Math.min(totalRow - 1, stopIndex + cacheForward)),\n startIndex,\n stopIndex\n ];\n });\n const estimatedTotalHeight = computed(() => getEstimatedTotalHeight(props, $(cache)));\n const estimatedTotalWidth = computed(() => getEstimatedTotalWidth(props, $(cache)));\n const windowStyle = computed(() => [\n {\n position: \"relative\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n willChange: \"transform\"\n },\n __spreadValues$2({\n direction: props.direction,\n height: isNumber(props.height) ? `${props.height}px` : props.height,\n width: isNumber(props.width) ? `${props.width}px` : props.width\n }, props.style)\n ]);\n const innerStyle = computed(() => {\n const width = `${$(estimatedTotalWidth)}px`;\n const height = `${$(estimatedTotalHeight)}px`;\n return {\n height,\n pointerEvents: $(states).isScrolling ? \"none\" : void 0,\n width\n };\n });\n const emitEvents = () => {\n const { totalColumn, totalRow } = props;\n if (totalColumn > 0 && totalRow > 0) {\n const [columnCacheStart, columnCacheEnd, columnVisibleStart, columnVisibleEnd] = $(columnsToRender);\n const [rowCacheStart, rowCacheEnd, rowVisibleStart, rowVisibleEnd] = $(rowsToRender);\n emit(ITEM_RENDER_EVT, columnCacheStart, columnCacheEnd, rowCacheStart, rowCacheEnd, columnVisibleStart, columnVisibleEnd, rowVisibleStart, rowVisibleEnd);\n }\n const { scrollLeft, scrollTop, updateRequested, xAxisScrollDir, yAxisScrollDir } = $(states);\n emit(SCROLL_EVT, xAxisScrollDir, scrollLeft, yAxisScrollDir, scrollTop, updateRequested);\n };\n const onScroll = (e) => {\n const {\n clientHeight,\n clientWidth,\n scrollHeight,\n scrollLeft,\n scrollTop,\n scrollWidth\n } = e.currentTarget;\n const _states = $(states);\n if (_states.scrollTop === scrollTop && _states.scrollLeft === scrollLeft) {\n return;\n }\n let _scrollLeft = scrollLeft;\n if (isRTL(props.direction)) {\n switch (getRTLOffsetType()) {\n case RTL_OFFSET_NAG:\n _scrollLeft = -scrollLeft;\n break;\n case RTL_OFFSET_POS_DESC:\n _scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n states.value = __spreadProps$2(__spreadValues$2({}, _states), {\n isScrolling: true,\n scrollLeft: _scrollLeft,\n scrollTop: Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight)),\n updateRequested: false,\n xAxisScrollDir: getScrollDir(_states.scrollLeft, _scrollLeft),\n yAxisScrollDir: getScrollDir(_states.scrollTop, scrollTop)\n });\n nextTick(resetIsScrolling);\n emitEvents();\n };\n const getItemStyleCache = memo((_, __, ___) => ({}));\n const scrollTo = ({\n scrollLeft,\n scrollTop\n }) => {\n scrollLeft = Math.max(scrollLeft, 0);\n scrollTop = Math.max(scrollTop, 0);\n const _states = $(states);\n if (scrollTop === _states.scrollTop && scrollLeft === _states.scrollLeft) {\n return;\n }\n states.value = __spreadProps$2(__spreadValues$2({}, _states), {\n xAxisScrollDir: getScrollDir(_states.scrollLeft, scrollLeft),\n yAxisScrollDir: getScrollDir(_states.scrollTop, scrollTop),\n scrollLeft,\n scrollTop,\n updateRequested: true\n });\n nextTick(resetIsScrolling);\n };\n const scrollToItem = (rowIndex = 0, columnIdx = 0, alignment = AUTO_ALIGNMENT) => {\n const _states = $(states);\n columnIdx = Math.max(0, Math.min(columnIdx, props.totalColumn - 1));\n rowIndex = Math.max(0, Math.min(rowIndex, props.totalRow - 1));\n const scrollBarWidth = getScrollBarWidth();\n const _cache = $(cache);\n const estimatedHeight = getEstimatedTotalHeight(props, _cache);\n const estimatedWidth = getEstimatedTotalWidth(props, _cache);\n scrollTo({\n scrollLeft: getColumnOffset(props, columnIdx, alignment, _states.scrollLeft, _cache, estimatedWidth > props.width ? scrollBarWidth : 0),\n scrollTop: getRowOffset(props, rowIndex, alignment, _states.scrollTop, _cache, estimatedHeight > props.height ? scrollBarWidth : 0)\n });\n };\n const getItemStyle = (rowIndex, columnIndex) => {\n const { columnWidth, direction, rowHeight } = props;\n const itemStyleCache = getItemStyleCache(clearCache && columnWidth, clearCache && rowHeight, clearCache && direction);\n const key = `${rowIndex},${columnIndex}`;\n if (hasOwn(itemStyleCache, key)) {\n return itemStyleCache[key];\n } else {\n const [, left] = getColumnPosition(props, columnIndex, $(cache));\n const _cache = $(cache);\n const rtl = isRTL(direction);\n const [height, top] = getRowPosition(props, rowIndex, _cache);\n const [width] = getColumnPosition(props, columnIndex, _cache);\n itemStyleCache[key] = {\n position: \"absolute\",\n left: rtl ? void 0 : `${left}px`,\n right: rtl ? `${left}px` : void 0,\n top: `${top}px`,\n height: `${height}px`,\n width: `${width}px`\n };\n return itemStyleCache[key];\n }\n };\n const resetIsScrolling = () => {\n states.value.isScrolling = false;\n nextTick(() => {\n getItemStyleCache(-1, null, null);\n });\n };\n onMounted(() => {\n if (isServer)\n return;\n const { initScrollLeft, initScrollTop } = props;\n const windowElement = $(windowRef);\n if (windowElement !== null) {\n if (isNumber(initScrollLeft)) {\n windowElement.scrollLeft = initScrollLeft;\n }\n if (isNumber(initScrollTop)) {\n windowElement.scrollTop = initScrollTop;\n }\n }\n emitEvents();\n });\n onUpdated(() => {\n const { direction } = props;\n const { scrollLeft, scrollTop, updateRequested } = $(states);\n if (updateRequested && $(windowRef) !== null) {\n const windowElement = $(windowRef);\n if (direction === RTL) {\n switch (getRTLOffsetType()) {\n case RTL_OFFSET_NAG: {\n windowElement.scrollLeft = -scrollLeft;\n break;\n }\n case RTL_OFFSET_POS_ASC: {\n windowElement.scrollLeft = scrollLeft;\n break;\n }\n default: {\n const { clientWidth, scrollWidth } = windowElement;\n windowElement.scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n } else {\n windowElement.scrollLeft = Math.max(0, scrollLeft);\n }\n windowElement.scrollTop = Math.max(0, scrollTop);\n }\n });\n const api = {\n windowStyle,\n windowRef,\n columnsToRender,\n innerRef,\n innerStyle,\n states,\n rowsToRender,\n getItemStyle,\n onScroll,\n scrollTo,\n scrollToItem\n };\n expose({\n windowRef,\n innerRef,\n getItemStyleCache,\n scrollTo,\n scrollToItem,\n states\n });\n return api;\n },\n render(ctx) {\n var _a;\n const {\n $slots,\n className,\n containerElement,\n columnsToRender,\n data,\n getItemStyle,\n innerElement,\n innerStyle,\n rowsToRender,\n onScroll,\n states,\n useIsScrolling,\n windowStyle,\n totalColumn,\n totalRow\n } = ctx;\n const [columnStart, columnEnd] = columnsToRender;\n const [rowStart, rowEnd] = rowsToRender;\n const Container = resolveDynamicComponent(containerElement);\n const Inner = resolveDynamicComponent(innerElement);\n const children = [];\n if (totalRow > 0 && totalColumn > 0) {\n for (let row = rowStart; row <= rowEnd; row++) {\n for (let column = columnStart; column <= columnEnd; column++) {\n children.push((_a = $slots.default) == null ? void 0 : _a.call($slots, {\n columnIndex: column,\n data,\n key: column,\n isScrolling: useIsScrolling ? states.isScrolling : void 0,\n style: getItemStyle(row, column),\n rowIndex: row\n }));\n }\n }\n }\n const InnerNode = [h(Inner, {\n style: innerStyle,\n ref: \"innerRef\"\n }, !isString(Inner) ? {\n default: () => children\n } : children)];\n return h(Container, {\n class: className,\n style: windowStyle,\n onScroll,\n ref: \"windowRef\"\n }, !isString(Container) ? { default: () => InnerNode } : InnerNode);\n }\n });\n};\n\nconst SCOPE$1 = \"ElFixedSizeGrid\";\nconst FixedSizeGrid = createGrid({\n name: \"ElFixedSizeGrid\",\n getColumnPosition: ({ columnWidth }, index) => [\n columnWidth,\n index * columnWidth\n ],\n getRowPosition: ({ rowHeight }, index) => [\n rowHeight,\n index * rowHeight\n ],\n getEstimatedTotalHeight: ({ totalRow, rowHeight }) => rowHeight * totalRow,\n getEstimatedTotalWidth: ({ totalColumn, columnWidth }) => columnWidth * totalColumn,\n getColumnOffset: ({ totalColumn, columnWidth, width }, columnIndex, alignment, scrollLeft, _, scrollBarWidth) => {\n width = Number(width);\n const lastColumnOffset = Math.max(0, totalColumn * columnWidth - width);\n const maxOffset = Math.min(lastColumnOffset, columnIndex * columnWidth);\n const minOffset = Math.max(0, columnIndex * columnWidth - width + scrollBarWidth + columnWidth);\n if (alignment === \"smart\") {\n if (scrollLeft >= minOffset - width && scrollLeft <= maxOffset + width) {\n alignment = AUTO_ALIGNMENT;\n } else {\n alignment = CENTERED_ALIGNMENT;\n }\n }\n switch (alignment) {\n case START_ALIGNMENT:\n return maxOffset;\n case END_ALIGNMENT:\n return minOffset;\n case CENTERED_ALIGNMENT:\n const middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n if (middleOffset < Math.ceil(width / 2)) {\n return 0;\n } else if (middleOffset > lastColumnOffset + Math.floor(width / 2)) {\n return lastColumnOffset;\n } else {\n return middleOffset;\n }\n case AUTO_ALIGNMENT:\n default:\n if (scrollLeft >= minOffset && scrollLeft <= maxOffset) {\n return scrollLeft;\n } else if (minOffset > maxOffset) {\n return minOffset;\n } else if (scrollLeft < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n }\n },\n getRowOffset: ({ rowHeight, height, totalRow }, rowIndex, align, scrollTop, _, scrollBarWidth) => {\n height = Number(height);\n const lastRowOffset = Math.max(0, totalRow * rowHeight - height);\n const maxOffset = Math.min(lastRowOffset, rowIndex * rowHeight);\n const minOffset = Math.max(0, rowIndex * rowHeight - height + scrollBarWidth + rowHeight);\n if (align === SMART_ALIGNMENT) {\n if (scrollTop >= minOffset - height && scrollTop <= maxOffset + height) {\n align = AUTO_ALIGNMENT;\n } else {\n align = CENTERED_ALIGNMENT;\n }\n }\n switch (align) {\n case START_ALIGNMENT:\n return maxOffset;\n case END_ALIGNMENT:\n return minOffset;\n case CENTERED_ALIGNMENT:\n const middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n if (middleOffset < Math.ceil(height / 2)) {\n return 0;\n } else if (middleOffset > lastRowOffset + Math.floor(height / 2)) {\n return lastRowOffset;\n } else {\n return middleOffset;\n }\n case AUTO_ALIGNMENT:\n default:\n if (scrollTop >= minOffset && scrollTop <= maxOffset) {\n return scrollTop;\n } else if (minOffset > maxOffset) {\n return minOffset;\n } else if (scrollTop < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n }\n },\n getColumnStartIndexForOffset: ({ columnWidth, totalColumn }, scrollLeft) => Math.max(0, Math.min(totalColumn - 1, Math.floor(scrollLeft / columnWidth))),\n getColumnStopIndexForStartIndex: ({ columnWidth, totalColumn, width }, startIndex, scrollLeft) => {\n const left = startIndex * columnWidth;\n const visibleColumnsCount = Math.ceil((width + scrollLeft - left) / columnWidth);\n return Math.max(0, Math.min(totalColumn - 1, startIndex + visibleColumnsCount - 1));\n },\n getRowStartIndexForOffset: ({ rowHeight, totalRow }, scrollTop) => Math.max(0, Math.min(totalRow - 1, Math.floor(scrollTop / rowHeight))),\n getRowStopIndexForStartIndex: ({ rowHeight, totalRow, height }, startIndex, scrollTop) => {\n const top = startIndex * rowHeight;\n const numVisibleRows = Math.ceil((height + scrollTop - top) / rowHeight);\n return Math.max(0, Math.min(totalRow - 1, startIndex + numVisibleRows - 1));\n },\n initCache: () => void 0,\n clearCache: true,\n validateProps: ({ columnWidth, rowHeight }) => {\n if (process.env.NODE_ENV !== \"production\") {\n if (!isNumber(columnWidth)) {\n throwError(SCOPE$1, `\n \"columnWidth\" must be passed as number,\n instead ${typeof columnWidth} was given.\n `);\n }\n if (!isNumber(rowHeight)) {\n throwError(SCOPE$1, `\n \"columnWidth\" must be passed as number,\n instead ${typeof rowHeight} was given.\n `);\n }\n }\n }\n});\n\nconst { max, min, floor } = Math;\nconst SCOPE$2 = \"ElDynamicSizeGrid\";\nconst ACCESS_SIZER_KEY_MAP = {\n column: \"columnWidth\",\n row: \"rowHeight\"\n};\nconst ACCESS_LAST_VISITED_KEY_MAP = {\n column: \"lastVisitedColumnIndex\",\n row: \"lastVisitedRowIndex\"\n};\nconst getItemFromCache$1 = (props, index, gridCache, type) => {\n const [cachedItems, sizer, lastVisited] = [\n gridCache[type],\n props[ACCESS_SIZER_KEY_MAP[type]],\n gridCache[ACCESS_LAST_VISITED_KEY_MAP[type]]\n ];\n if (index > lastVisited) {\n let offset = 0;\n if (lastVisited >= 0) {\n const item = cachedItems[lastVisited];\n offset = item.offset + item.size;\n }\n for (let i = lastVisited + 1; i <= index; i++) {\n const size = sizer(i);\n cachedItems[i] = {\n offset,\n size\n };\n offset += size;\n }\n gridCache[ACCESS_LAST_VISITED_KEY_MAP[type]] = index;\n }\n return cachedItems[index];\n};\nconst bs$1 = (props, gridCache, low, high, offset, type) => {\n while (low <= high) {\n const mid = low + floor((high - low) / 2);\n const currentOffset = getItemFromCache$1(props, mid, gridCache, type).offset;\n if (currentOffset === offset) {\n return mid;\n } else if (currentOffset < offset) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n return max(0, low - 1);\n};\nconst es$1 = (props, gridCache, idx, offset, type) => {\n const total = type === \"column\" ? props.totalColumn : props.totalRow;\n let exponent = 1;\n while (idx < total && getItemFromCache$1(props, idx, gridCache, type).offset < offset) {\n idx += exponent;\n exponent *= 2;\n }\n return bs$1(props, gridCache, floor(idx / 2), min(idx, total - 1), offset, type);\n};\nconst findItem$1 = (props, gridCache, offset, type) => {\n const [cache, lastVisitedIndex] = [\n gridCache[type],\n gridCache[ACCESS_LAST_VISITED_KEY_MAP[type]]\n ];\n const lastVisitedItemOffset = lastVisitedIndex > 0 ? cache[lastVisitedIndex].offset : 0;\n if (lastVisitedItemOffset >= offset) {\n return bs$1(props, gridCache, 0, lastVisitedIndex, offset, type);\n }\n return es$1(props, gridCache, max(0, lastVisitedIndex), offset, type);\n};\nconst getEstimatedTotalHeight = ({ totalRow }, {\n estimatedRowHeight,\n lastVisitedRowIndex,\n row\n}) => {\n let sizeOfVisitedRows = 0;\n if (lastVisitedRowIndex >= totalRow) {\n lastVisitedRowIndex = totalRow - 1;\n }\n if (lastVisitedRowIndex >= 0) {\n const item = row[lastVisitedRowIndex];\n sizeOfVisitedRows = item.offset + item.size;\n }\n const unvisitedItems = totalRow - lastVisitedRowIndex - 1;\n const sizeOfUnvisitedItems = unvisitedItems * estimatedRowHeight;\n return sizeOfVisitedRows + sizeOfUnvisitedItems;\n};\nconst getEstimatedTotalWidth = ({\n totalColumn\n}, {\n column,\n estimatedColumnWidth,\n lastVisitedColumnIndex\n}) => {\n let sizeOfVisitedColumns = 0;\n if (lastVisitedColumnIndex > totalColumn) {\n lastVisitedColumnIndex = totalColumn - 1;\n }\n if (lastVisitedColumnIndex >= 0) {\n const item = column[lastVisitedColumnIndex];\n sizeOfVisitedColumns = item.offset + item.size;\n }\n const unvisitedItems = totalColumn - lastVisitedColumnIndex - 1;\n const sizeOfUnvisitedItems = unvisitedItems * estimatedColumnWidth;\n return sizeOfVisitedColumns + sizeOfUnvisitedItems;\n};\nconst ACCESS_ESTIMATED_SIZE_KEY_MAP = {\n column: getEstimatedTotalWidth,\n row: getEstimatedTotalHeight\n};\nconst getOffset = (props, index, alignment, scrollOffset, cache, type, scrollBarWidth) => {\n const [\n size,\n estimatedSizeAssociates\n ] = [\n type === \"row\" ? props.height : props.width,\n ACCESS_ESTIMATED_SIZE_KEY_MAP[type]\n ];\n const item = getItemFromCache$1(props, index, cache, type);\n const estimatedSize = estimatedSizeAssociates(props, cache);\n const maxOffset = max(0, min(estimatedSize - size, item.offset));\n const minOffset = max(0, item.offset - size + scrollBarWidth + item.size);\n if (alignment === SMART_ALIGNMENT) {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n alignment = AUTO_ALIGNMENT;\n } else {\n alignment = CENTERED_ALIGNMENT;\n }\n }\n switch (alignment) {\n case START_ALIGNMENT: {\n return maxOffset;\n }\n case END_ALIGNMENT: {\n return minOffset;\n }\n case CENTERED_ALIGNMENT: {\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n }\n case AUTO_ALIGNMENT:\n default: {\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (minOffset > maxOffset) {\n return minOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n }\n }\n};\nconst FixedSizeGrid$1 = createGrid({\n name: \"ElDynamicSizeGrid\",\n getColumnPosition: (props, idx, cache) => {\n const item = getItemFromCache$1(props, idx, cache, \"column\");\n return [item.size, item.offset];\n },\n getRowPosition: (props, idx, cache) => {\n const item = getItemFromCache$1(props, idx, cache, \"row\");\n return [item.size, item.offset];\n },\n getColumnOffset: (props, columnIndex, alignment, scrollLeft, cache, scrollBarWidth) => getOffset(props, columnIndex, alignment, scrollLeft, cache, \"column\", scrollBarWidth),\n getRowOffset: (props, rowIndex, alignment, scrollTop, cache, scrollBarWidth) => getOffset(props, rowIndex, alignment, scrollTop, cache, \"row\", scrollBarWidth),\n getColumnStartIndexForOffset: (props, scrollLeft, cache) => findItem$1(props, cache, scrollLeft, \"column\"),\n getColumnStopIndexForStartIndex: (props, startIndex, scrollLeft, cache) => {\n const item = getItemFromCache$1(props, startIndex, cache, \"column\");\n const maxOffset = scrollLeft + props.width;\n let offset = item.offset + item.size;\n let stopIndex = startIndex;\n while (stopIndex < props.totalColumn - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemFromCache$1(props, startIndex, cache, \"column\").size;\n }\n return stopIndex;\n },\n getEstimatedTotalHeight,\n getEstimatedTotalWidth,\n getRowStartIndexForOffset: (props, scrollTop, cache) => findItem$1(props, cache, scrollTop, \"row\"),\n getRowStopIndexForStartIndex: (props, startIndex, scrollTop, cache) => {\n const { totalRow, height } = props;\n const item = getItemFromCache$1(props, startIndex, cache, \"row\");\n const maxOffset = scrollTop + height;\n let offset = item.size + item.offset;\n let stopIndex = startIndex;\n while (stopIndex < totalRow - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemFromCache$1(props, stopIndex, cache, \"row\").size;\n }\n return stopIndex;\n },\n initCache: ({\n estimatedColumnWidth = DEFAULT_DYNAMIC_LIST_ITEM_SIZE,\n estimatedRowHeight = DEFAULT_DYNAMIC_LIST_ITEM_SIZE\n }) => {\n const cache = {\n column: {},\n estimatedColumnWidth,\n estimatedRowHeight,\n lastVisitedColumnIndex: -1,\n lastVisitedRowIndex: -1,\n row: {}\n };\n return cache;\n },\n clearCache: true,\n validateProps: ({ columnWidth, rowHeight }) => {\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(columnWidth)) {\n throwError(SCOPE$2, `\n \"columnWidth\" must be passed as function,\n instead ${typeof columnWidth} was given.\n `);\n }\n if (!isFunction(rowHeight)) {\n throwError(SCOPE$2, `\n \"columnWidth\" must be passed as function,\n instead ${typeof rowHeight} was given.\n `);\n }\n }\n }\n});\n\nexport { FixedSizeGrid$1 as DynamicSizeGrid, DynamicSizeList, FixedSizeGrid, FixedSizeList };\n"],"sourceRoot":""}