(self["webpackChunk"] = self["webpackChunk"] || []).push([[67578],{ /***/ 95604: /*!*******************************************************************************************!*\ !*** ./node_modules/@ant-design/icons/es/icons/DeliveredProcedureOutlined.js + 1 modules ***! \*******************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { "Z": function() { return /* binding */ icons_DeliveredProcedureOutlined; } }); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js var esm_extends = __webpack_require__(87462); // EXTERNAL MODULE: ./node_modules/react/index.js var react = __webpack_require__(67294); ;// CONCATENATED MODULE: ./node_modules/@ant-design/icons-svg/es/asn/DeliveredProcedureOutlined.js // This icon file is generated automatically. var DeliveredProcedureOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "defs", "attrs": {}, "children": [{ "tag": "style", "attrs": {} }] }, { "tag": "path", "attrs": { "d": "M632 698.3l141.9-112a8 8 0 000-12.6L632 461.7c-5.3-4.2-13-.4-13 6.3v76H295c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h324v76c0 6.7 7.8 10.4 13 6.3zm261.3-405L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v278c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V422c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-83.5c0-17-6.7-33.2-18.7-45.2zM640 288H384V184h256v104zm264 436h-56c-4.4 0-8 3.6-8 8v108H184V732c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v148c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V732c0-4.4-3.6-8-8-8z" } }] }, "name": "delivered-procedure", "theme": "outlined" }; /* harmony default export */ var asn_DeliveredProcedureOutlined = (DeliveredProcedureOutlined); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/components/AntdIcon.js + 8 modules var AntdIcon = __webpack_require__(74643); ;// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/icons/DeliveredProcedureOutlined.js // GENERATE BY ./scripts/generate.ts // DON NOT EDIT IT MANUALLY var DeliveredProcedureOutlined_DeliveredProcedureOutlined = function DeliveredProcedureOutlined(props, ref) { return /*#__PURE__*/react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, { ref: ref, icon: asn_DeliveredProcedureOutlined })); }; if (false) {} /* harmony default export */ var icons_DeliveredProcedureOutlined = (/*#__PURE__*/react.forwardRef(DeliveredProcedureOutlined_DeliveredProcedureOutlined)); /***/ }), /***/ 64789: /*!***********************************************************************************!*\ !*** ./node_modules/@ant-design/icons/es/icons/PlusCircleOutlined.js + 1 modules ***! \***********************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { "Z": function() { return /* binding */ icons_PlusCircleOutlined; } }); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js var esm_extends = __webpack_require__(87462); // EXTERNAL MODULE: ./node_modules/react/index.js var react = __webpack_require__(67294); ;// CONCATENATED MODULE: ./node_modules/@ant-design/icons-svg/es/asn/PlusCircleOutlined.js // This icon file is generated automatically. var PlusCircleOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" } }, { "tag": "path", "attrs": { "d": "M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" } }] }, "name": "plus-circle", "theme": "outlined" }; /* harmony default export */ var asn_PlusCircleOutlined = (PlusCircleOutlined); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/components/AntdIcon.js + 8 modules var AntdIcon = __webpack_require__(74643); ;// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/icons/PlusCircleOutlined.js // GENERATE BY ./scripts/generate.ts // DON NOT EDIT IT MANUALLY var PlusCircleOutlined_PlusCircleOutlined = function PlusCircleOutlined(props, ref) { return /*#__PURE__*/react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, { ref: ref, icon: asn_PlusCircleOutlined })); }; if (false) {} /* harmony default export */ var icons_PlusCircleOutlined = (/*#__PURE__*/react.forwardRef(PlusCircleOutlined_PlusCircleOutlined)); /***/ }), /***/ 38925: /*!*********************************************************!*\ !*** ./node_modules/antd/es/alert/index.js + 3 modules ***! \*********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { "Z": function() { return /* binding */ es_alert; } }); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js + 1 modules var CheckCircleFilled = __webpack_require__(89739); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js + 1 modules var CloseCircleFilled = __webpack_require__(4340); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/CloseOutlined.js + 1 modules var CloseOutlined = __webpack_require__(97937); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js + 1 modules var ExclamationCircleFilled = __webpack_require__(21640); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js + 1 modules var InfoCircleFilled = __webpack_require__(78860); // EXTERNAL MODULE: ./node_modules/classnames/index.js var classnames = __webpack_require__(94184); var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); // EXTERNAL MODULE: ./node_modules/antd/node_modules/rc-motion/es/index.js + 18 modules var es = __webpack_require__(38379); // EXTERNAL MODULE: ./node_modules/antd/node_modules/rc-util/es/pickAttrs.js var pickAttrs = __webpack_require__(1337); // EXTERNAL MODULE: ./node_modules/react/index.js var react = __webpack_require__(67294); // EXTERNAL MODULE: ./node_modules/antd/es/_util/reactNode.js var reactNode = __webpack_require__(96159); // EXTERNAL MODULE: ./node_modules/antd/es/config-provider/context.js var context = __webpack_require__(53124); // EXTERNAL MODULE: ./node_modules/antd/es/style/index.js var style = __webpack_require__(14747); // EXTERNAL MODULE: ./node_modules/antd/es/theme/util/genComponentStyleHook.js var genComponentStyleHook = __webpack_require__(67968); // EXTERNAL MODULE: ./node_modules/antd/es/theme/util/statistic.js var statistic = __webpack_require__(45503); ;// CONCATENATED MODULE: ./node_modules/antd/es/alert/style/index.js const genAlertTypeStyle = (bgColor, borderColor, iconColor, token, alertCls) => ({ backgroundColor: bgColor, border: `${token.lineWidth}px ${token.lineType} ${borderColor}`, [`${alertCls}-icon`]: { color: iconColor } }); const genBaseStyle = token => { const { componentCls, motionDurationSlow: duration, marginXS, marginSM, fontSize, fontSizeLG, lineHeight, borderRadiusLG: borderRadius, motionEaseInOutCirc, alertIconSizeLG, colorText, paddingContentVerticalSM, alertPaddingHorizontal, paddingMD, paddingContentHorizontalLG, colorTextHeading } = token; return { [componentCls]: Object.assign(Object.assign({}, (0,style/* resetComponent */.Wf)(token)), { position: 'relative', display: 'flex', alignItems: 'center', padding: `${paddingContentVerticalSM}px ${alertPaddingHorizontal}px`, wordWrap: 'break-word', borderRadius, [`&${componentCls}-rtl`]: { direction: 'rtl' }, [`${componentCls}-content`]: { flex: 1, minWidth: 0 }, [`${componentCls}-icon`]: { marginInlineEnd: marginXS, lineHeight: 0 }, [`&-description`]: { display: 'none', fontSize, lineHeight }, '&-message': { color: colorText }, [`&${componentCls}-motion-leave`]: { overflow: 'hidden', opacity: 1, transition: `max-height ${duration} ${motionEaseInOutCirc}, opacity ${duration} ${motionEaseInOutCirc}, padding-top ${duration} ${motionEaseInOutCirc}, padding-bottom ${duration} ${motionEaseInOutCirc}, margin-bottom ${duration} ${motionEaseInOutCirc}` }, [`&${componentCls}-motion-leave-active`]: { maxHeight: 0, marginBottom: '0 !important', paddingTop: 0, paddingBottom: 0, opacity: 0 } }), [`${componentCls}-with-description`]: { alignItems: 'flex-start', paddingInline: paddingContentHorizontalLG, paddingBlock: paddingMD, [`${componentCls}-icon`]: { marginInlineEnd: marginSM, fontSize: alertIconSizeLG, lineHeight: 0 }, [`${componentCls}-message`]: { display: 'block', marginBottom: marginXS, color: colorTextHeading, fontSize: fontSizeLG }, [`${componentCls}-description`]: { display: 'block' } }, [`${componentCls}-banner`]: { marginBottom: 0, border: '0 !important', borderRadius: 0 } }; }; const genTypeStyle = token => { const { componentCls, colorSuccess, colorSuccessBorder, colorSuccessBg, colorWarning, colorWarningBorder, colorWarningBg, colorError, colorErrorBorder, colorErrorBg, colorInfo, colorInfoBorder, colorInfoBg } = token; return { [componentCls]: { '&-success': genAlertTypeStyle(colorSuccessBg, colorSuccessBorder, colorSuccess, token, componentCls), '&-info': genAlertTypeStyle(colorInfoBg, colorInfoBorder, colorInfo, token, componentCls), '&-warning': genAlertTypeStyle(colorWarningBg, colorWarningBorder, colorWarning, token, componentCls), '&-error': Object.assign(Object.assign({}, genAlertTypeStyle(colorErrorBg, colorErrorBorder, colorError, token, componentCls)), { [`${componentCls}-description > pre`]: { margin: 0, padding: 0 } }) } }; }; const genActionStyle = token => { const { componentCls, iconCls, motionDurationMid, marginXS, fontSizeIcon, colorIcon, colorIconHover } = token; return { [componentCls]: { [`&-action`]: { marginInlineStart: marginXS }, [`${componentCls}-close-icon`]: { marginInlineStart: marginXS, padding: 0, overflow: 'hidden', fontSize: fontSizeIcon, lineHeight: `${fontSizeIcon}px`, backgroundColor: 'transparent', border: 'none', outline: 'none', cursor: 'pointer', [`${iconCls}-close`]: { color: colorIcon, transition: `color ${motionDurationMid}`, '&:hover': { color: colorIconHover } } }, '&-close-text': { color: colorIcon, transition: `color ${motionDurationMid}`, '&:hover': { color: colorIconHover } } } }; }; const genAlertStyle = token => [genBaseStyle(token), genTypeStyle(token), genActionStyle(token)]; /* harmony default export */ var alert_style = ((0,genComponentStyleHook/* default */.Z)('Alert', token => { const { fontSizeHeading3 } = token; const alertToken = (0,statistic/* merge */.TS)(token, { alertIconSizeLG: fontSizeHeading3, alertPaddingHorizontal: 12 // Fixed value here. }); return [genAlertStyle(alertToken)]; })); ;// CONCATENATED MODULE: ./node_modules/antd/es/alert/Alert.js 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; }; // CSSINJS const iconMapFilled = { success: CheckCircleFilled/* default */.Z, info: InfoCircleFilled/* default */.Z, error: CloseCircleFilled/* default */.Z, warning: ExclamationCircleFilled/* default */.Z }; const IconNode = props => { const { icon, prefixCls, type } = props; const iconType = iconMapFilled[type] || null; if (icon) { return (0,reactNode/* replaceElement */.wm)(icon, /*#__PURE__*/react.createElement("span", { className: `${prefixCls}-icon` }, icon), () => ({ className: classnames_default()(`${prefixCls}-icon`, { [icon.props.className]: icon.props.className }) })); } return /*#__PURE__*/react.createElement(iconType, { className: `${prefixCls}-icon` }); }; const CloseIcon = props => { const { isClosable, prefixCls, closeIcon, handleClose } = props; const mergedCloseIcon = closeIcon === true || closeIcon === undefined ? /*#__PURE__*/react.createElement(CloseOutlined/* default */.Z, null) : closeIcon; return isClosable ? /*#__PURE__*/react.createElement("button", { type: "button", onClick: handleClose, className: `${prefixCls}-close-icon`, tabIndex: 0 }, mergedCloseIcon) : null; }; const Alert = props => { const { description, prefixCls: customizePrefixCls, message, banner, className, rootClassName, style, onMouseEnter, onMouseLeave, onClick, afterClose, showIcon, closable, closeText, closeIcon, action } = props, otherProps = __rest(props, ["description", "prefixCls", "message", "banner", "className", "rootClassName", "style", "onMouseEnter", "onMouseLeave", "onClick", "afterClose", "showIcon", "closable", "closeText", "closeIcon", "action"]); const [closed, setClosed] = react.useState(false); if (false) {} const ref = react.useRef(null); const { getPrefixCls, direction, alert } = react.useContext(context/* ConfigContext */.E_); const prefixCls = getPrefixCls('alert', customizePrefixCls); const [wrapSSR, hashId] = alert_style(prefixCls); const handleClose = e => { var _a; setClosed(true); (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props, e); }; const type = react.useMemo(() => { if (props.type !== undefined) { return props.type; } // banner mode defaults to 'warning' return banner ? 'warning' : 'info'; }, [props.type, banner]); // closeable when closeText or closeIcon is assigned const isClosable = react.useMemo(() => { if (closeText) { return true; } if (typeof closable === 'boolean') { return closable; } // should be true when closeIcon is 0 or '' return closeIcon !== false && closeIcon !== null && closeIcon !== undefined; }, [closeText, closeIcon, closable]); // banner mode defaults to Icon const isShowIcon = banner && showIcon === undefined ? true : showIcon; const alertCls = classnames_default()(prefixCls, `${prefixCls}-${type}`, { [`${prefixCls}-with-description`]: !!description, [`${prefixCls}-no-icon`]: !isShowIcon, [`${prefixCls}-banner`]: !!banner, [`${prefixCls}-rtl`]: direction === 'rtl' }, alert === null || alert === void 0 ? void 0 : alert.className, className, rootClassName, hashId); const restProps = (0,pickAttrs/* default */.Z)(otherProps, { aria: true, data: true }); return wrapSSR( /*#__PURE__*/react.createElement(es["default"], { visible: !closed, motionName: `${prefixCls}-motion`, motionAppear: false, motionEnter: false, onLeaveStart: node => ({ maxHeight: node.offsetHeight }), onLeaveEnd: afterClose }, _ref => { let { className: motionClassName, style: motionStyle } = _ref; return /*#__PURE__*/react.createElement("div", Object.assign({ ref: ref, "data-show": !closed, className: classnames_default()(alertCls, motionClassName), style: Object.assign(Object.assign(Object.assign({}, alert === null || alert === void 0 ? void 0 : alert.style), style), motionStyle), onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onClick: onClick, role: "alert" }, restProps), isShowIcon ? /*#__PURE__*/react.createElement(IconNode, { description: description, icon: props.icon, prefixCls: prefixCls, type: type }) : null, /*#__PURE__*/react.createElement("div", { className: `${prefixCls}-content` }, message ? /*#__PURE__*/react.createElement("div", { className: `${prefixCls}-message` }, message) : null, description ? /*#__PURE__*/react.createElement("div", { className: `${prefixCls}-description` }, description) : null), action ? /*#__PURE__*/react.createElement("div", { className: `${prefixCls}-action` }, action) : null, /*#__PURE__*/react.createElement(CloseIcon, { isClosable: isClosable, prefixCls: prefixCls, closeIcon: closeText || closeIcon, handleClose: handleClose })); })); }; if (false) {} /* harmony default export */ var alert_Alert = (Alert); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js var classCallCheck = __webpack_require__(15671); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js var createClass = __webpack_require__(43144); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js var inherits = __webpack_require__(60136); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createSuper.js + 1 modules var createSuper = __webpack_require__(51630); ;// CONCATENATED MODULE: ./node_modules/antd/es/alert/ErrorBoundary.js let ErrorBoundary = /*#__PURE__*/function (_React$Component) { (0,inherits/* default */.Z)(ErrorBoundary, _React$Component); var _super = (0,createSuper/* default */.Z)(ErrorBoundary); function ErrorBoundary() { var _this; (0,classCallCheck/* default */.Z)(this, ErrorBoundary); _this = _super.apply(this, arguments); _this.state = { error: undefined, info: { componentStack: '' } }; return _this; } (0,createClass/* default */.Z)(ErrorBoundary, [{ key: "componentDidCatch", value: function componentDidCatch(error, info) { this.setState({ error, info }); } }, { key: "render", value: function render() { const { message, description, children } = this.props; const { error, info } = this.state; const componentStack = info && info.componentStack ? info.componentStack : null; const errorMessage = typeof message === 'undefined' ? (error || '').toString() : message; const errorDescription = typeof description === 'undefined' ? componentStack : description; if (error) { return /*#__PURE__*/react.createElement(alert_Alert, { type: "error", message: errorMessage, description: /*#__PURE__*/react.createElement("pre", { style: { fontSize: '0.9em', overflowX: 'auto' } }, errorDescription) }); } return children; } }]); return ErrorBoundary; }(react.Component); /* harmony default export */ var alert_ErrorBoundary = (ErrorBoundary); ;// CONCATENATED MODULE: ./node_modules/antd/es/alert/index.js 'use client'; const es_alert_Alert = alert_Alert; es_alert_Alert.ErrorBoundary = alert_ErrorBoundary; /* harmony default export */ var es_alert = (es_alert_Alert); /***/ }), /***/ 57761: /*!*********************************************************************!*\ !*** ./node_modules/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 */ 67294); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(/*! prop-types */ 45697); 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']; /***/ }), /***/ 246: /*!*******************************************************!*\ !*** ./node_modules/react-infinite-scroller/index.js ***! \*******************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { module.exports = __webpack_require__(/*! ./dist/InfiniteScroll */ 57761) /***/ }) }]);