(self["webpackChunk"] = self["webpackChunk"] || []).push([[7936],{ /***/ 82234: /*!**********************************************************************************************************!*\ !*** ./node_modules/_@ant-design_icons@5.5.1@@ant-design/icons/es/icons/DownloadOutlined.js + 1 modules ***! \**********************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: function() { return /* binding */ icons_DownloadOutlined; } }); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.26.0@@babel/runtime/helpers/esm/extends.js var esm_extends = __webpack_require__(5891); // 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/DownloadOutlined.js // This icon file is generated automatically. var DownloadOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z" } }] }, "name": "download", "theme": "outlined" }; /* harmony default export */ var asn_DownloadOutlined = (DownloadOutlined); // EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.5.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules var AntdIcon = __webpack_require__(22589); ;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.5.1@@ant-design/icons/es/icons/DownloadOutlined.js // GENERATE BY ./scripts/generate.ts // DON NOT EDIT IT MANUALLY var DownloadOutlined_DownloadOutlined = function DownloadOutlined(props, ref) { return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, { ref: ref, icon: asn_DownloadOutlined })); }; /**![download](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUwNS43IDY2MWE4IDggMCAwMDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc0LjFWMTY4YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYzMzguM0g0MDBjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDExMiAxNDEuOHpNODc4IDYyNmgtNjBjLTQuNCAwLTggMy42LTggOHYxNTRIMjE0VjYzNGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MTk4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY4NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2MzRjMC00LjQtMy42LTgtOC04eiIgLz48L3N2Zz4=) */ var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(DownloadOutlined_DownloadOutlined); if (false) {} /* harmony default export */ var icons_DownloadOutlined = (RefIcon); /***/ }), /***/ 28103: /*!***********************************************************************!*\ !*** ./node_modules/_antd@5.9.0@antd/es/divider/index.js + 1 modules ***! \***********************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: function() { return /* binding */ divider; } }); // 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/_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/style/index.js var style = __webpack_require__(17313); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/genComponentStyleHook.js var genComponentStyleHook = __webpack_require__(83116); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/statistic.js var statistic = __webpack_require__(37613); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/divider/style/index.js // ============================== Shared ============================== const genSharedDividerStyle = token => { const { componentCls, sizePaddingEdgeHorizontal, colorSplit, lineWidth, textPaddingInline, orientationMargin, verticalMarginInline } = token; return { [componentCls]: Object.assign(Object.assign({}, (0,style/* resetComponent */.Wf)(token)), { borderBlockStart: `${lineWidth}px solid ${colorSplit}`, // vertical '&-vertical': { position: 'relative', top: '-0.06em', display: 'inline-block', height: '0.9em', marginInline: verticalMarginInline, marginBlock: 0, verticalAlign: 'middle', borderTop: 0, borderInlineStart: `${lineWidth}px solid ${colorSplit}` }, '&-horizontal': { display: 'flex', clear: 'both', width: '100%', minWidth: '100%', margin: `${token.dividerHorizontalGutterMargin}px 0` }, [`&-horizontal${componentCls}-with-text`]: { display: 'flex', alignItems: 'center', margin: `${token.dividerHorizontalWithTextGutterMargin}px 0`, color: token.colorTextHeading, fontWeight: 500, fontSize: token.fontSizeLG, whiteSpace: 'nowrap', textAlign: 'center', borderBlockStart: `0 ${colorSplit}`, '&::before, &::after': { position: 'relative', width: '50%', borderBlockStart: `${lineWidth}px solid transparent`, // Chrome not accept `inherit` in `border-top` borderBlockStartColor: 'inherit', borderBlockEnd: 0, transform: 'translateY(50%)', content: "''" } }, [`&-horizontal${componentCls}-with-text-left`]: { '&::before': { width: `${orientationMargin * 100}%` }, '&::after': { width: `${100 - orientationMargin * 100}%` } }, [`&-horizontal${componentCls}-with-text-right`]: { '&::before': { width: `${100 - orientationMargin * 100}%` }, '&::after': { width: `${orientationMargin * 100}%` } }, [`${componentCls}-inner-text`]: { display: 'inline-block', paddingBlock: 0, paddingInline: textPaddingInline }, '&-dashed': { background: 'none', borderColor: colorSplit, borderStyle: 'dashed', borderWidth: `${lineWidth}px 0 0` }, [`&-horizontal${componentCls}-with-text${componentCls}-dashed`]: { '&::before, &::after': { borderStyle: 'dashed none none' } }, [`&-vertical${componentCls}-dashed`]: { borderInlineStartWidth: lineWidth, borderInlineEnd: 0, borderBlockStart: 0, borderBlockEnd: 0 }, [`&-plain${componentCls}-with-text`]: { color: token.colorText, fontWeight: 'normal', fontSize: token.fontSize }, [`&-horizontal${componentCls}-with-text-left${componentCls}-no-default-orientation-margin-left`]: { '&::before': { width: 0 }, '&::after': { width: '100%' }, [`${componentCls}-inner-text`]: { paddingInlineStart: sizePaddingEdgeHorizontal } }, [`&-horizontal${componentCls}-with-text-right${componentCls}-no-default-orientation-margin-right`]: { '&::before': { width: '100%' }, '&::after': { width: 0 }, [`${componentCls}-inner-text`]: { paddingInlineEnd: sizePaddingEdgeHorizontal } } }) }; }; // ============================== Export ============================== /* harmony default export */ var divider_style = ((0,genComponentStyleHook/* default */.Z)('Divider', token => { const dividerToken = (0,statistic/* merge */.TS)(token, { dividerHorizontalWithTextGutterMargin: token.margin, dividerHorizontalGutterMargin: token.marginLG, sizePaddingEdgeHorizontal: 0 }); return [genSharedDividerStyle(dividerToken)]; }, token => ({ textPaddingInline: '1em', orientationMargin: 0.05, verticalMarginInline: token.marginXS }))); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/divider/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 Divider = props => { const { getPrefixCls, direction, divider } = _react_17_0_2_react.useContext(context/* ConfigContext */.E_); const { prefixCls: customizePrefixCls, type = 'horizontal', orientation = 'center', orientationMargin, className, rootClassName, children, dashed, plain, style } = props, restProps = __rest(props, ["prefixCls", "type", "orientation", "orientationMargin", "className", "rootClassName", "children", "dashed", "plain", "style"]); const prefixCls = getPrefixCls('divider', customizePrefixCls); const [wrapSSR, hashId] = divider_style(prefixCls); const orientationPrefix = orientation.length > 0 ? `-${orientation}` : orientation; const hasChildren = !!children; const hasCustomMarginLeft = orientation === 'left' && orientationMargin != null; const hasCustomMarginRight = orientation === 'right' && orientationMargin != null; const classString = _classnames_2_5_1_classnames_default()(prefixCls, divider === null || divider === void 0 ? void 0 : divider.className, hashId, `${prefixCls}-${type}`, { [`${prefixCls}-with-text`]: hasChildren, [`${prefixCls}-with-text${orientationPrefix}`]: hasChildren, [`${prefixCls}-dashed`]: !!dashed, [`${prefixCls}-plain`]: !!plain, [`${prefixCls}-rtl`]: direction === 'rtl', [`${prefixCls}-no-default-orientation-margin-left`]: hasCustomMarginLeft, [`${prefixCls}-no-default-orientation-margin-right`]: hasCustomMarginRight }, className, rootClassName); const memoizedOrientationMargin = _react_17_0_2_react.useMemo(() => { if (typeof orientationMargin === 'number') { return orientationMargin; } if (/^\d+$/.test(orientationMargin)) { return Number(orientationMargin); } return orientationMargin; }, [orientationMargin]); const innerStyle = Object.assign(Object.assign({}, hasCustomMarginLeft && { marginLeft: memoizedOrientationMargin }), hasCustomMarginRight && { marginRight: memoizedOrientationMargin }); // Warning children not work in vertical mode if (false) {} return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement("div", Object.assign({ className: classString, style: Object.assign(Object.assign({}, divider === null || divider === void 0 ? void 0 : divider.style), style) }, restProps, { role: "separator" }), children && type !== 'vertical' && /*#__PURE__*/_react_17_0_2_react.createElement("span", { className: `${prefixCls}-inner-text`, style: innerStyle }, children))); }; if (false) {} /* harmony default export */ var divider = (Divider); /***/ }), /***/ 24334: /*!***********************************************************!*\ !*** ./node_modules/_js-base64@2.6.4@js-base64/base64.js ***! \***********************************************************/ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* * base64.js * * Licensed under the BSD 3-Clause License. * http://opensource.org/licenses/BSD-3-Clause * * References: * http://en.wikipedia.org/wiki/Base64 */ ;(function (global, factory) { true ? module.exports = factory(global) : 0 }(( typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : this ), function(global) { 'use strict'; // existing version for noConflict() global = global || {}; var _Base64 = global.Base64; var version = "2.6.4"; // constants var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; var b64tab = function(bin) { var t = {}; for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i; return t; }(b64chars); var fromCharCode = String.fromCharCode; // encoder stuff var cb_utob = function(c) { if (c.length < 2) { var cc = c.charCodeAt(0); return cc < 0x80 ? c : cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6)) + fromCharCode(0x80 | (cc & 0x3f))) : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) + fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) + fromCharCode(0x80 | ( cc & 0x3f))); } else { var cc = 0x10000 + (c.charCodeAt(0) - 0xD800) * 0x400 + (c.charCodeAt(1) - 0xDC00); return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07)) + fromCharCode(0x80 | ((cc >>> 12) & 0x3f)) + fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) + fromCharCode(0x80 | ( cc & 0x3f))); } }; var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g; var utob = function(u) { return u.replace(re_utob, cb_utob); }; var cb_encode = function(ccc) { var padlen = [0, 2, 1][ccc.length % 3], ord = ccc.charCodeAt(0) << 16 | ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) | ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)), chars = [ b64chars.charAt( ord >>> 18), b64chars.charAt((ord >>> 12) & 63), padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63), padlen >= 1 ? '=' : b64chars.charAt(ord & 63) ]; return chars.join(''); }; var btoa = global.btoa && typeof global.btoa == 'function' ? function(b){ return global.btoa(b) } : function(b) { if (b.match(/[^\x00-\xFF]/)) throw new RangeError( 'The string contains invalid characters.' ); return b.replace(/[\s\S]{1,3}/g, cb_encode); }; var _encode = function(u) { return btoa(utob(String(u))); }; var mkUriSafe = function (b64) { return b64.replace(/[+\/]/g, function(m0) { return m0 == '+' ? '-' : '_'; }).replace(/=/g, ''); }; var encode = function(u, urisafe) { return urisafe ? mkUriSafe(_encode(u)) : _encode(u); }; var encodeURI = function(u) { return encode(u, true) }; var fromUint8Array; if (global.Uint8Array) fromUint8Array = function(a, urisafe) { // return btoa(fromCharCode.apply(null, a)); var b64 = ''; for (var i = 0, l = a.length; i < l; i += 3) { var a0 = a[i], a1 = a[i+1], a2 = a[i+2]; var ord = a0 << 16 | a1 << 8 | a2; b64 += b64chars.charAt( ord >>> 18) + b64chars.charAt((ord >>> 12) & 63) + ( typeof a1 != 'undefined' ? b64chars.charAt((ord >>> 6) & 63) : '=') + ( typeof a2 != 'undefined' ? b64chars.charAt( ord & 63) : '='); } return urisafe ? mkUriSafe(b64) : b64; }; // decoder stuff var re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g; var cb_btou = function(cccc) { switch(cccc.length) { case 4: var cp = ((0x07 & cccc.charCodeAt(0)) << 18) | ((0x3f & cccc.charCodeAt(1)) << 12) | ((0x3f & cccc.charCodeAt(2)) << 6) | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000; return (fromCharCode((offset >>> 10) + 0xD800) + fromCharCode((offset & 0x3FF) + 0xDC00)); case 3: return fromCharCode( ((0x0f & cccc.charCodeAt(0)) << 12) | ((0x3f & cccc.charCodeAt(1)) << 6) | (0x3f & cccc.charCodeAt(2)) ); default: return fromCharCode( ((0x1f & cccc.charCodeAt(0)) << 6) | (0x3f & cccc.charCodeAt(1)) ); } }; var btou = function(b) { return b.replace(re_btou, cb_btou); }; var cb_decode = function(cccc) { var len = cccc.length, padlen = len % 4, n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0) | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0) | (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0) | (len > 3 ? b64tab[cccc.charAt(3)] : 0), chars = [ fromCharCode( n >>> 16), fromCharCode((n >>> 8) & 0xff), fromCharCode( n & 0xff) ]; chars.length -= [0, 0, 2, 1][padlen]; return chars.join(''); }; var _atob = global.atob && typeof global.atob == 'function' ? function(a){ return global.atob(a) } : function(a){ return a.replace(/\S{1,4}/g, cb_decode); }; var atob = function(a) { return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g, '')); }; var _decode = function(a) { return btou(_atob(a)) }; var _fromURI = function(a) { return String(a).replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' }).replace(/[^A-Za-z0-9\+\/]/g, ''); }; var decode = function(a){ return _decode(_fromURI(a)); }; var toUint8Array; if (global.Uint8Array) toUint8Array = function(a) { return Uint8Array.from(atob(_fromURI(a)), function(c) { return c.charCodeAt(0); }); }; var noConflict = function() { var Base64 = global.Base64; global.Base64 = _Base64; return Base64; }; // export Base64 global.Base64 = { VERSION: version, atob: atob, btoa: btoa, fromBase64: decode, toBase64: encode, utob: utob, encode: encode, encodeURI: encodeURI, btou: btou, decode: decode, noConflict: noConflict, fromUint8Array: fromUint8Array, toUint8Array: toUint8Array }; // if ES5 is available, make Base64.extendString() available if (typeof Object.defineProperty === 'function') { var noEnum = function(v){ return {value:v,enumerable:false,writable:true,configurable:true}; }; global.Base64.extendString = function () { Object.defineProperty( String.prototype, 'fromBase64', noEnum(function () { return decode(this) })); Object.defineProperty( String.prototype, 'toBase64', noEnum(function (urisafe) { return encode(this, urisafe) })); Object.defineProperty( String.prototype, 'toBase64URI', noEnum(function () { return encode(this, true) })); }; } // // export Base64 to the namespace // if (global['Meteor']) { // Meteor.js Base64 = global.Base64; } // module.exports and AMD are mutually exclusive. // module.exports has precedence. if ( true && module.exports) { module.exports.Base64 = global.Base64; } else if (true) { // AMD. Register as an anonymous module. !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function(){ return global.Base64 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } // that's it! return {Base64: global.Base64} })); /***/ }), /***/ 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) /***/ }) }]);