{"version":3,"sources":["webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/Indent.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/TreeNode.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/contextTypes.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/DropIndicator.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/useUnmount.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/MotionTreeNode.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/utils/diffUtil.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/NodeList.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/Tree.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/index.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/util.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/utils/conductUtil.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/utils/keyUtil.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/es/utils/treeUtil.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://crmWeb/../code-generation/platform/dependencies/node_modules/rc-tree/node_modules/classnames/index.js"],"names":[],"mappings":"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","file":"nm.rc-tree.0d006de37f389489de3e.js","sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nvar Indent = function Indent(_ref) {\n var prefixCls = _ref.prefixCls,\n level = _ref.level,\n isStart = _ref.isStart,\n isEnd = _ref.isEnd;\n var baseClassName = \"\".concat(prefixCls, \"-indent-unit\");\n var list = [];\n for (var i = 0; i < level; i += 1) {\n var _classNames;\n list.push( /*#__PURE__*/React.createElement(\"span\", {\n key: i,\n className: classNames(baseClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(baseClassName, \"-start\"), isStart[i]), _defineProperty(_classNames, \"\".concat(baseClassName, \"-end\"), isEnd[i]), _classNames))\n }));\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-indent\")\n }, list);\n};\nexport default /*#__PURE__*/React.memo(Indent);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"eventKey\", \"className\", \"style\", \"dragOver\", \"dragOverGapTop\", \"dragOverGapBottom\", \"isLeaf\", \"isStart\", \"isEnd\", \"expanded\", \"selected\", \"checked\", \"halfChecked\", \"loading\", \"domRef\", \"active\", \"data\", \"onMouseMove\", \"selectable\"];\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\n// @ts-ignore\nimport { TreeContext } from './contextTypes';\nimport Indent from './Indent';\nimport getEntity from './utils/keyUtil';\nimport { convertNodePropsToEventData } from './utils/treeUtil';\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\nvar InternalTreeNode = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalTreeNode, _React$Component);\n var _super = _createSuper(InternalTreeNode);\n function InternalTreeNode() {\n var _this;\n _classCallCheck(this, InternalTreeNode);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n dragNodeHighlight: false\n };\n _this.selectHandle = void 0;\n _this.cacheIndent = void 0;\n _this.onSelectorClick = function (e) {\n // Click trigger before select/check operation\n var onNodeClick = _this.props.context.onNodeClick;\n onNodeClick(e, convertNodePropsToEventData(_this.props));\n if (_this.isSelectable()) {\n _this.onSelect(e);\n } else {\n _this.onCheck(e);\n }\n };\n _this.onSelectorDoubleClick = function (e) {\n var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;\n onNodeDoubleClick(e, convertNodePropsToEventData(_this.props));\n };\n _this.onSelect = function (e) {\n if (_this.isDisabled()) return;\n var onNodeSelect = _this.props.context.onNodeSelect;\n onNodeSelect(e, convertNodePropsToEventData(_this.props));\n };\n _this.onCheck = function (e) {\n if (_this.isDisabled()) return;\n var _this$props = _this.props,\n disableCheckbox = _this$props.disableCheckbox,\n checked = _this$props.checked;\n var onNodeCheck = _this.props.context.onNodeCheck;\n if (!_this.isCheckable() || disableCheckbox) return;\n var targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(_this.props), targetChecked);\n };\n _this.onMouseEnter = function (e) {\n var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;\n onNodeMouseEnter(e, convertNodePropsToEventData(_this.props));\n };\n _this.onMouseLeave = function (e) {\n var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;\n onNodeMouseLeave(e, convertNodePropsToEventData(_this.props));\n };\n _this.onContextMenu = function (e) {\n var onNodeContextMenu = _this.props.context.onNodeContextMenu;\n onNodeContextMenu(e, convertNodePropsToEventData(_this.props));\n };\n _this.onDragStart = function (e) {\n var onNodeDragStart = _this.props.context.onNodeDragStart;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: true\n });\n onNodeDragStart(e, _assertThisInitialized(_this));\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n };\n _this.onDragEnter = function (e) {\n var onNodeDragEnter = _this.props.context.onNodeDragEnter;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, _assertThisInitialized(_this));\n };\n _this.onDragOver = function (e) {\n var onNodeDragOver = _this.props.context.onNodeDragOver;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, _assertThisInitialized(_this));\n };\n _this.onDragLeave = function (e) {\n var onNodeDragLeave = _this.props.context.onNodeDragLeave;\n e.stopPropagation();\n onNodeDragLeave(e, _assertThisInitialized(_this));\n };\n _this.onDragEnd = function (e) {\n var onNodeDragEnd = _this.props.context.onNodeDragEnd;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDragEnd(e, _assertThisInitialized(_this));\n };\n _this.onDrop = function (e) {\n var onNodeDrop = _this.props.context.onNodeDrop;\n e.preventDefault();\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDrop(e, _assertThisInitialized(_this));\n };\n // Disabled item still can be switch\n _this.onExpand = function (e) {\n var _this$props2 = _this.props,\n loading = _this$props2.loading,\n onNodeExpand = _this$props2.context.onNodeExpand;\n if (loading) return;\n onNodeExpand(e, convertNodePropsToEventData(_this.props));\n };\n // Drag usage\n _this.setSelectHandle = function (node) {\n _this.selectHandle = node;\n };\n _this.getNodeState = function () {\n var expanded = _this.props.expanded;\n if (_this.isLeaf()) {\n return null;\n }\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n _this.hasChildren = function () {\n var eventKey = _this.props.eventKey;\n var keyEntities = _this.props.context.keyEntities;\n var _ref = getEntity(keyEntities, eventKey) || {},\n children = _ref.children;\n return !!(children || []).length;\n };\n _this.isLeaf = function () {\n var _this$props3 = _this.props,\n isLeaf = _this$props3.isLeaf,\n loaded = _this$props3.loaded;\n var loadData = _this.props.context.loadData;\n var hasChildren = _this.hasChildren();\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n };\n _this.isDisabled = function () {\n var disabled = _this.props.disabled;\n var treeDisabled = _this.props.context.disabled;\n return !!(treeDisabled || disabled);\n };\n _this.isCheckable = function () {\n var checkable = _this.props.checkable;\n var treeCheckable = _this.props.context.checkable;\n // Return false if tree or treeNode is not checkable\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n };\n // Load data to avoid default expanded tree without data\n _this.syncLoadData = function (props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _this$props$context = _this.props.context,\n loadData = _this$props$context.loadData,\n onNodeLoad = _this$props$context.onNodeLoad;\n if (loading) {\n return;\n }\n // read from state to avoid loadData at same time\n if (loadData && expanded && !_this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n if (!_this.hasChildren() && !loaded) {\n onNodeLoad(convertNodePropsToEventData(_this.props));\n }\n }\n };\n _this.isDraggable = function () {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n draggable = _this$props4.context.draggable;\n return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));\n };\n // ==================== Render: Drag Handler ====================\n _this.renderDragHandler = function () {\n var _this$props$context2 = _this.props.context,\n draggable = _this$props$context2.draggable,\n prefixCls = _this$props$context2.prefixCls;\n return (draggable === null || draggable === void 0 ? void 0 : draggable.icon) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-draggable-icon\")\n }, draggable.icon) : null;\n };\n // ====================== Render: Switcher ======================\n _this.renderSwitcherIconDom = function (isLeaf) {\n var switcherIconFromProps = _this.props.switcherIcon;\n var switcherIconFromCtx = _this.props.context.switcherIcon;\n var switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n // if switcherIconDom is null, no render switcher span\n if (typeof switcherIcon === 'function') {\n return switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {\n isLeaf: isLeaf\n }));\n }\n return switcherIcon;\n };\n // Switcher\n _this.renderSwitcher = function () {\n var expanded = _this.props.expanded;\n var prefixCls = _this.props.context.prefixCls;\n if (_this.isLeaf()) {\n // if switcherIconDom is null, no render switcher span\n var _switcherIconDom = _this.renderSwitcherIconDom(true);\n return _switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher-noop\"))\n }, _switcherIconDom) : null;\n }\n var switcherCls = classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE));\n var switcherIconDom = _this.renderSwitcherIconDom(false);\n return switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: _this.onExpand,\n className: switcherCls\n }, switcherIconDom) : null;\n };\n // ====================== Render: Checkbox ======================\n // Checkbox\n _this.renderCheckbox = function () {\n var _this$props5 = _this.props,\n checked = _this$props5.checked,\n halfChecked = _this$props5.halfChecked,\n disableCheckbox = _this$props5.disableCheckbox;\n var prefixCls = _this.props.context.prefixCls;\n var disabled = _this.isDisabled();\n var checkable = _this.isCheckable();\n if (!checkable) return null;\n // [Legacy] Custom element should be separate with `checkable` in future\n var $custom = typeof checkable !== 'boolean' ? checkable : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-checkbox\"), checked && \"\".concat(prefixCls, \"-checkbox-checked\"), !checked && halfChecked && \"\".concat(prefixCls, \"-checkbox-indeterminate\"), (disabled || disableCheckbox) && \"\".concat(prefixCls, \"-checkbox-disabled\")),\n onClick: _this.onCheck\n }, $custom);\n };\n // ==================== Render: Title + Icon ====================\n _this.renderIcon = function () {\n var loading = _this.props.loading;\n var prefixCls = _this.props.context.prefixCls;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__\").concat(_this.getNodeState() || 'docu'), loading && \"\".concat(prefixCls, \"-icon_loading\"))\n });\n };\n // Icon + Title\n _this.renderSelector = function () {\n var dragNodeHighlight = _this.state.dragNodeHighlight;\n var _this$props6 = _this.props,\n _this$props6$title = _this$props6.title,\n title = _this$props6$title === void 0 ? defaultTitle : _this$props6$title,\n selected = _this$props6.selected,\n icon = _this$props6.icon,\n loading = _this$props6.loading,\n data = _this$props6.data;\n var _this$props$context3 = _this.props.context,\n prefixCls = _this$props$context3.prefixCls,\n showIcon = _this$props$context3.showIcon,\n treeIcon = _this$props$context3.icon,\n loadData = _this$props$context3.loadData,\n titleRender = _this$props$context3.titleRender;\n var disabled = _this.isDisabled();\n var wrapClass = \"\".concat(prefixCls, \"-node-content-wrapper\");\n // Icon - Still show loading icon when loading without showIcon\n var $icon;\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__customize\"))\n }, typeof currentIcon === 'function' ? currentIcon(_this.props) : currentIcon) : _this.renderIcon();\n } else if (loadData && loading) {\n $icon = _this.renderIcon();\n }\n // Title\n var titleNode;\n if (typeof title === 'function') {\n titleNode = title(data);\n } else if (titleRender) {\n titleNode = titleRender(data);\n } else {\n titleNode = title;\n }\n var $title = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, titleNode);\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: _this.setSelectHandle,\n title: typeof title === 'string' ? title : '',\n className: classNames(\"\".concat(wrapClass), \"\".concat(wrapClass, \"-\").concat(_this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && \"\".concat(prefixCls, \"-node-selected\")),\n onMouseEnter: _this.onMouseEnter,\n onMouseLeave: _this.onMouseLeave,\n onContextMenu: _this.onContextMenu,\n onClick: _this.onSelectorClick,\n onDoubleClick: _this.onSelectorDoubleClick\n }, $icon, $title, _this.renderDropIndicator());\n };\n // =================== Render: Drop Indicator ===================\n _this.renderDropIndicator = function () {\n var _this$props7 = _this.props,\n disabled = _this$props7.disabled,\n eventKey = _this$props7.eventKey;\n var _this$props$context4 = _this.props.context,\n draggable = _this$props$context4.draggable,\n dropLevelOffset = _this$props$context4.dropLevelOffset,\n dropPosition = _this$props$context4.dropPosition,\n prefixCls = _this$props$context4.prefixCls,\n indent = _this$props$context4.indent,\n dropIndicatorRender = _this$props$context4.dropIndicatorRender,\n dragOverNodeKey = _this$props$context4.dragOverNodeKey,\n direction = _this$props$context4.direction;\n var rootDraggable = !!draggable;\n // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n var showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;\n // This is a hot fix which is already fixed in\n // https://github.com/react-component/tree/pull/743/files\n // But some case need break point so we hack on this\n // ref https://github.com/ant-design/ant-design/issues/43493\n var mergedIndent = indent !== null && indent !== void 0 ? indent : _this.cacheIndent;\n _this.cacheIndent = indent;\n return showIndicator ? dropIndicatorRender({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n indent: mergedIndent,\n prefixCls: prefixCls,\n direction: direction\n }) : null;\n };\n return _this;\n }\n _createClass(InternalTreeNode, [{\n key: \"componentDidMount\",\n value:\n // Isomorphic needn't load data in server side\n function componentDidMount() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"isSelectable\",\n value: function isSelectable() {\n var selectable = this.props.selectable;\n var treeSelectable = this.props.context.selectable;\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n return treeSelectable;\n }\n }, {\n key: \"render\",\n value:\n // =========================== Render ===========================\n function render() {\n var _classNames;\n var _this$props8 = this.props,\n eventKey = _this$props8.eventKey,\n className = _this$props8.className,\n style = _this$props8.style,\n dragOver = _this$props8.dragOver,\n dragOverGapTop = _this$props8.dragOverGapTop,\n dragOverGapBottom = _this$props8.dragOverGapBottom,\n isLeaf = _this$props8.isLeaf,\n isStart = _this$props8.isStart,\n isEnd = _this$props8.isEnd,\n expanded = _this$props8.expanded,\n selected = _this$props8.selected,\n checked = _this$props8.checked,\n halfChecked = _this$props8.halfChecked,\n loading = _this$props8.loading,\n domRef = _this$props8.domRef,\n active = _this$props8.active,\n data = _this$props8.data,\n onMouseMove = _this$props8.onMouseMove,\n selectable = _this$props8.selectable,\n otherProps = _objectWithoutProperties(_this$props8, _excluded);\n var _this$props$context5 = this.props.context,\n prefixCls = _this$props$context5.prefixCls,\n filterTreeNode = _this$props$context5.filterTreeNode,\n keyEntities = _this$props$context5.keyEntities,\n dropContainerKey = _this$props$context5.dropContainerKey,\n dropTargetKey = _this$props$context5.dropTargetKey,\n draggingNodeKey = _this$props$context5.draggingNodeKey;\n var disabled = this.isDisabled();\n var dataOrAriaAttributeProps = pickAttrs(otherProps, {\n aria: true,\n data: true\n });\n var _ref2 = getEntity(keyEntities, eventKey) || {},\n level = _ref2.level;\n var isEndNode = isEnd[isEnd.length - 1];\n var mergedDraggable = this.isDraggable();\n var draggableWithoutDisabled = !disabled && mergedDraggable;\n var dragging = draggingNodeKey === eventKey;\n var ariaSelected = selectable !== undefined ? {\n 'aria-selected': !!selectable\n } : undefined;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: domRef,\n className: classNames(className, \"\".concat(prefixCls, \"-treenode\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-selected\"), selected), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-leaf-last\"), isEndNode), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-draggable\"), mergedDraggable), _defineProperty(_classNames, \"dragging\", dragging), _defineProperty(_classNames, 'drop-target', dropTargetKey === eventKey), _defineProperty(_classNames, 'drop-container', dropContainerKey === eventKey), _defineProperty(_classNames, 'drag-over', !disabled && dragOver), _defineProperty(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_classNames, 'filter-node', filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props))), _classNames)),\n style: style\n // Draggable config\n ,\n draggable: draggableWithoutDisabled,\n \"aria-grabbed\": dragging,\n onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined\n // Drop config\n ,\n onDragEnter: mergedDraggable ? this.onDragEnter : undefined,\n onDragOver: mergedDraggable ? this.onDragOver : undefined,\n onDragLeave: mergedDraggable ? this.onDragLeave : undefined,\n onDrop: mergedDraggable ? this.onDrop : undefined,\n onDragEnd: mergedDraggable ? this.onDragEnd : undefined,\n onMouseMove: onMouseMove\n }, ariaSelected, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(Indent, {\n prefixCls: prefixCls,\n level: level,\n isStart: isStart,\n isEnd: isEnd\n }), this.renderDragHandler(), this.renderSwitcher(), this.renderCheckbox(), this.renderSelector());\n }\n }]);\n return InternalTreeNode;\n}(React.Component);\nvar ContextTreeNode = function ContextTreeNode(props) {\n return /*#__PURE__*/React.createElement(TreeContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalTreeNode, _extends({}, props, {\n context: context\n }));\n });\n};\nContextTreeNode.displayName = 'TreeNode';\nContextTreeNode.isTreeNode = 1;\nexport default ContextTreeNode;","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nexport var TreeContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nexport default function DropIndicator(_ref) {\n var dropPosition = _ref.dropPosition,\n dropLevelOffset = _ref.dropLevelOffset,\n indent = _ref.indent;\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2\n };\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style\n });\n}","function _objectDestructuringEmpty(t) {\n if (null == t) throw new TypeError(\"Cannot destructure \" + t);\n}\nexport { _objectDestructuringEmpty as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Trigger only when component unmount\n */\nexport default function useUnmount(triggerStart, triggerEnd) {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n firstMount = _React$useState2[0],\n setFirstMount = _React$useState2[1];\n React.useLayoutEffect(function () {\n if (firstMount) {\n triggerStart();\n return function () {\n triggerEnd();\n };\n }\n }, [firstMount]);\n React.useLayoutEffect(function () {\n setFirstMount(true);\n return function () {\n setFirstMount(false);\n };\n }, []);\n}","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"style\", \"motion\", \"motionNodes\", \"motionType\", \"onMotionStart\", \"onMotionEnd\", \"active\", \"treeNodeRequiredProps\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { TreeContext } from './contextTypes';\nimport TreeNode from './TreeNode';\nimport useUnmount from './useUnmount';\nimport { getTreeNodeProps } from './utils/treeUtil';\nvar MotionTreeNode = function MotionTreeNode(_ref, ref) {\n var className = _ref.className,\n style = _ref.style,\n motion = _ref.motion,\n motionNodes = _ref.motionNodes,\n motionType = _ref.motionType,\n onOriginMotionStart = _ref.onMotionStart,\n onOriginMotionEnd = _ref.onMotionEnd,\n active = _ref.active,\n treeNodeRequiredProps = _ref.treeNodeRequiredProps,\n props = _objectWithoutProperties(_ref, _excluded);\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n var _React$useContext = React.useContext(TreeContext),\n prefixCls = _React$useContext.prefixCls;\n // Calculate target visible here.\n // And apply in effect to make `leave` motion work.\n var targetVisible = motionNodes && motionType !== 'hide';\n useLayoutEffect(function () {\n if (motionNodes) {\n if (targetVisible !== visible) {\n setVisible(targetVisible);\n }\n }\n }, [motionNodes]);\n var triggerMotionStart = function triggerMotionStart() {\n if (motionNodes) {\n onOriginMotionStart();\n }\n };\n // Should only trigger once\n var triggerMotionEndRef = React.useRef(false);\n var triggerMotionEnd = function triggerMotionEnd() {\n if (motionNodes && !triggerMotionEndRef.current) {\n triggerMotionEndRef.current = true;\n onOriginMotionEnd();\n }\n };\n // Effect if unmount\n useUnmount(triggerMotionStart, triggerMotionEnd);\n // Motion end event\n var onVisibleChanged = function onVisibleChanged(nextVisible) {\n if (targetVisible === nextVisible) {\n triggerMotionEnd();\n }\n };\n if (motionNodes) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n ref: ref,\n visible: visible\n }, motion, {\n motionAppear: motionType === 'show',\n onVisibleChanged: onVisibleChanged\n }), function (_ref2, motionRef) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: classNames(\"\".concat(prefixCls, \"-treenode-motion\"), motionClassName),\n style: motionStyle\n }, motionNodes.map(function (treeNode) {\n var restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: active,\n data: treeNode.data,\n key: key,\n isStart: isStart,\n isEnd: isEnd\n }));\n }));\n });\n }\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n domRef: ref,\n className: className,\n style: style\n }, props, {\n active: active\n }));\n};\nMotionTreeNode.displayName = 'MotionTreeNode';\nvar RefMotionTreeNode = /*#__PURE__*/React.forwardRef(MotionTreeNode);\nexport default RefMotionTreeNode;","export function findExpandedKeys() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var prevLen = prev.length;\n var nextLen = next.length;\n if (Math.abs(prevLen - nextLen) !== 1) {\n return {\n add: false,\n key: null\n };\n }\n function find(shorter, longer) {\n var cache = new Map();\n shorter.forEach(function (key) {\n cache.set(key, true);\n });\n var keys = longer.filter(function (key) {\n return !cache.has(key);\n });\n return keys.length === 1 ? keys[0] : null;\n }\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next)\n };\n }\n return {\n add: false,\n key: find(next, prev)\n };\n}\nexport function getExpandRange(shorter, longer, key) {\n var shorterStartIndex = shorter.findIndex(function (data) {\n return data.key === key;\n });\n var shorterEndNode = shorter[shorterStartIndex + 1];\n var longerStartIndex = longer.findIndex(function (data) {\n return data.key === key;\n });\n if (shorterEndNode) {\n var longerEndIndex = longer.findIndex(function (data) {\n return data.key === shorterEndNode.key;\n });\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n return longer.slice(longerStartIndex + 1);\n}","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"selectable\", \"checkable\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"loadedKeys\", \"loadingKeys\", \"halfCheckedKeys\", \"keyEntities\", \"disabled\", \"dragging\", \"dragOverNodeKey\", \"dropPosition\", \"motion\", \"height\", \"itemHeight\", \"virtual\", \"focusable\", \"activeItem\", \"focused\", \"tabIndex\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onActiveChange\", \"onListChangeStart\", \"onListChangeEnd\"];\n/**\n * Handle virtual list of the TreeNodes.\n */\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport VirtualList from 'rc-virtual-list';\nimport * as React from 'react';\nimport MotionTreeNode from './MotionTreeNode';\nimport { findExpandedKeys, getExpandRange } from './utils/diffUtil';\nimport { getKey, getTreeNodeProps } from './utils/treeUtil';\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\nvar noop = function noop() {};\nexport var MOTION_KEY = \"RC_TREE_MOTION_\".concat(Math.random());\nvar MotionNode = {\n key: MOTION_KEY\n};\nexport var MotionEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode,\n nodes: [MotionNode]\n};\nvar MotionFlattenData = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n title: null,\n key: MOTION_KEY,\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: []\n};\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {\n if (virtual === false || !height) {\n return list;\n }\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\nfunction itemKey(item) {\n var key = item.key,\n pos = item.pos;\n return getKey(key, pos);\n}\nfunction getAccessibilityPath(item) {\n var path = String(item.data.key);\n var current = item;\n while (current.parent) {\n current = current.parent;\n path = \"\".concat(current.data.key, \" > \").concat(path);\n }\n return path;\n}\nvar NodeList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n data = props.data,\n selectable = props.selectable,\n checkable = props.checkable,\n expandedKeys = props.expandedKeys,\n selectedKeys = props.selectedKeys,\n checkedKeys = props.checkedKeys,\n loadedKeys = props.loadedKeys,\n loadingKeys = props.loadingKeys,\n halfCheckedKeys = props.halfCheckedKeys,\n keyEntities = props.keyEntities,\n disabled = props.disabled,\n dragging = props.dragging,\n dragOverNodeKey = props.dragOverNodeKey,\n dropPosition = props.dropPosition,\n motion = props.motion,\n height = props.height,\n itemHeight = props.itemHeight,\n virtual = props.virtual,\n focusable = props.focusable,\n activeItem = props.activeItem,\n focused = props.focused,\n tabIndex = props.tabIndex,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onActiveChange = props.onActiveChange,\n onListChangeStart = props.onListChangeStart,\n onListChangeEnd = props.onListChangeEnd,\n domProps = _objectWithoutProperties(props, _excluded);\n // =============================== Ref ================================\n var listRef = React.useRef(null);\n var indentMeasurerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: function scrollTo(scroll) {\n listRef.current.scrollTo(scroll);\n },\n getIndentWidth: function getIndentWidth() {\n return indentMeasurerRef.current.offsetWidth;\n }\n };\n });\n // ============================== Motion ==============================\n var _React$useState = React.useState(expandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevExpandedKeys = _React$useState2[0],\n setPrevExpandedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(data),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevData = _React$useState4[0],\n setPrevData = _React$useState4[1];\n var _React$useState5 = React.useState(data),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n transitionData = _React$useState6[0],\n setTransitionData = _React$useState6[1];\n var _React$useState7 = React.useState([]),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n transitionRange = _React$useState8[0],\n setTransitionRange = _React$useState8[1];\n var _React$useState9 = React.useState(null),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n motionType = _React$useState10[0],\n setMotionType = _React$useState10[1];\n // When motion end but data change, this will makes data back to previous one\n var dataRef = React.useRef(data);\n dataRef.current = data;\n function onMotionEnd() {\n var latestData = dataRef.current;\n setPrevData(latestData);\n setTransitionData(latestData);\n setTransitionRange([]);\n setMotionType(null);\n onListChangeEnd();\n }\n // Do animation if expanded keys changed\n // layoutEffect here to avoid blink of node removing\n useLayoutEffect(function () {\n setPrevExpandedKeys(expandedKeys);\n var diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n var keyIndex = prevData.findIndex(function (_ref) {\n var key = _ref.key;\n return key === diffExpanded.key;\n });\n var rangeNodes = getMinimumRangeTransitionRange(getExpandRange(prevData, data, diffExpanded.key), virtual, height, itemHeight);\n var newTransitionData = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n } else {\n var _keyIndex = data.findIndex(function (_ref2) {\n var key = _ref2.key;\n return key === diffExpanded.key;\n });\n var _rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);\n var _newTransitionData = data.slice();\n _newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(_newTransitionData);\n setTransitionRange(_rangeNodes);\n setMotionType('hide');\n }\n } else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]);\n // We should clean up motion if is changed by dragging\n React.useEffect(function () {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n var mergedData = motion ? transitionData : data;\n var treeNodeRequiredProps = {\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n loadedKeys: loadedKeys,\n loadingKeys: loadingKeys,\n checkedKeys: checkedKeys,\n halfCheckedKeys: halfCheckedKeys,\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, focused && activeItem && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, getAccessibilityPath(activeItem)), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"input\", {\n style: HIDDEN_STYLE,\n disabled: focusable === false || disabled,\n tabIndex: focusable !== false ? tabIndex : null,\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n onBlur: onBlur,\n value: \"\",\n onChange: noop,\n \"aria-label\": \"for screen reader\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-treenode\"),\n \"aria-hidden\": true,\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden',\n border: 0,\n padding: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-indent\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: indentMeasurerRef,\n className: \"\".concat(prefixCls, \"-indent-unit\")\n }))), /*#__PURE__*/React.createElement(VirtualList, _extends({}, domProps, {\n data: mergedData,\n itemKey: itemKey,\n height: height,\n fullHeight: false,\n virtual: virtual,\n itemHeight: itemHeight,\n prefixCls: \"\".concat(prefixCls, \"-list\"),\n ref: listRef,\n onVisibleChange: function onVisibleChange(originList, fullList) {\n var originSet = new Set(originList);\n var restList = fullList.filter(function (item) {\n return !originSet.has(item);\n });\n // Motion node is not render. Skip motion\n if (restList.some(function (item) {\n return itemKey(item) === MOTION_KEY;\n })) {\n onMotionEnd();\n }\n }\n }), function (treeNode) {\n var pos = treeNode.pos,\n restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n var mergedKey = getKey(key, pos);\n delete restProps.key;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(MotionTreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: !!activeItem && key === activeItem.key,\n pos: pos,\n data: treeNode.data,\n isStart: isStart,\n isEnd: isEnd,\n motion: motion,\n motionNodes: key === MOTION_KEY ? transitionRange : null,\n motionType: motionType,\n onMotionStart: onListChangeStart,\n onMotionEnd: onMotionEnd,\n treeNodeRequiredProps: treeNodeRequiredProps,\n onMouseMove: function onMouseMove() {\n onActiveChange(null);\n }\n }));\n }));\n});\nNodeList.displayName = 'NodeList';\nexport default NodeList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { TreeContext } from './contextTypes';\nimport DropIndicator from './DropIndicator';\nimport NodeList, { MotionEntity, MOTION_KEY } from './NodeList';\nimport TreeNode from './TreeNode';\nimport { arrAdd, arrDel, calcDropPosition, calcSelectedKeys, conductExpandParent, getDragChildrenKeys, parseCheckedKeys, posToArr } from './util';\nimport { conductCheck } from './utils/conductUtil';\nimport getEntity from './utils/keyUtil';\nimport { convertDataToEntities, convertNodePropsToEventData, convertTreeToData, fillFieldNames, flattenTreeData, getTreeNodeProps, warningWithoutKey } from './utils/treeUtil';\nvar MAX_RETRY_TIMES = 10;\nvar Tree = /*#__PURE__*/function (_React$Component) {\n _inherits(Tree, _React$Component);\n var _super = _createSuper(Tree);\n function Tree() {\n var _this;\n _classCallCheck(this, Tree);\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(_args));\n _this.destroyed = false;\n _this.delayedDragEnterLogic = void 0;\n _this.loadingRetryTimes = {};\n _this.state = {\n keyEntities: {},\n indent: null,\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n draggingNodeKey: null,\n dragChildrenKeys: [],\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropLevelOffset: null,\n dropTargetPos: null,\n dropAllowed: true,\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n treeData: [],\n flattenNodes: [],\n focused: false,\n activeKey: null,\n listChanging: false,\n prevProps: null,\n fieldNames: fillFieldNames()\n };\n _this.dragStartMousePosition = null;\n _this.dragNode = void 0;\n _this.currentMouseOverDroppableNodeKey = null;\n _this.listRef = /*#__PURE__*/React.createRef();\n _this.onNodeDragStart = function (event, node) {\n var _this$state = _this.state,\n expandedKeys = _this$state.expandedKeys,\n keyEntities = _this$state.keyEntities;\n var onDragStart = _this.props.onDragStart;\n var eventKey = node.props.eventKey;\n _this.dragNode = node;\n _this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY\n };\n var newExpandedKeys = arrDel(expandedKeys, eventKey);\n _this.setState({\n draggingNodeKey: eventKey,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: _this.listRef.current.getIndentWidth()\n });\n _this.setExpandedKeys(newExpandedKeys);\n window.addEventListener('dragend', _this.onWindowDragEnd);\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n /**\n * [Legacy] Select handler is smaller than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n _this.onNodeDragEnter = function (event, node) {\n var _this$state2 = _this.state,\n expandedKeys = _this$state2.expandedKeys,\n keyEntities = _this$state2.keyEntities,\n dragChildrenKeys = _this$state2.dragChildrenKeys,\n flattenNodes = _this$state2.flattenNodes,\n indent = _this$state2.indent;\n var _this$props = _this.props,\n onDragEnter = _this$props.onDragEnter,\n onExpand = _this$props.onExpand,\n allowDrop = _this$props.allowDrop,\n direction = _this$props.direction;\n var _node$props = node.props,\n pos = _node$props.pos,\n eventKey = _node$props.eventKey;\n var _assertThisInitialize = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize.dragNode;\n // record the key of node which is latest entered, used in dragleave event.\n if (_this.currentMouseOverDroppableNodeKey !== eventKey) {\n _this.currentMouseOverDroppableNodeKey = eventKey;\n }\n if (!dragNode) {\n _this.resetDragState();\n return;\n }\n var _calcDropPosition = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition.dropPosition,\n dropLevelOffset = _calcDropPosition.dropLevelOffset,\n dropTargetKey = _calcDropPosition.dropTargetKey,\n dropContainerKey = _calcDropPosition.dropContainerKey,\n dropTargetPos = _calcDropPosition.dropTargetPos,\n dropAllowed = _calcDropPosition.dropAllowed,\n dragOverNodeKey = _calcDropPosition.dragOverNodeKey;\n if (\n // don't allow drop inside its children\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed) {\n _this.resetDragState();\n return;\n }\n // Side effect for delay drag\n if (!_this.delayedDragEnterLogic) {\n _this.delayedDragEnterLogic = {};\n }\n Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n clearTimeout(_this.delayedDragEnterLogic[key]);\n });\n if (dragNode.props.eventKey !== node.props.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n _this.delayedDragEnterLogic[pos] = window.setTimeout(function () {\n if (_this.state.draggingNodeKey === null) return;\n var newExpandedKeys = _toConsumableArray(expandedKeys);\n var entity = getEntity(keyEntities, node.props.eventKey);\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n }\n if (!('expandedKeys' in _this.props)) {\n _this.setExpandedKeys(newExpandedKeys);\n }\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(newExpandedKeys, {\n node: convertNodePropsToEventData(node.props),\n expanded: true,\n nativeEvent: event.nativeEvent\n });\n }, 800);\n }\n // Skip if drag node is self\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n _this.resetDragState();\n return;\n }\n // Update drag over node and drag state\n _this.setState({\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed\n });\n onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter({\n event: event,\n node: convertNodePropsToEventData(node.props),\n expandedKeys: expandedKeys\n });\n };\n _this.onNodeDragOver = function (event, node) {\n var _this$state3 = _this.state,\n dragChildrenKeys = _this$state3.dragChildrenKeys,\n flattenNodes = _this$state3.flattenNodes,\n keyEntities = _this$state3.keyEntities,\n expandedKeys = _this$state3.expandedKeys,\n indent = _this$state3.indent;\n var _this$props2 = _this.props,\n onDragOver = _this$props2.onDragOver,\n allowDrop = _this$props2.allowDrop,\n direction = _this$props2.direction;\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize2.dragNode;\n if (!dragNode) {\n return;\n }\n var _calcDropPosition2 = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition2.dropPosition,\n dropLevelOffset = _calcDropPosition2.dropLevelOffset,\n dropTargetKey = _calcDropPosition2.dropTargetKey,\n dropContainerKey = _calcDropPosition2.dropContainerKey,\n dropAllowed = _calcDropPosition2.dropAllowed,\n dropTargetPos = _calcDropPosition2.dropTargetPos,\n dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;\n if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n return;\n }\n // Update drag position\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (!(_this.state.dropPosition === null && _this.state.dropLevelOffset === null && _this.state.dropTargetKey === null && _this.state.dropContainerKey === null && _this.state.dropTargetPos === null && _this.state.dropAllowed === false && _this.state.dragOverNodeKey === null)) {\n _this.resetDragState();\n }\n } else if (!(dropPosition === _this.state.dropPosition && dropLevelOffset === _this.state.dropLevelOffset && dropTargetKey === _this.state.dropTargetKey && dropContainerKey === _this.state.dropContainerKey && dropTargetPos === _this.state.dropTargetPos && dropAllowed === _this.state.dropAllowed && dragOverNodeKey === _this.state.dragOverNodeKey)) {\n _this.setState({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed,\n dragOverNodeKey: dragOverNodeKey\n });\n }\n onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n _this.onNodeDragLeave = function (event, node) {\n // if it is outside the droppable area\n // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n if (_this.currentMouseOverDroppableNodeKey === node.props.eventKey && !event.currentTarget.contains(event.relatedTarget)) {\n _this.resetDragState();\n _this.currentMouseOverDroppableNodeKey = null;\n }\n var onDragLeave = _this.props.onDragLeave;\n onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n // since stopPropagation() is called in treeNode\n // if onWindowDrag is called, whice means state is keeped, drag state should be cleared\n _this.onWindowDragEnd = function (event) {\n _this.onNodeDragEnd(event, null, true);\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called\n _this.onNodeDragEnd = function (event, node) {\n var onDragEnd = _this.props.onDragEnd;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n _this.dragNode = null;\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n _this.onNodeDrop = function (event, node) {\n var _this$getActiveItem;\n var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _this$state4 = _this.state,\n dragChildrenKeys = _this$state4.dragChildrenKeys,\n dropPosition = _this$state4.dropPosition,\n dropTargetKey = _this$state4.dropTargetKey,\n dropTargetPos = _this$state4.dropTargetPos,\n dropAllowed = _this$state4.dropAllowed;\n if (!dropAllowed) return;\n var onDrop = _this.props.onDrop;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n if (dropTargetKey === null) return;\n var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {\n active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.key) === dropTargetKey,\n data: getEntity(_this.state.keyEntities, dropTargetKey).node\n });\n var dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n warning(!dropToChild, \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\");\n var posArr = posToArr(dropTargetPos);\n var dropResult = {\n event: event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: _this.dragNode ? convertNodePropsToEventData(_this.dragNode.props) : null,\n dragNodesKeys: [_this.dragNode.props.eventKey].concat(dragChildrenKeys),\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition + Number(posArr[posArr.length - 1])\n };\n if (!outsideTree) {\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(dropResult);\n }\n _this.dragNode = null;\n };\n _this.cleanDragState = function () {\n var draggingNodeKey = _this.state.draggingNodeKey;\n if (draggingNodeKey !== null) {\n _this.setState({\n draggingNodeKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null\n });\n }\n _this.dragStartMousePosition = null;\n _this.currentMouseOverDroppableNodeKey = null;\n };\n _this.triggerExpandActionExpand = function (e, treeNode) {\n var _this$state5 = _this.state,\n expandedKeys = _this$state5.expandedKeys,\n flattenNodes = _this$state5.flattenNodes;\n var expanded = treeNode.expanded,\n key = treeNode.key,\n isLeaf = treeNode.isLeaf;\n if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {\n return;\n }\n var node = flattenNodes.filter(function (nodeItem) {\n return nodeItem.key === key;\n })[0];\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(key, _this.getTreeNodeRequiredProps())), {}, {\n data: node.data\n }));\n _this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));\n _this.onNodeExpand(e, eventNode);\n };\n _this.onNodeClick = function (e, treeNode) {\n var _this$props3 = _this.props,\n onClick = _this$props3.onClick,\n expandAction = _this$props3.expandAction;\n if (expandAction === 'click') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e, treeNode);\n };\n _this.onNodeDoubleClick = function (e, treeNode) {\n var _this$props4 = _this.props,\n onDoubleClick = _this$props4.onDoubleClick,\n expandAction = _this$props4.expandAction;\n if (expandAction === 'doubleClick') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e, treeNode);\n };\n _this.onNodeSelect = function (e, treeNode) {\n var selectedKeys = _this.state.selectedKeys;\n var _this$state6 = _this.state,\n keyEntities = _this$state6.keyEntities,\n fieldNames = _this$state6.fieldNames;\n var _this$props5 = _this.props,\n onSelect = _this$props5.onSelect,\n multiple = _this$props5.multiple;\n var selected = treeNode.selected;\n var key = treeNode[fieldNames.key];\n var targetSelected = !selected;\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n } else if (!multiple) {\n selectedKeys = [key];\n } else {\n selectedKeys = arrAdd(selectedKeys, key);\n }\n // [Legacy] Not found related usage in doc or upper libs\n var selectedNodes = selectedKeys.map(function (selectedKey) {\n var entity = getEntity(keyEntities, selectedKey);\n if (!entity) return null;\n return entity.node;\n }).filter(function (node) {\n return node;\n });\n _this.setUncontrolledState({\n selectedKeys: selectedKeys\n });\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e.nativeEvent\n });\n };\n _this.onNodeCheck = function (e, treeNode, checked) {\n var _this$state7 = _this.state,\n keyEntities = _this$state7.keyEntities,\n oriCheckedKeys = _this$state7.checkedKeys,\n oriHalfCheckedKeys = _this$state7.halfCheckedKeys;\n var _this$props6 = _this.props,\n checkStrictly = _this$props6.checkStrictly,\n onCheck = _this$props6.onCheck;\n var key = treeNode.key;\n // Prepare trigger arguments\n var checkedObj;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e.nativeEvent\n };\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n eventObj.checkedNodes = checkedKeys.map(function (checkedKey) {\n return getEntity(keyEntities, checkedKey);\n }).filter(function (entity) {\n return entity;\n }).map(function (entity) {\n return entity.node;\n });\n _this.setUncontrolledState({\n checkedKeys: checkedKeys\n });\n } else {\n // Always fill first\n var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n // If remove, we do it again to correction\n if (!checked) {\n var keySet = new Set(_checkedKeys);\n keySet.delete(key);\n var _conductCheck2 = conductCheck(Array.from(keySet), {\n checked: false,\n halfCheckedKeys: _halfCheckedKeys\n }, keyEntities);\n _checkedKeys = _conductCheck2.checkedKeys;\n _halfCheckedKeys = _conductCheck2.halfCheckedKeys;\n }\n checkedObj = _checkedKeys;\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = _halfCheckedKeys;\n _checkedKeys.forEach(function (checkedKey) {\n var entity = getEntity(keyEntities, checkedKey);\n if (!entity) return;\n var node = entity.node,\n pos = entity.pos;\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({\n node: node,\n pos: pos\n });\n });\n _this.setUncontrolledState({\n checkedKeys: _checkedKeys\n }, false, {\n halfCheckedKeys: _halfCheckedKeys\n });\n }\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(checkedObj, eventObj);\n };\n _this.onNodeLoad = function (treeNode) {\n var key = treeNode.key;\n var loadPromise = new Promise(function (resolve, reject) {\n // We need to get the latest state of loading/loaded keys\n _this.setState(function (_ref) {\n var _ref$loadedKeys = _ref.loadedKeys,\n loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,\n _ref$loadingKeys = _ref.loadingKeys,\n loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;\n var _this$props7 = _this.props,\n loadData = _this$props7.loadData,\n onLoad = _this$props7.onLoad;\n if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n return null;\n }\n // Process load data\n var promise = loadData(treeNode);\n promise.then(function () {\n var currentLoadedKeys = _this.state.loadedKeys;\n var newLoadedKeys = arrAdd(currentLoadedKeys, key);\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n _this.setUncontrolledState({\n loadedKeys: newLoadedKeys\n });\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n resolve();\n }).catch(function (e) {\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n // If exceed max retry times, we give up retry\n _this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;\n if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {\n var currentLoadedKeys = _this.state.loadedKeys;\n warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n _this.setUncontrolledState({\n loadedKeys: arrAdd(currentLoadedKeys, key)\n });\n resolve();\n }\n reject(e);\n });\n return {\n loadingKeys: arrAdd(loadingKeys, key)\n };\n });\n });\n // Not care warning if we ignore this\n loadPromise.catch(function () {});\n return loadPromise;\n };\n _this.onNodeMouseEnter = function (event, node) {\n var onMouseEnter = _this.props.onMouseEnter;\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n event: event,\n node: node\n });\n };\n _this.onNodeMouseLeave = function (event, node) {\n var onMouseLeave = _this.props.onMouseLeave;\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n event: event,\n node: node\n });\n };\n _this.onNodeContextMenu = function (event, node) {\n var onRightClick = _this.props.onRightClick;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({\n event: event,\n node: node\n });\n }\n };\n _this.onFocus = function () {\n var onFocus = _this.props.onFocus;\n _this.setState({\n focused: true\n });\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n onFocus === null || onFocus === void 0 ? void 0 : onFocus.apply(void 0, args);\n };\n _this.onBlur = function () {\n var onBlur = _this.props.onBlur;\n _this.setState({\n focused: false\n });\n _this.onActiveChange(null);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n onBlur === null || onBlur === void 0 ? void 0 : onBlur.apply(void 0, args);\n };\n _this.getTreeNodeRequiredProps = function () {\n var _this$state8 = _this.state,\n expandedKeys = _this$state8.expandedKeys,\n selectedKeys = _this$state8.selectedKeys,\n loadedKeys = _this$state8.loadedKeys,\n loadingKeys = _this$state8.loadingKeys,\n checkedKeys = _this$state8.checkedKeys,\n halfCheckedKeys = _this$state8.halfCheckedKeys,\n dragOverNodeKey = _this$state8.dragOverNodeKey,\n dropPosition = _this$state8.dropPosition,\n keyEntities = _this$state8.keyEntities;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n };\n // =========================== Expanded ===========================\n /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */\n _this.setExpandedKeys = function (expandedKeys) {\n var _this$state9 = _this.state,\n treeData = _this$state9.treeData,\n fieldNames = _this$state9.fieldNames;\n var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n expandedKeys: expandedKeys,\n flattenNodes: flattenNodes\n }, true);\n };\n _this.onNodeExpand = function (e, treeNode) {\n var expandedKeys = _this.state.expandedKeys;\n var _this$state10 = _this.state,\n listChanging = _this$state10.listChanging,\n fieldNames = _this$state10.fieldNames;\n var _this$props8 = _this.props,\n onExpand = _this$props8.onExpand,\n loadData = _this$props8.loadData;\n var expanded = treeNode.expanded;\n var key = treeNode[fieldNames.key];\n // Do nothing when motion is in progress\n if (listChanging) {\n return;\n }\n // Update selected keys\n var index = expandedKeys.indexOf(key);\n var targetExpanded = !expanded;\n warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, key);\n } else {\n expandedKeys = arrDel(expandedKeys, key);\n }\n _this.setExpandedKeys(expandedKeys);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent\n });\n // Async Load data\n if (targetExpanded && loadData) {\n var loadPromise = _this.onNodeLoad(treeNode);\n if (loadPromise) {\n loadPromise.then(function () {\n // [Legacy] Refresh logic\n var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n flattenNodes: newFlattenTreeData\n });\n }).catch(function () {\n var currentExpandedKeys = _this.state.expandedKeys;\n var expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n _this.setExpandedKeys(expandedKeysToRestore);\n });\n }\n }\n };\n _this.onListChangeStart = function () {\n _this.setUncontrolledState({\n listChanging: true\n });\n };\n _this.onListChangeEnd = function () {\n setTimeout(function () {\n _this.setUncontrolledState({\n listChanging: false\n });\n });\n };\n // =========================== Keyboard ===========================\n _this.onActiveChange = function (newActiveKey) {\n var activeKey = _this.state.activeKey;\n var onActiveChange = _this.props.onActiveChange;\n if (activeKey === newActiveKey) {\n return;\n }\n _this.setState({\n activeKey: newActiveKey\n });\n if (newActiveKey !== null) {\n _this.scrollTo({\n key: newActiveKey\n });\n }\n onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(newActiveKey);\n };\n _this.getActiveItem = function () {\n var _this$state11 = _this.state,\n activeKey = _this$state11.activeKey,\n flattenNodes = _this$state11.flattenNodes;\n if (activeKey === null) {\n return null;\n }\n return flattenNodes.find(function (_ref2) {\n var key = _ref2.key;\n return key === activeKey;\n }) || null;\n };\n _this.offsetActiveKey = function (offset) {\n var _this$state12 = _this.state,\n flattenNodes = _this$state12.flattenNodes,\n activeKey = _this$state12.activeKey;\n var index = flattenNodes.findIndex(function (_ref3) {\n var key = _ref3.key;\n return key === activeKey;\n });\n // Align with index\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n var item = flattenNodes[index];\n if (item) {\n var key = item.key;\n _this.onActiveChange(key);\n } else {\n _this.onActiveChange(null);\n }\n };\n _this.onKeyDown = function (event) {\n var _this$state13 = _this.state,\n activeKey = _this$state13.activeKey,\n expandedKeys = _this$state13.expandedKeys,\n checkedKeys = _this$state13.checkedKeys,\n fieldNames = _this$state13.fieldNames;\n var _this$props9 = _this.props,\n onKeyDown = _this$props9.onKeyDown,\n checkable = _this$props9.checkable,\n selectable = _this$props9.selectable;\n // >>>>>>>>>> Direction\n switch (event.which) {\n case KeyCode.UP:\n {\n _this.offsetActiveKey(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.DOWN:\n {\n _this.offsetActiveKey(1);\n event.preventDefault();\n break;\n }\n }\n // >>>>>>>>>> Expand & Selection\n var activeItem = _this.getActiveItem();\n if (activeItem && activeItem.data) {\n var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();\n var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {\n data: activeItem.data,\n active: true\n }));\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT:\n {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.parent) {\n _this.onActiveChange(activeItem.parent.key);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.RIGHT:\n {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.children && activeItem.children.length) {\n _this.onActiveChange(activeItem.children[0].key);\n }\n event.preventDefault();\n break;\n }\n // Selection\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {\n _this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));\n } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {\n _this.onNodeSelect({}, eventNode);\n }\n break;\n }\n }\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n };\n /**\n * Only update the value which is not in props\n */\n _this.setUncontrolledState = function (state) {\n var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!_this.destroyed) {\n var needSync = false;\n var allPassed = true;\n var newState = {};\n Object.keys(state).forEach(function (name) {\n if (name in _this.props) {\n allPassed = false;\n return;\n }\n needSync = true;\n newState[name] = state[name];\n });\n if (needSync && (!atomic || allPassed)) {\n _this.setState(_objectSpread(_objectSpread({}, newState), forceState));\n }\n }\n };\n _this.scrollTo = function (scroll) {\n _this.listRef.current.scrollTo(scroll);\n };\n return _this;\n }\n _createClass(Tree, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.destroyed = false;\n this.onUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onUpdated();\n }\n }, {\n key: \"onUpdated\",\n value: function onUpdated() {\n var activeKey = this.props.activeKey;\n if (activeKey !== undefined && activeKey !== this.state.activeKey) {\n this.setState({\n activeKey: activeKey\n });\n if (activeKey !== null) {\n this.scrollTo({\n key: activeKey\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n }, {\n key: \"resetDragState\",\n value: function resetDragState() {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n var _this$state14 = this.state,\n focused = _this$state14.focused,\n flattenNodes = _this$state14.flattenNodes,\n keyEntities = _this$state14.keyEntities,\n draggingNodeKey = _this$state14.draggingNodeKey,\n activeKey = _this$state14.activeKey,\n dropLevelOffset = _this$state14.dropLevelOffset,\n dropContainerKey = _this$state14.dropContainerKey,\n dropTargetKey = _this$state14.dropTargetKey,\n dropPosition = _this$state14.dropPosition,\n dragOverNodeKey = _this$state14.dragOverNodeKey,\n indent = _this$state14.indent;\n var _this$props10 = this.props,\n prefixCls = _this$props10.prefixCls,\n className = _this$props10.className,\n style = _this$props10.style,\n showLine = _this$props10.showLine,\n focusable = _this$props10.focusable,\n _this$props10$tabInde = _this$props10.tabIndex,\n tabIndex = _this$props10$tabInde === void 0 ? 0 : _this$props10$tabInde,\n selectable = _this$props10.selectable,\n showIcon = _this$props10.showIcon,\n icon = _this$props10.icon,\n switcherIcon = _this$props10.switcherIcon,\n draggable = _this$props10.draggable,\n checkable = _this$props10.checkable,\n checkStrictly = _this$props10.checkStrictly,\n disabled = _this$props10.disabled,\n motion = _this$props10.motion,\n loadData = _this$props10.loadData,\n filterTreeNode = _this$props10.filterTreeNode,\n height = _this$props10.height,\n itemHeight = _this$props10.itemHeight,\n virtual = _this$props10.virtual,\n titleRender = _this$props10.titleRender,\n dropIndicatorRender = _this$props10.dropIndicatorRender,\n onContextMenu = _this$props10.onContextMenu,\n onScroll = _this$props10.onScroll,\n direction = _this$props10.direction,\n rootClassName = _this$props10.rootClassName,\n rootStyle = _this$props10.rootStyle;\n var domProps = pickAttrs(this.props, {\n aria: true,\n data: true\n });\n // It's better move to hooks but we just simply keep here\n var draggableConfig;\n if (draggable) {\n if (_typeof(draggable) === 'object') {\n draggableConfig = draggable;\n } else if (typeof draggable === 'function') {\n draggableConfig = {\n nodeDraggable: draggable\n };\n } else {\n draggableConfig = {};\n }\n }\n return /*#__PURE__*/React.createElement(TreeContext.Provider, {\n value: {\n prefixCls: prefixCls,\n selectable: selectable,\n showIcon: showIcon,\n icon: icon,\n switcherIcon: switcherIcon,\n draggable: draggableConfig,\n draggingNodeKey: draggingNodeKey,\n checkable: checkable,\n checkStrictly: checkStrictly,\n disabled: disabled,\n keyEntities: keyEntities,\n dropLevelOffset: dropLevelOffset,\n dropContainerKey: dropContainerKey,\n dropTargetKey: dropTargetKey,\n dropPosition: dropPosition,\n dragOverNodeKey: dragOverNodeKey,\n indent: indent,\n direction: direction,\n dropIndicatorRender: dropIndicatorRender,\n loadData: loadData,\n filterTreeNode: filterTreeNode,\n titleRender: titleRender,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tree\",\n className: classNames(prefixCls, className, rootClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-line\"), showLine), _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames, \"\".concat(prefixCls, \"-active-focused\"), activeKey !== null), _classNames)),\n style: rootStyle\n }, /*#__PURE__*/React.createElement(NodeList, _extends({\n ref: this.listRef,\n prefixCls: prefixCls,\n style: style,\n data: flattenNodes,\n disabled: disabled,\n selectable: selectable,\n checkable: !!checkable,\n motion: motion,\n dragging: draggingNodeKey !== null,\n height: height,\n itemHeight: itemHeight,\n virtual: virtual,\n focusable: focusable,\n focused: focused,\n tabIndex: tabIndex,\n activeItem: this.getActiveItem(),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n onActiveChange: this.onActiveChange,\n onListChangeStart: this.onListChangeStart,\n onListChangeEnd: this.onListChangeEnd,\n onContextMenu: onContextMenu,\n onScroll: onScroll\n }, this.getTreeNodeRequiredProps(), domProps))));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var prevProps = prevState.prevProps;\n var newState = {\n prevProps: props\n };\n function needSync(name) {\n return !prevProps && name in props || prevProps && prevProps[name] !== props[name];\n }\n // ================== Tree Node ==================\n var treeData;\n // fieldNames\n var fieldNames = prevState.fieldNames;\n if (needSync('fieldNames')) {\n fieldNames = fillFieldNames(props.fieldNames);\n newState.fieldNames = fieldNames;\n }\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeData = props.treeData;\n } else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n }\n // Save flatten nodes info and convert `treeData` into keyEntities\n if (treeData) {\n newState.treeData = treeData;\n var entitiesMap = convertDataToEntities(treeData, {\n fieldNames: fieldNames\n });\n newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities);\n // Warning if treeNode not provide key\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData, fieldNames);\n }\n }\n var keyEntities = newState.keyEntities || prevState.keyEntities;\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) {\n newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!prevProps && props.defaultExpandAll) {\n var cloneKeyEntities = _objectSpread({}, keyEntities);\n delete cloneKeyEntities[MOTION_KEY];\n newState.expandedKeys = Object.keys(cloneKeyEntities).map(function (key) {\n return cloneKeyEntities[key].key;\n });\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n }\n // ================ flattenNodes =================\n if (treeData || newState.expandedKeys) {\n var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);\n newState.flattenNodes = flattenNodes;\n }\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n // ================= checkedKeys =================\n if (props.checkable) {\n var checkedKeyEntity;\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys\n };\n }\n if (checkedKeyEntity) {\n var _checkedKeyEntity = checkedKeyEntity,\n _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,\n _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;\n if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n return newState;\n }\n }]);\n return Tree;\n}(React.Component);\nTree.defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n dropIndicatorRender: DropIndicator,\n allowDrop: function allowDrop() {\n return true;\n },\n expandAction: false\n};\nTree.TreeNode = TreeNode;\nexport default Tree;","import Tree from './Tree';\nimport TreeNode from './TreeNode';\nexport { TreeNode };\nexport default Tree;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\n/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\nimport warning from \"rc-util/es/warning\";\nimport React from 'react';\nimport TreeNode from './TreeNode';\nimport getEntity from './utils/keyUtil';\nexport { getPosition, isTreeNode } from './utils/treeUtil';\nexport function arrDel(list, value) {\n if (!list) return [];\n var clone = list.slice();\n var index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\nexport function arrAdd(list, value) {\n var clone = (list || []).slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n // not contains self\n // self for left or right drag\n var dragChildrenKeys = [];\n var entity = getEntity(keyEntities, dragNodeKey);\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n dig(entity.children);\n return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n if (treeNodeEntity.parent) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n}\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n var _abstractDropNodeEnti;\n var clientX = event.clientX,\n clientY = event.clientY;\n var _event$target$getBoun = event.target.getBoundingClientRect(),\n top = _event$target$getBoun.top,\n height = _event$target$getBoun.height;\n // optional chain for testing\n var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n // find abstract drop node by horizontal offset\n var abstractDropNodeEntity = getEntity(keyEntities, targetNode.props.eventKey);\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n return flattenedNode.key === abstractDropNodeEntity.key;\n });\n var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n var prevNodeKey = flattenedNodes[prevNodeIndex].key;\n abstractDropNodeEntity = getEntity(keyEntities, prevNodeKey);\n }\n var initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n var abstractDragOverEntity = abstractDropNodeEntity;\n var dragOverNodeKey = abstractDropNodeEntity.key;\n var dropPosition = 0;\n var dropLevelOffset = 0;\n // Only allow cross level drop when dragging on a non-expanded node\n if (!expandKeys.includes(initialAbstractDropNodeKey)) {\n for (var i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n var abstractDragDataNode = dragNode.props.data;\n var abstractDropDataNode = abstractDropNodeEntity.node;\n var dropAllowed = true;\n if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1\n }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n // first half of first node in first level\n dropPosition = -1;\n } else if ((abstractDragOverEntity.children || []).length && expandKeys.includes(dragOverNodeKey)) {\n // drop on expanded node\n // only allow drop inside\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n return {\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey: dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n dropAllowed: dropAllowed\n };\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n var multiple = props.multiple;\n if (multiple) {\n return selectedKeys.slice();\n }\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, _excluded);\n var childrenNodes = convertDataToTree(children, processor);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n key: props.key\n }, processProps(props)), childrenNodes);\n });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n // Convert keys to object format\n var keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if (_typeof(keys) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Set();\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = getEntity(keyEntities, key);\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n if (parent) {\n conductUp(parent.key);\n }\n }\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}","import warning from \"rc-util/es/warning\";\nimport getEntity from './keyUtil';\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n var filteredKeys = new Set();\n halfCheckedKeys.forEach(function (key) {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\nexport function isCheckDisabled(node) {\n var _ref = node || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n// Fill miss keys\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set();\n // Add checked keys top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children = entity.children,\n children = _entity$children === void 0 ? [] : _entity$children;\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n }\n // Add checked keys from bottom to top\n var visitedKeys = new Set();\n for (var _level = maxLevel; _level >= 0; _level -= 1) {\n var _entities = levelEntities.get(_level) || new Set();\n _entities.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref2) {\n var key = _ref2.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n// Remove useless key\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set(halfKeys);\n // Remove checked keys from top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children2 = entity.children,\n children = _entity$children2 === void 0 ? [] : _entity$children2;\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n }\n // Remove checked keys form bottom to top\n halfCheckedKeys = new Set();\n var visitedKeys = new Set();\n for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n var _entities2 = levelEntities.get(_level2) || new Set();\n _entities2.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref3) {\n var key = _ref3.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n var warningMissKeys = [];\n var syntheticGetCheckDisabled;\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n } else {\n syntheticGetCheckDisabled = isCheckDisabled;\n }\n // We only handle exist keys\n var keys = new Set(keyList.filter(function (key) {\n var hasEntity = !!getEntity(keyEntities, key);\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n return hasEntity;\n }));\n var levelEntities = new Map();\n var maxLevel = 0;\n // Convert entities by level for calculation\n Object.keys(keyEntities).forEach(function (key) {\n var entity = keyEntities[key];\n var level = entity.level;\n var levelSet = levelEntities.get(level);\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n levelSet.add(entity);\n maxLevel = Math.max(maxLevel, level);\n });\n warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n return \"'\".concat(key, \"'\");\n }).join(', ')));\n var result;\n if (checked === true) {\n result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n } else {\n result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n }\n return result;\n}","export default function getEntity(keyEntities, key) {\n return keyEntities[key];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport warning from \"rc-util/es/warning\";\nimport getEntity from './keyUtil';\nexport function getPosition(level, index) {\n return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n return pos;\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n title = _ref.title,\n _title = _ref._title,\n key = _ref.key,\n children = _ref.children;\n var mergedTitle = title || 'title';\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children'\n };\n}\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData, fieldNames) {\n var keys = new Map();\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode[fieldNames.key];\n var children = treeNode[fieldNames.children];\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n var key = treeNode.key;\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, _excluded);\n var dataNode = _objectSpread({\n key: key\n }, rest);\n var parsedChildren = dig(children);\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {\n var _fillFieldNames = fillFieldNames(fieldNames),\n fieldTitles = _fillFieldNames._title,\n fieldKey = _fillFieldNames.key,\n fieldChildren = _fillFieldNames.children;\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode[fieldKey], pos);\n // Pick matched title in field title list\n var mergedTitle;\n for (var i = 0; i < fieldTitles.length; i += 1) {\n var fieldTitle = fieldTitles[i];\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n }\n // Add FlattenDataNode into list\n var flattenNode = _objectSpread(_objectSpread({}, omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren]))), {}, {\n title: mergedTitle,\n key: mergedKey,\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n flattenList.push(flattenNode);\n // Loop treeNode children\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n return flattenNode;\n });\n }\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(dataNodes, callback,\n// To avoid too many params, let use config instead of origin param\nconfig) {\n var mergedConfig = {};\n if (_typeof(config) === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = {\n externalGetKey: config\n };\n }\n mergedConfig = mergedConfig || {};\n // Init config\n var _mergedConfig = mergedConfig,\n childrenPropName = _mergedConfig.childrenPropName,\n externalGetKey = _mergedConfig.externalGetKey,\n fieldNames = _mergedConfig.fieldNames;\n var _fillFieldNames2 = fillFieldNames(fieldNames),\n fieldKey = _fillFieldNames2.key,\n fieldChildren = _fillFieldNames2.children;\n var mergeChildrenPropName = childrenPropName || fieldChildren;\n // Get keys\n var syntheticGetKey;\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = function syntheticGetKey(node) {\n return node[externalGetKey];\n };\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = function syntheticGetKey(node) {\n return externalGetKey(node);\n };\n }\n } else {\n syntheticGetKey = function syntheticGetKey(node, pos) {\n return getKey(node[fieldKey], pos);\n };\n }\n // Process\n function processNode(node, index, parent, pathNodes) {\n var children = node ? node[mergeChildrenPropName] : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0';\n var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : [];\n // Process node if is not root\n if (node) {\n var key = syntheticGetKey(node, pos);\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n nodes: connectNodes\n };\n callback(data);\n }\n // Process children node\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n }, connectNodes);\n });\n }\n }\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(dataNodes) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref2.initWrapper,\n processEntity = _ref2.processEntity,\n onProcessFinished = _ref2.onProcessFinished,\n externalGetKey = _ref2.externalGetKey,\n childrenPropName = _ref2.childrenPropName,\n fieldNames = _ref2.fieldNames;\n var /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n // Init config\n var mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level,\n nodes = item.nodes;\n var entity = {\n node: node,\n nodes: nodes,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity;\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, {\n externalGetKey: mergedExternalGetKey,\n childrenPropName: childrenPropName,\n fieldNames: fieldNames\n });\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps(key, _ref3) {\n var expandedKeys = _ref3.expandedKeys,\n selectedKeys = _ref3.selectedKeys,\n loadedKeys = _ref3.loadedKeys,\n loadingKeys = _ref3.loadingKeys,\n checkedKeys = _ref3.checkedKeys,\n halfCheckedKeys = _ref3.halfCheckedKeys,\n dragOverNodeKey = _ref3.dragOverNodeKey,\n dropPosition = _ref3.dropPosition,\n keyEntities = _ref3.keyEntities;\n var entity = getEntity(keyEntities, key);\n var treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active,\n eventKey = props.eventKey;\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active,\n key: eventKey\n });\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n return eventData;\n}","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"],"sourceRoot":""}