|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[72473],{
|
|
|
|
|
|
/***/ 6222:
|
|
|
/*!************************************************************************************************************!*\
|
|
|
!*** ./node_modules/_@ant-design_icons@5.3.1@@ant-design/icons/es/icons/FolderOpenOutlined.js + 1 modules ***!
|
|
|
\************************************************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ icons_FolderOpenOutlined; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.24.0@@babel/runtime/helpers/esm/extends.js
|
|
|
var esm_extends = __webpack_require__(36384);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/FolderOpenOutlined.js
|
|
|
// This icon file is generated automatically.
|
|
|
var FolderOpenOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z" } }] }, "name": "folder-open", "theme": "outlined" };
|
|
|
/* harmony default export */ var asn_FolderOpenOutlined = (FolderOpenOutlined);
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
|
var AntdIcon = __webpack_require__(15436);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.3.1@@ant-design/icons/es/icons/FolderOpenOutlined.js
|
|
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var FolderOpenOutlined_FolderOpenOutlined = function FolderOpenOutlined(props, ref) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
|
ref: ref,
|
|
|
icon: asn_FolderOpenOutlined
|
|
|
}));
|
|
|
};
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var icons_FolderOpenOutlined = (/*#__PURE__*/_react_17_0_2_react.forwardRef(FolderOpenOutlined_FolderOpenOutlined));
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 56762:
|
|
|
/*!************************************************************************!*\
|
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/_util/hooks/useForceUpdate.js ***!
|
|
|
\************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ Z: function() { return /* binding */ useForceUpdate; }
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
|
|
|
|
|
|
function useForceUpdate() {
|
|
|
const [, forceUpdate] = react__WEBPACK_IMPORTED_MODULE_0__.useReducer(x => x + 1, 0);
|
|
|
return forceUpdate;
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 38854:
|
|
|
/*!************************************************************************!*\
|
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/dropdown/index.js + 1 modules ***!
|
|
|
\************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ es_dropdown; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/dropdown/dropdown.js
|
|
|
var dropdown = __webpack_require__(91857);
|
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js
|
|
|
var _classnames_2_5_1_classnames = __webpack_require__(92310);
|
|
|
var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.1@@ant-design/icons/es/icons/EllipsisOutlined.js + 1 modules
|
|
|
var EllipsisOutlined = __webpack_require__(37586);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
|
|
|
var es_button = __webpack_require__(3113);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
|
|
|
var context = __webpack_require__(36355);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/space/index.js + 3 modules
|
|
|
var space = __webpack_require__(81327);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/space/Compact.js
|
|
|
var Compact = __webpack_require__(33234);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/dropdown/style/index.js + 1 modules
|
|
|
var style = __webpack_require__(47211);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/dropdown/dropdown-button.js
|
|
|
"use client";
|
|
|
|
|
|
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
|
var t = {};
|
|
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
|
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
|
}
|
|
|
return t;
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const DropdownButton = props => {
|
|
|
const {
|
|
|
getPopupContainer: getContextPopupContainer,
|
|
|
getPrefixCls,
|
|
|
direction
|
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
|
const {
|
|
|
prefixCls: customizePrefixCls,
|
|
|
type = 'default',
|
|
|
danger,
|
|
|
disabled,
|
|
|
loading,
|
|
|
onClick,
|
|
|
htmlType,
|
|
|
children,
|
|
|
className,
|
|
|
menu,
|
|
|
arrow,
|
|
|
autoFocus,
|
|
|
overlay,
|
|
|
trigger,
|
|
|
align,
|
|
|
open,
|
|
|
onOpenChange,
|
|
|
placement,
|
|
|
getPopupContainer,
|
|
|
href,
|
|
|
icon = /*#__PURE__*/_react_17_0_2_react.createElement(EllipsisOutlined/* default */.Z, null),
|
|
|
title,
|
|
|
buttonsRender = buttons => buttons,
|
|
|
mouseEnterDelay,
|
|
|
mouseLeaveDelay,
|
|
|
overlayClassName,
|
|
|
overlayStyle,
|
|
|
destroyPopupOnHide,
|
|
|
dropdownRender
|
|
|
} = props,
|
|
|
restProps = __rest(props, ["prefixCls", "type", "danger", "disabled", "loading", "onClick", "htmlType", "children", "className", "menu", "arrow", "autoFocus", "overlay", "trigger", "align", "open", "onOpenChange", "placement", "getPopupContainer", "href", "icon", "title", "buttonsRender", "mouseEnterDelay", "mouseLeaveDelay", "overlayClassName", "overlayStyle", "destroyPopupOnHide", "dropdownRender"]);
|
|
|
const prefixCls = getPrefixCls('dropdown', customizePrefixCls);
|
|
|
const buttonPrefixCls = `${prefixCls}-button`;
|
|
|
const [wrapSSR, hashId] = (0,style/* default */.Z)(prefixCls);
|
|
|
const dropdownProps = {
|
|
|
menu,
|
|
|
arrow,
|
|
|
autoFocus,
|
|
|
align,
|
|
|
disabled,
|
|
|
trigger: disabled ? [] : trigger,
|
|
|
onOpenChange,
|
|
|
getPopupContainer: getPopupContainer || getContextPopupContainer,
|
|
|
mouseEnterDelay,
|
|
|
mouseLeaveDelay,
|
|
|
overlayClassName,
|
|
|
overlayStyle,
|
|
|
destroyPopupOnHide,
|
|
|
dropdownRender
|
|
|
};
|
|
|
const {
|
|
|
compactSize,
|
|
|
compactItemClassnames
|
|
|
} = (0,Compact/* useCompactItemContext */.ri)(prefixCls, direction);
|
|
|
const classes = _classnames_2_5_1_classnames_default()(buttonPrefixCls, compactItemClassnames, className, hashId);
|
|
|
if ('overlay' in props) {
|
|
|
dropdownProps.overlay = overlay;
|
|
|
}
|
|
|
if ('open' in props) {
|
|
|
dropdownProps.open = open;
|
|
|
}
|
|
|
if ('placement' in props) {
|
|
|
dropdownProps.placement = placement;
|
|
|
} else {
|
|
|
dropdownProps.placement = direction === 'rtl' ? 'bottomLeft' : 'bottomRight';
|
|
|
}
|
|
|
const leftButton = /*#__PURE__*/_react_17_0_2_react.createElement(es_button/* default */.ZP, {
|
|
|
type: type,
|
|
|
danger: danger,
|
|
|
disabled: disabled,
|
|
|
loading: loading,
|
|
|
onClick: onClick,
|
|
|
htmlType: htmlType,
|
|
|
href: href,
|
|
|
title: title
|
|
|
}, children);
|
|
|
const rightButton = /*#__PURE__*/_react_17_0_2_react.createElement(es_button/* default */.ZP, {
|
|
|
type: type,
|
|
|
danger: danger,
|
|
|
icon: icon
|
|
|
});
|
|
|
const [leftButtonToRender, rightButtonToRender] = buttonsRender([leftButton, rightButton]);
|
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement(space/* default */.Z.Compact, Object.assign({
|
|
|
className: classes,
|
|
|
size: compactSize,
|
|
|
block: true
|
|
|
}, restProps), leftButtonToRender, /*#__PURE__*/_react_17_0_2_react.createElement(dropdown/* default */.Z, Object.assign({}, dropdownProps), rightButtonToRender)));
|
|
|
};
|
|
|
DropdownButton.__ANT_BUTTON = true;
|
|
|
/* harmony default export */ var dropdown_button = (DropdownButton);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/dropdown/index.js
|
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
const Dropdown = dropdown/* default */.Z;
|
|
|
Dropdown.Button = dropdown_button;
|
|
|
/* harmony default export */ var es_dropdown = (Dropdown);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 81327:
|
|
|
/*!*********************************************************************!*\
|
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/space/index.js + 3 modules ***!
|
|
|
\*********************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ space; }
|
|
|
});
|
|
|
|
|
|
// UNUSED EXPORTS: SpaceContext
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js
|
|
|
var _classnames_2_5_1_classnames = __webpack_require__(92310);
|
|
|
var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames);
|
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.38.2@rc-util/es/Children/toArray.js
|
|
|
var toArray = __webpack_require__(6415);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
|
|
|
var context = __webpack_require__(36355);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/space/Compact.js
|
|
|
var Compact = __webpack_require__(33234);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/space/context.js
|
|
|
|
|
|
const SpaceContext = /*#__PURE__*/_react_17_0_2_react.createContext({
|
|
|
latestIndex: 0
|
|
|
});
|
|
|
const SpaceContextProvider = SpaceContext.Provider;
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/space/Item.js
|
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
const Item = _ref => {
|
|
|
let {
|
|
|
className,
|
|
|
index,
|
|
|
children,
|
|
|
split,
|
|
|
style
|
|
|
} = _ref;
|
|
|
const {
|
|
|
latestIndex
|
|
|
} = _react_17_0_2_react.useContext(SpaceContext);
|
|
|
if (children === null || children === undefined) {
|
|
|
return null;
|
|
|
}
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
|
className: className,
|
|
|
style: style
|
|
|
}, children), index < latestIndex && split && /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
|
className: `${className}-split`
|
|
|
}, split));
|
|
|
};
|
|
|
/* harmony default export */ var space_Item = (Item);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/space/style/index.js + 1 modules
|
|
|
var space_style = __webpack_require__(2856);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/space/utils.js
|
|
|
function isPresetSize(size) {
|
|
|
return ['small', 'middle', 'large'].includes(size);
|
|
|
}
|
|
|
function isValidGapNumber(size) {
|
|
|
if (!size) {
|
|
|
// The case of size = 0 is deliberately excluded here, because the default value of the gap attribute in CSS is 0, so if the user passes 0 in, we can directly ignore it.
|
|
|
return false;
|
|
|
}
|
|
|
return typeof size === 'number' && !Number.isNaN(size);
|
|
|
}
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/space/index.js
|
|
|
"use client";
|
|
|
|
|
|
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
|
var t = {};
|
|
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
|
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
|
}
|
|
|
return t;
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const Space = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
|
|
|
var _a, _b;
|
|
|
const {
|
|
|
getPrefixCls,
|
|
|
space,
|
|
|
direction: directionConfig
|
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
|
const {
|
|
|
size = (space === null || space === void 0 ? void 0 : space.size) || 'small',
|
|
|
align,
|
|
|
className,
|
|
|
rootClassName,
|
|
|
children,
|
|
|
direction = 'horizontal',
|
|
|
prefixCls: customizePrefixCls,
|
|
|
split,
|
|
|
style,
|
|
|
wrap = false,
|
|
|
classNames: customClassNames,
|
|
|
styles
|
|
|
} = props,
|
|
|
otherProps = __rest(props, ["size", "align", "className", "rootClassName", "children", "direction", "prefixCls", "split", "style", "wrap", "classNames", "styles"]);
|
|
|
const [horizontalSize, verticalSize] = Array.isArray(size) ? size : [size, size];
|
|
|
const isPresetVerticalSize = isPresetSize(verticalSize);
|
|
|
const isPresetHorizontalSize = isPresetSize(horizontalSize);
|
|
|
const isValidVerticalSize = isValidGapNumber(verticalSize);
|
|
|
const isValidHorizontalSize = isValidGapNumber(horizontalSize);
|
|
|
const childNodes = (0,toArray/* default */.Z)(children, {
|
|
|
keepEmpty: true
|
|
|
});
|
|
|
const mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align;
|
|
|
const prefixCls = getPrefixCls('space', customizePrefixCls);
|
|
|
const [wrapSSR, hashId] = (0,space_style/* default */.Z)(prefixCls);
|
|
|
const cls = _classnames_2_5_1_classnames_default()(prefixCls, space === null || space === void 0 ? void 0 : space.className, hashId, `${prefixCls}-${direction}`, {
|
|
|
[`${prefixCls}-rtl`]: directionConfig === 'rtl',
|
|
|
[`${prefixCls}-align-${mergedAlign}`]: mergedAlign,
|
|
|
[`${prefixCls}-gap-row-${verticalSize}`]: isPresetVerticalSize,
|
|
|
[`${prefixCls}-gap-col-${horizontalSize}`]: isPresetHorizontalSize
|
|
|
}, className, rootClassName);
|
|
|
const itemClassName = _classnames_2_5_1_classnames_default()(`${prefixCls}-item`, (_a = customClassNames === null || customClassNames === void 0 ? void 0 : customClassNames.item) !== null && _a !== void 0 ? _a : (_b = space === null || space === void 0 ? void 0 : space.classNames) === null || _b === void 0 ? void 0 : _b.item);
|
|
|
// Calculate latest one
|
|
|
let latestIndex = 0;
|
|
|
const nodes = childNodes.map((child, i) => {
|
|
|
var _a, _b;
|
|
|
if (child !== null && child !== undefined) {
|
|
|
latestIndex = i;
|
|
|
}
|
|
|
const key = child && child.key || `${itemClassName}-${i}`;
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(space_Item, {
|
|
|
className: itemClassName,
|
|
|
key: key,
|
|
|
index: i,
|
|
|
split: split,
|
|
|
style: (_a = styles === null || styles === void 0 ? void 0 : styles.item) !== null && _a !== void 0 ? _a : (_b = space === null || space === void 0 ? void 0 : space.styles) === null || _b === void 0 ? void 0 : _b.item
|
|
|
}, child);
|
|
|
});
|
|
|
const spaceContext = _react_17_0_2_react.useMemo(() => ({
|
|
|
latestIndex
|
|
|
}), [latestIndex]);
|
|
|
// =========================== Render ===========================
|
|
|
if (childNodes.length === 0) {
|
|
|
return null;
|
|
|
}
|
|
|
const gapStyle = {};
|
|
|
if (wrap) {
|
|
|
gapStyle.flexWrap = 'wrap';
|
|
|
}
|
|
|
if (!isPresetHorizontalSize && isValidHorizontalSize) {
|
|
|
gapStyle.columnGap = horizontalSize;
|
|
|
}
|
|
|
if (!isPresetVerticalSize && isValidVerticalSize) {
|
|
|
gapStyle.rowGap = verticalSize;
|
|
|
}
|
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement("div", Object.assign({
|
|
|
ref: ref,
|
|
|
className: cls,
|
|
|
style: Object.assign(Object.assign(Object.assign({}, gapStyle), space === null || space === void 0 ? void 0 : space.style), style)
|
|
|
}, otherProps), /*#__PURE__*/_react_17_0_2_react.createElement(SpaceContextProvider, {
|
|
|
value: spaceContext
|
|
|
}, nodes)));
|
|
|
});
|
|
|
if (false) {}
|
|
|
const CompoundedSpace = Space;
|
|
|
CompoundedSpace.Compact = Compact/* default */.ZP;
|
|
|
/* harmony default export */ var space = (CompoundedSpace);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 22631:
|
|
|
/*!********************************************************************!*\
|
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/tree/index.js + 8 modules ***!
|
|
|
\********************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ tree; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_rc-tree@5.7.12@rc-tree/es/index.js + 7 modules
|
|
|
var es = __webpack_require__(13339);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.24.0@@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
|
|
|
var toConsumableArray = __webpack_require__(41411);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.1@@ant-design/icons/es/icons/FileOutlined.js + 1 modules
|
|
|
var FileOutlined = __webpack_require__(93561);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.1@@ant-design/icons/es/icons/FolderOpenOutlined.js + 1 modules
|
|
|
var FolderOpenOutlined = __webpack_require__(6222);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.24.0@@babel/runtime/helpers/esm/extends.js
|
|
|
var esm_extends = __webpack_require__(36384);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/FolderOutlined.js
|
|
|
// This icon file is generated automatically.
|
|
|
var FolderOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z" } }] }, "name": "folder", "theme": "outlined" };
|
|
|
/* harmony default export */ var asn_FolderOutlined = (FolderOutlined);
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
|
var AntdIcon = __webpack_require__(15436);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.3.1@@ant-design/icons/es/icons/FolderOutlined.js
|
|
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var FolderOutlined_FolderOutlined = function FolderOutlined(props, ref) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
|
ref: ref,
|
|
|
icon: asn_FolderOutlined
|
|
|
}));
|
|
|
};
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var icons_FolderOutlined = (/*#__PURE__*/_react_17_0_2_react.forwardRef(FolderOutlined_FolderOutlined));
|
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js
|
|
|
var _classnames_2_5_1_classnames = __webpack_require__(92310);
|
|
|
var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames);
|
|
|
// EXTERNAL MODULE: ./node_modules/_rc-tree@5.7.12@rc-tree/es/util.js
|
|
|
var util = __webpack_require__(35654);
|
|
|
// EXTERNAL MODULE: ./node_modules/_rc-tree@5.7.12@rc-tree/es/utils/treeUtil.js
|
|
|
var treeUtil = __webpack_require__(71430);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
|
|
|
var context = __webpack_require__(36355);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/HolderOutlined.js
|
|
|
// This icon file is generated automatically.
|
|
|
var HolderOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z" } }] }, "name": "holder", "theme": "outlined" };
|
|
|
/* harmony default export */ var asn_HolderOutlined = (HolderOutlined);
|
|
|
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.3.1@@ant-design/icons/es/icons/HolderOutlined.js
|
|
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var HolderOutlined_HolderOutlined = function HolderOutlined(props, ref) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
|
ref: ref,
|
|
|
icon: asn_HolderOutlined
|
|
|
}));
|
|
|
};
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var icons_HolderOutlined = (/*#__PURE__*/_react_17_0_2_react.forwardRef(HolderOutlined_HolderOutlined));
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/motion.js
|
|
|
var _util_motion = __webpack_require__(62892);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/style/index.js
|
|
|
var tree_style = __webpack_require__(20648);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/utils/dropIndicator.js
|
|
|
"use client";
|
|
|
|
|
|
|
|
|
const offset = 4;
|
|
|
function dropIndicatorRender(props) {
|
|
|
const {
|
|
|
dropPosition,
|
|
|
dropLevelOffset,
|
|
|
prefixCls,
|
|
|
indent,
|
|
|
direction = 'ltr'
|
|
|
} = props;
|
|
|
const startPosition = direction === 'ltr' ? 'left' : 'right';
|
|
|
const endPosition = direction === 'ltr' ? 'right' : 'left';
|
|
|
const style = {
|
|
|
[startPosition]: -dropLevelOffset * indent + offset,
|
|
|
[endPosition]: 0
|
|
|
};
|
|
|
switch (dropPosition) {
|
|
|
case -1:
|
|
|
style.top = -3;
|
|
|
break;
|
|
|
case 1:
|
|
|
style.bottom = -3;
|
|
|
break;
|
|
|
default:
|
|
|
// dropPosition === 0
|
|
|
style.bottom = -3;
|
|
|
style[startPosition] = indent + offset;
|
|
|
break;
|
|
|
}
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
|
style: style,
|
|
|
className: `${prefixCls}-drop-indicator`
|
|
|
});
|
|
|
}
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/utils/iconUtil.js + 2 modules
|
|
|
var iconUtil = __webpack_require__(80865);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/Tree.js
|
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const Tree = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
|
|
|
const {
|
|
|
getPrefixCls,
|
|
|
direction,
|
|
|
virtual,
|
|
|
tree
|
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
|
const {
|
|
|
prefixCls: customizePrefixCls,
|
|
|
className,
|
|
|
showIcon = false,
|
|
|
showLine,
|
|
|
switcherIcon,
|
|
|
blockNode = false,
|
|
|
children,
|
|
|
checkable = false,
|
|
|
selectable = true,
|
|
|
draggable,
|
|
|
motion: customMotion,
|
|
|
style
|
|
|
} = props;
|
|
|
const prefixCls = getPrefixCls('tree', customizePrefixCls);
|
|
|
const rootPrefixCls = getPrefixCls();
|
|
|
const motion = customMotion !== null && customMotion !== void 0 ? customMotion : Object.assign(Object.assign({}, (0,_util_motion/* default */.Z)(rootPrefixCls)), {
|
|
|
motionAppear: false
|
|
|
});
|
|
|
const newProps = Object.assign(Object.assign({}, props), {
|
|
|
checkable,
|
|
|
selectable,
|
|
|
showIcon,
|
|
|
motion,
|
|
|
blockNode,
|
|
|
showLine: Boolean(showLine),
|
|
|
dropIndicatorRender: dropIndicatorRender
|
|
|
});
|
|
|
const [wrapSSR, hashId] = (0,tree_style/* default */.ZP)(prefixCls);
|
|
|
const draggableConfig = _react_17_0_2_react.useMemo(() => {
|
|
|
if (!draggable) {
|
|
|
return false;
|
|
|
}
|
|
|
let mergedDraggable = {};
|
|
|
switch (typeof draggable) {
|
|
|
case 'function':
|
|
|
mergedDraggable.nodeDraggable = draggable;
|
|
|
break;
|
|
|
case 'object':
|
|
|
mergedDraggable = Object.assign({}, draggable);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
// Do nothing
|
|
|
}
|
|
|
|
|
|
if (mergedDraggable.icon !== false) {
|
|
|
mergedDraggable.icon = mergedDraggable.icon || /*#__PURE__*/_react_17_0_2_react.createElement(icons_HolderOutlined, null);
|
|
|
}
|
|
|
return mergedDraggable;
|
|
|
}, [draggable]);
|
|
|
const renderSwitcherIcon = nodeProps => /*#__PURE__*/_react_17_0_2_react.createElement(iconUtil/* default */.Z, {
|
|
|
prefixCls: prefixCls,
|
|
|
switcherIcon: switcherIcon,
|
|
|
treeNodeProps: nodeProps,
|
|
|
showLine: showLine
|
|
|
});
|
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement(es/* default */.Z, Object.assign({
|
|
|
itemHeight: 20,
|
|
|
ref: ref,
|
|
|
virtual: virtual
|
|
|
}, newProps, {
|
|
|
// newProps may contain style so declare style below it
|
|
|
style: Object.assign(Object.assign({}, tree === null || tree === void 0 ? void 0 : tree.style), style),
|
|
|
prefixCls: prefixCls,
|
|
|
className: _classnames_2_5_1_classnames_default()({
|
|
|
[`${prefixCls}-icon-hide`]: !showIcon,
|
|
|
[`${prefixCls}-block-node`]: blockNode,
|
|
|
[`${prefixCls}-unselectable`]: !selectable,
|
|
|
[`${prefixCls}-rtl`]: direction === 'rtl'
|
|
|
}, tree === null || tree === void 0 ? void 0 : tree.className, className, hashId),
|
|
|
direction: direction,
|
|
|
checkable: checkable ? /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
|
className: `${prefixCls}-checkbox-inner`
|
|
|
}) : checkable,
|
|
|
selectable: selectable,
|
|
|
switcherIcon: renderSwitcherIcon,
|
|
|
draggable: draggableConfig
|
|
|
}), children));
|
|
|
});
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var tree_Tree = (Tree);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/utils/dictUtil.js
|
|
|
|
|
|
var Record;
|
|
|
(function (Record) {
|
|
|
Record[Record["None"] = 0] = "None";
|
|
|
Record[Record["Start"] = 1] = "Start";
|
|
|
Record[Record["End"] = 2] = "End";
|
|
|
})(Record || (Record = {}));
|
|
|
function traverseNodesKey(treeData, callback) {
|
|
|
function processNode(dataNode) {
|
|
|
const {
|
|
|
key,
|
|
|
children
|
|
|
} = dataNode;
|
|
|
if (callback(key, dataNode) !== false) {
|
|
|
traverseNodesKey(children || [], callback);
|
|
|
}
|
|
|
}
|
|
|
treeData.forEach(processNode);
|
|
|
}
|
|
|
/** 计算选中范围,只考虑expanded情况以优化性能 */
|
|
|
function calcRangeKeys(_ref) {
|
|
|
let {
|
|
|
treeData,
|
|
|
expandedKeys,
|
|
|
startKey,
|
|
|
endKey
|
|
|
} = _ref;
|
|
|
const keys = [];
|
|
|
let record = Record.None;
|
|
|
if (startKey && startKey === endKey) {
|
|
|
return [startKey];
|
|
|
}
|
|
|
if (!startKey || !endKey) {
|
|
|
return [];
|
|
|
}
|
|
|
function matchKey(key) {
|
|
|
return key === startKey || key === endKey;
|
|
|
}
|
|
|
traverseNodesKey(treeData, key => {
|
|
|
if (record === Record.End) {
|
|
|
return false;
|
|
|
}
|
|
|
if (matchKey(key)) {
|
|
|
// Match test
|
|
|
keys.push(key);
|
|
|
if (record === Record.None) {
|
|
|
record = Record.Start;
|
|
|
} else if (record === Record.Start) {
|
|
|
record = Record.End;
|
|
|
return false;
|
|
|
}
|
|
|
} else if (record === Record.Start) {
|
|
|
// Append selection
|
|
|
keys.push(key);
|
|
|
}
|
|
|
return expandedKeys.includes(key);
|
|
|
});
|
|
|
return keys;
|
|
|
}
|
|
|
function convertDirectoryKeysToNodes(treeData, keys) {
|
|
|
const restKeys = (0,toConsumableArray/* default */.Z)(keys);
|
|
|
const nodes = [];
|
|
|
traverseNodesKey(treeData, (key, node) => {
|
|
|
const index = restKeys.indexOf(key);
|
|
|
if (index !== -1) {
|
|
|
nodes.push(node);
|
|
|
restKeys.splice(index, 1);
|
|
|
}
|
|
|
return !!restKeys.length;
|
|
|
});
|
|
|
return nodes;
|
|
|
}
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/DirectoryTree.js
|
|
|
"use client";
|
|
|
|
|
|
|
|
|
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
|
var t = {};
|
|
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
|
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
|
}
|
|
|
return t;
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getIcon(props) {
|
|
|
const {
|
|
|
isLeaf,
|
|
|
expanded
|
|
|
} = props;
|
|
|
if (isLeaf) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(FileOutlined/* default */.Z, null);
|
|
|
}
|
|
|
return expanded ? /*#__PURE__*/_react_17_0_2_react.createElement(FolderOpenOutlined/* default */.Z, null) : /*#__PURE__*/_react_17_0_2_react.createElement(icons_FolderOutlined, null);
|
|
|
}
|
|
|
function getTreeData(_ref) {
|
|
|
let {
|
|
|
treeData,
|
|
|
children
|
|
|
} = _ref;
|
|
|
return treeData || (0,treeUtil/* convertTreeToData */.zn)(children);
|
|
|
}
|
|
|
const DirectoryTree = (_a, ref) => {
|
|
|
var {
|
|
|
defaultExpandAll,
|
|
|
defaultExpandParent,
|
|
|
defaultExpandedKeys
|
|
|
} = _a,
|
|
|
props = __rest(_a, ["defaultExpandAll", "defaultExpandParent", "defaultExpandedKeys"]);
|
|
|
// Shift click usage
|
|
|
const lastSelectedKey = _react_17_0_2_react.useRef();
|
|
|
const cachedSelectedKeys = _react_17_0_2_react.useRef();
|
|
|
const getInitExpandedKeys = () => {
|
|
|
const {
|
|
|
keyEntities
|
|
|
} = (0,treeUtil/* convertDataToEntities */.I8)(getTreeData(props));
|
|
|
let initExpandedKeys;
|
|
|
// Expanded keys
|
|
|
if (defaultExpandAll) {
|
|
|
initExpandedKeys = Object.keys(keyEntities);
|
|
|
} else if (defaultExpandParent) {
|
|
|
initExpandedKeys = (0,util/* conductExpandParent */.r7)(props.expandedKeys || defaultExpandedKeys || [], keyEntities);
|
|
|
} else {
|
|
|
initExpandedKeys = props.expandedKeys || defaultExpandedKeys;
|
|
|
}
|
|
|
return initExpandedKeys;
|
|
|
};
|
|
|
const [selectedKeys, setSelectedKeys] = _react_17_0_2_react.useState(props.selectedKeys || props.defaultSelectedKeys || []);
|
|
|
const [expandedKeys, setExpandedKeys] = _react_17_0_2_react.useState(() => getInitExpandedKeys());
|
|
|
_react_17_0_2_react.useEffect(() => {
|
|
|
if ('selectedKeys' in props) {
|
|
|
setSelectedKeys(props.selectedKeys);
|
|
|
}
|
|
|
}, [props.selectedKeys]);
|
|
|
_react_17_0_2_react.useEffect(() => {
|
|
|
if ('expandedKeys' in props) {
|
|
|
setExpandedKeys(props.expandedKeys);
|
|
|
}
|
|
|
}, [props.expandedKeys]);
|
|
|
const onExpand = (keys, info) => {
|
|
|
var _a;
|
|
|
if (!('expandedKeys' in props)) {
|
|
|
setExpandedKeys(keys);
|
|
|
}
|
|
|
// Call origin function
|
|
|
return (_a = props.onExpand) === null || _a === void 0 ? void 0 : _a.call(props, keys, info);
|
|
|
};
|
|
|
const onSelect = (keys, event) => {
|
|
|
var _a;
|
|
|
const {
|
|
|
multiple
|
|
|
} = props;
|
|
|
const {
|
|
|
node,
|
|
|
nativeEvent
|
|
|
} = event;
|
|
|
const {
|
|
|
key = ''
|
|
|
} = node;
|
|
|
const treeData = getTreeData(props);
|
|
|
// const newState: DirectoryTreeState = {};
|
|
|
// We need wrap this event since some value is not same
|
|
|
const newEvent = Object.assign(Object.assign({}, event), {
|
|
|
selected: true
|
|
|
});
|
|
|
// Windows / Mac single pick
|
|
|
const ctrlPick = (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.ctrlKey) || (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.metaKey);
|
|
|
const shiftPick = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.shiftKey;
|
|
|
// Generate new selected keys
|
|
|
let newSelectedKeys;
|
|
|
if (multiple && ctrlPick) {
|
|
|
// Control click
|
|
|
newSelectedKeys = keys;
|
|
|
lastSelectedKey.current = key;
|
|
|
cachedSelectedKeys.current = newSelectedKeys;
|
|
|
newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);
|
|
|
} else if (multiple && shiftPick) {
|
|
|
// Shift click
|
|
|
newSelectedKeys = Array.from(new Set([].concat((0,toConsumableArray/* default */.Z)(cachedSelectedKeys.current || []), (0,toConsumableArray/* default */.Z)(calcRangeKeys({
|
|
|
treeData,
|
|
|
expandedKeys,
|
|
|
startKey: key,
|
|
|
endKey: lastSelectedKey.current
|
|
|
})))));
|
|
|
newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);
|
|
|
} else {
|
|
|
// Single click
|
|
|
newSelectedKeys = [key];
|
|
|
lastSelectedKey.current = key;
|
|
|
cachedSelectedKeys.current = newSelectedKeys;
|
|
|
newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);
|
|
|
}
|
|
|
(_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, newSelectedKeys, newEvent);
|
|
|
if (!('selectedKeys' in props)) {
|
|
|
setSelectedKeys(newSelectedKeys);
|
|
|
}
|
|
|
};
|
|
|
const {
|
|
|
getPrefixCls,
|
|
|
direction
|
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
|
const {
|
|
|
prefixCls: customizePrefixCls,
|
|
|
className,
|
|
|
showIcon = true,
|
|
|
expandAction = 'click'
|
|
|
} = props,
|
|
|
otherProps = __rest(props, ["prefixCls", "className", "showIcon", "expandAction"]);
|
|
|
const prefixCls = getPrefixCls('tree', customizePrefixCls);
|
|
|
const connectClassName = _classnames_2_5_1_classnames_default()(`${prefixCls}-directory`, {
|
|
|
[`${prefixCls}-directory-rtl`]: direction === 'rtl'
|
|
|
}, className);
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(tree_Tree, Object.assign({
|
|
|
icon: getIcon,
|
|
|
ref: ref,
|
|
|
blockNode: true
|
|
|
}, otherProps, {
|
|
|
showIcon: showIcon,
|
|
|
expandAction: expandAction,
|
|
|
prefixCls: prefixCls,
|
|
|
className: connectClassName,
|
|
|
expandedKeys: expandedKeys,
|
|
|
selectedKeys: selectedKeys,
|
|
|
onSelect: onSelect,
|
|
|
onExpand: onExpand
|
|
|
}));
|
|
|
};
|
|
|
const ForwardDirectoryTree = /*#__PURE__*/_react_17_0_2_react.forwardRef(DirectoryTree);
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var tree_DirectoryTree = (ForwardDirectoryTree);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/index.js
|
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const es_tree_Tree = tree_Tree;
|
|
|
es_tree_Tree.DirectoryTree = tree_DirectoryTree;
|
|
|
es_tree_Tree.TreeNode = es/* TreeNode */.O;
|
|
|
/* harmony default export */ var tree = (es_tree_Tree);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 51581:
|
|
|
/*!****************************************************************************************************!*\
|
|
|
!*** ./node_modules/_react-infinite-scroller@1.2.4@react-infinite-scroller/dist/InfiniteScroll.js ***!
|
|
|
\****************************************************************************************************/
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
|
Object.defineProperty(exports, "__esModule", ({
|
|
|
value: true
|
|
|
}));
|
|
|
|
|
|
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
|
|
|
|
var _react = __webpack_require__(/*! react */ 59301);
|
|
|
|
|
|
var _react2 = _interopRequireDefault(_react);
|
|
|
|
|
|
var _propTypes = __webpack_require__(/*! prop-types */ 12708);
|
|
|
|
|
|
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
|
|
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
|
|
|
|
|
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
|
|
|
|
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
|
|
|
|
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
|
|
|
|
|
var InfiniteScroll = function (_Component) {
|
|
|
_inherits(InfiniteScroll, _Component);
|
|
|
|
|
|
function InfiniteScroll(props) {
|
|
|
_classCallCheck(this, InfiniteScroll);
|
|
|
|
|
|
var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));
|
|
|
|
|
|
_this.scrollListener = _this.scrollListener.bind(_this);
|
|
|
_this.eventListenerOptions = _this.eventListenerOptions.bind(_this);
|
|
|
_this.mousewheelListener = _this.mousewheelListener.bind(_this);
|
|
|
return _this;
|
|
|
}
|
|
|
|
|
|
_createClass(InfiniteScroll, [{
|
|
|
key: 'componentDidMount',
|
|
|
value: function componentDidMount() {
|
|
|
this.pageLoaded = this.props.pageStart;
|
|
|
this.options = this.eventListenerOptions();
|
|
|
this.attachScrollListener();
|
|
|
}
|
|
|
}, {
|
|
|
key: 'componentDidUpdate',
|
|
|
value: function componentDidUpdate() {
|
|
|
if (this.props.isReverse && this.loadMore) {
|
|
|
var parentElement = this.getParentElement(this.scrollComponent);
|
|
|
parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;
|
|
|
this.loadMore = false;
|
|
|
}
|
|
|
this.attachScrollListener();
|
|
|
}
|
|
|
}, {
|
|
|
key: 'componentWillUnmount',
|
|
|
value: function componentWillUnmount() {
|
|
|
this.detachScrollListener();
|
|
|
this.detachMousewheelListener();
|
|
|
}
|
|
|
}, {
|
|
|
key: 'isPassiveSupported',
|
|
|
value: function isPassiveSupported() {
|
|
|
var passive = false;
|
|
|
|
|
|
var testOptions = {
|
|
|
get passive() {
|
|
|
passive = true;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
try {
|
|
|
document.addEventListener('test', null, testOptions);
|
|
|
document.removeEventListener('test', null, testOptions);
|
|
|
} catch (e) {
|
|
|
// ignore
|
|
|
}
|
|
|
return passive;
|
|
|
}
|
|
|
}, {
|
|
|
key: 'eventListenerOptions',
|
|
|
value: function eventListenerOptions() {
|
|
|
var options = this.props.useCapture;
|
|
|
|
|
|
if (this.isPassiveSupported()) {
|
|
|
options = {
|
|
|
useCapture: this.props.useCapture,
|
|
|
passive: true
|
|
|
};
|
|
|
}
|
|
|
return options;
|
|
|
}
|
|
|
|
|
|
// Set a defaut loader for all your `InfiniteScroll` components
|
|
|
|
|
|
}, {
|
|
|
key: 'setDefaultLoader',
|
|
|
value: function setDefaultLoader(loader) {
|
|
|
this.defaultLoader = loader;
|
|
|
}
|
|
|
}, {
|
|
|
key: 'detachMousewheelListener',
|
|
|
value: function detachMousewheelListener() {
|
|
|
var scrollEl = window;
|
|
|
if (this.props.useWindow === false) {
|
|
|
scrollEl = this.scrollComponent.parentNode;
|
|
|
}
|
|
|
|
|
|
scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
|
|
|
}
|
|
|
}, {
|
|
|
key: 'detachScrollListener',
|
|
|
value: function detachScrollListener() {
|
|
|
var scrollEl = window;
|
|
|
if (this.props.useWindow === false) {
|
|
|
scrollEl = this.getParentElement(this.scrollComponent);
|
|
|
}
|
|
|
|
|
|
scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
|
|
|
scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
|
|
|
}
|
|
|
}, {
|
|
|
key: 'getParentElement',
|
|
|
value: function getParentElement(el) {
|
|
|
var scrollParent = this.props.getScrollParent && this.props.getScrollParent();
|
|
|
if (scrollParent != null) {
|
|
|
return scrollParent;
|
|
|
}
|
|
|
return el && el.parentNode;
|
|
|
}
|
|
|
}, {
|
|
|
key: 'filterProps',
|
|
|
value: function filterProps(props) {
|
|
|
return props;
|
|
|
}
|
|
|
}, {
|
|
|
key: 'attachScrollListener',
|
|
|
value: function attachScrollListener() {
|
|
|
var parentElement = this.getParentElement(this.scrollComponent);
|
|
|
|
|
|
if (!this.props.hasMore || !parentElement) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var scrollEl = window;
|
|
|
if (this.props.useWindow === false) {
|
|
|
scrollEl = parentElement;
|
|
|
}
|
|
|
|
|
|
scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
|
|
|
scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
|
|
|
scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
|
|
|
|
|
|
if (this.props.initialLoad) {
|
|
|
this.scrollListener();
|
|
|
}
|
|
|
}
|
|
|
}, {
|
|
|
key: 'mousewheelListener',
|
|
|
value: function mousewheelListener(e) {
|
|
|
// Prevents Chrome hangups
|
|
|
// See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257
|
|
|
if (e.deltaY === 1 && !this.isPassiveSupported()) {
|
|
|
e.preventDefault();
|
|
|
}
|
|
|
}
|
|
|
}, {
|
|
|
key: 'scrollListener',
|
|
|
value: function scrollListener() {
|
|
|
var el = this.scrollComponent;
|
|
|
var scrollEl = window;
|
|
|
var parentNode = this.getParentElement(el);
|
|
|
|
|
|
var offset = void 0;
|
|
|
if (this.props.useWindow) {
|
|
|
var doc = document.documentElement || document.body.parentNode || document.body;
|
|
|
var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;
|
|
|
if (this.props.isReverse) {
|
|
|
offset = scrollTop;
|
|
|
} else {
|
|
|
offset = this.calculateOffset(el, scrollTop);
|
|
|
}
|
|
|
} else if (this.props.isReverse) {
|
|
|
offset = parentNode.scrollTop;
|
|
|
} else {
|
|
|
offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;
|
|
|
}
|
|
|
|
|
|
// Here we make sure the element is visible as well as checking the offset
|
|
|
if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {
|
|
|
this.detachScrollListener();
|
|
|
this.beforeScrollHeight = parentNode.scrollHeight;
|
|
|
this.beforeScrollTop = parentNode.scrollTop;
|
|
|
// Call loadMore after detachScrollListener to allow for non-async loadMore functions
|
|
|
if (typeof this.props.loadMore === 'function') {
|
|
|
this.props.loadMore(this.pageLoaded += 1);
|
|
|
this.loadMore = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}, {
|
|
|
key: 'calculateOffset',
|
|
|
value: function calculateOffset(el, scrollTop) {
|
|
|
if (!el) {
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);
|
|
|
}
|
|
|
}, {
|
|
|
key: 'calculateTopPosition',
|
|
|
value: function calculateTopPosition(el) {
|
|
|
if (!el) {
|
|
|
return 0;
|
|
|
}
|
|
|
return el.offsetTop + this.calculateTopPosition(el.offsetParent);
|
|
|
}
|
|
|
}, {
|
|
|
key: 'render',
|
|
|
value: function render() {
|
|
|
var _this2 = this;
|
|
|
|
|
|
var renderProps = this.filterProps(this.props);
|
|
|
|
|
|
var children = renderProps.children,
|
|
|
element = renderProps.element,
|
|
|
hasMore = renderProps.hasMore,
|
|
|
initialLoad = renderProps.initialLoad,
|
|
|
isReverse = renderProps.isReverse,
|
|
|
loader = renderProps.loader,
|
|
|
loadMore = renderProps.loadMore,
|
|
|
pageStart = renderProps.pageStart,
|
|
|
ref = renderProps.ref,
|
|
|
threshold = renderProps.threshold,
|
|
|
useCapture = renderProps.useCapture,
|
|
|
useWindow = renderProps.useWindow,
|
|
|
getScrollParent = renderProps.getScrollParent,
|
|
|
props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);
|
|
|
|
|
|
props.ref = function (node) {
|
|
|
_this2.scrollComponent = node;
|
|
|
if (ref) {
|
|
|
ref(node);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
var childrenArray = [children];
|
|
|
if (hasMore) {
|
|
|
if (loader) {
|
|
|
isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);
|
|
|
} else if (this.defaultLoader) {
|
|
|
isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);
|
|
|
}
|
|
|
}
|
|
|
return _react2.default.createElement(element, props, childrenArray);
|
|
|
}
|
|
|
}]);
|
|
|
|
|
|
return InfiniteScroll;
|
|
|
}(_react.Component);
|
|
|
|
|
|
InfiniteScroll.propTypes = {
|
|
|
children: _propTypes2.default.node.isRequired,
|
|
|
element: _propTypes2.default.node,
|
|
|
hasMore: _propTypes2.default.bool,
|
|
|
initialLoad: _propTypes2.default.bool,
|
|
|
isReverse: _propTypes2.default.bool,
|
|
|
loader: _propTypes2.default.node,
|
|
|
loadMore: _propTypes2.default.func.isRequired,
|
|
|
pageStart: _propTypes2.default.number,
|
|
|
ref: _propTypes2.default.func,
|
|
|
getScrollParent: _propTypes2.default.func,
|
|
|
threshold: _propTypes2.default.number,
|
|
|
useCapture: _propTypes2.default.bool,
|
|
|
useWindow: _propTypes2.default.bool
|
|
|
};
|
|
|
InfiniteScroll.defaultProps = {
|
|
|
element: 'div',
|
|
|
hasMore: false,
|
|
|
initialLoad: true,
|
|
|
pageStart: 0,
|
|
|
ref: null,
|
|
|
threshold: 250,
|
|
|
useWindow: true,
|
|
|
isReverse: false,
|
|
|
useCapture: false,
|
|
|
loader: null,
|
|
|
getScrollParent: null
|
|
|
};
|
|
|
exports["default"] = InfiniteScroll;
|
|
|
module.exports = exports['default'];
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 26724:
|
|
|
/*!**************************************************************************************!*\
|
|
|
!*** ./node_modules/_react-infinite-scroller@1.2.4@react-infinite-scroller/index.js ***!
|
|
|
\**************************************************************************************/
|
|
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
|
|
module.exports = __webpack_require__(/*! ./dist/InfiniteScroll */ 51581)
|
|
|
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
}]); |