indicator-ui 0.0.263 → 0.0.265

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -29136,12 +29136,13 @@ function Dropdown(_ref) {
29136
29136
  };
29137
29137
  var getItem = function getItem(curItem, idx) {
29138
29138
  var value = getValue(curItem);
29139
+ var active = isActive === null || isActive === void 0 ? void 0 : isActive(value);
29139
29140
  if (_typeof(curItem) === 'object' && 'customComponent' in curItem) {
29140
29141
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().cloneElement(curItem.customComponent, {
29141
29142
  onClick: function onClick() {
29142
29143
  return handleClick(curItem);
29143
29144
  },
29144
- active: isActive(value),
29145
+ active: active,
29145
29146
  key: idx
29146
29147
  });
29147
29148
  }
@@ -29151,7 +29152,7 @@ function Dropdown(_ref) {
29151
29152
  onClick: function onClick() {
29152
29153
  return handleClick(curItem);
29153
29154
  },
29154
- selected: isActive(value)
29155
+ selected: active
29155
29156
  }, curItem), {}, {
29156
29157
  key: idx
29157
29158
  }));
@@ -35598,7 +35599,7 @@ __webpack_require__.r(__webpack_exports__);
35598
35599
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
35599
35600
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
35600
35601
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
35601
- var _excluded = ["onScroll", "onScrollTop", "onScrollBottom", "accuracy", "wrapper"];
35602
+ var _excluded = ["onScroll", "onScrollTop", "onScrollBottom", "accuracy", "wrapper", "onWheelTopUp", "onWheelBottomDown"];
35602
35603
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
35603
35604
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
35604
35605
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
@@ -35620,8 +35621,13 @@ var ScrollProvider = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardR
35620
35621
  accuracy = _props$accuracy === void 0 ? 10 : _props$accuracy,
35621
35622
  _props$wrapper = props.wrapper,
35622
35623
  wrapper = _props$wrapper === void 0 ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {}) : _props$wrapper,
35624
+ onWheelTopUp = props.onWheelTopUp,
35625
+ onWheelBottomDown = props.onWheelBottomDown,
35623
35626
  componentProps = _objectWithoutProperties(props, _excluded);
35627
+ var lastScrollHeightRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(undefined);
35624
35628
  var elementRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
35629
+ var isTopTriggeredRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);
35630
+ var isBottomTriggeredRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);
35625
35631
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
35626
35632
  if (elementRef.current) {
35627
35633
  var handleScroll = function handleScroll(_event) {
@@ -35630,12 +35636,9 @@ var ScrollProvider = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardR
35630
35636
  var scrollTop = Math.abs(el.scrollTop);
35631
35637
  var clientHeight = el.clientHeight;
35632
35638
  var scrollHeight = el.scrollHeight;
35633
- if (onScrollTop && scrollTop <= accuracy) {
35634
- onScrollTop();
35635
- }
35636
- if (onScrollBottom && scrollTop + clientHeight + accuracy >= scrollHeight) {
35637
- onScrollBottom();
35638
- }
35639
+ var prevScrollHeight = lastScrollHeightRef.current;
35640
+ lastScrollHeightRef.current = scrollHeight;
35641
+ // Обработка обычного скролла
35639
35642
  if (onScroll) {
35640
35643
  if (typeof onScroll === "function") {
35641
35644
  onScroll(scrollTop);
@@ -35653,15 +35656,37 @@ var ScrollProvider = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardR
35653
35656
  }
35654
35657
  }
35655
35658
  }
35659
+ // Сброс флагов при выходе за границы accuracy
35660
+ if (scrollTop > accuracy) {
35661
+ isTopTriggeredRef.current = false;
35662
+ }
35663
+ if (scrollTop + clientHeight < scrollHeight - accuracy) {
35664
+ isBottomTriggeredRef.current = false;
35665
+ }
35666
+ // Обработка верхней границы
35667
+ if (onScrollTop && scrollTop <= accuracy) {
35668
+ var shouldSkipDueToHeightChange = prevScrollHeight !== undefined && scrollHeight > prevScrollHeight;
35669
+ if (!shouldSkipDueToHeightChange && !isTopTriggeredRef.current) {
35670
+ onScrollTop();
35671
+ isTopTriggeredRef.current = true;
35672
+ }
35673
+ }
35674
+ // Обработка нижней границы
35675
+ if (onScrollBottom && scrollTop + clientHeight + accuracy >= scrollHeight) {
35676
+ var _shouldSkipDueToHeightChange = prevScrollHeight !== undefined && scrollHeight < prevScrollHeight;
35677
+ if (!_shouldSkipDueToHeightChange && !isBottomTriggeredRef.current) {
35678
+ onScrollBottom();
35679
+ isBottomTriggeredRef.current = true;
35680
+ }
35681
+ }
35656
35682
  };
35657
- // Добавляем слушатель события scroll
35658
35683
  elementRef.current.addEventListener("scroll", handleScroll);
35659
35684
  return function () {
35660
35685
  var _elementRef$current;
35661
35686
  (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 || _elementRef$current.removeEventListener("scroll", handleScroll);
35662
35687
  };
35663
35688
  }
35664
- }, [onScroll, onScrollTop, onScrollBottom]);
35689
+ }, [onScroll, onScrollTop, onScrollBottom, accuracy]);
35665
35690
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().cloneElement(wrapper, _objectSpread({
35666
35691
  ref: function ref(node) {
35667
35692
  elementRef.current = node;