indicator-ui 0.0.319 → 0.0.320

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
@@ -41463,6 +41463,7 @@ __webpack_require__.r(__webpack_exports__);
41463
41463
  /* harmony export */ useIsErrorField: () => (/* reexport safe */ _useIsErrorField__WEBPACK_IMPORTED_MODULE_0__.useIsErrorField),
41464
41464
  /* harmony export */ useResettableTimeout: () => (/* reexport safe */ _useResettableTimeout__WEBPACK_IMPORTED_MODULE_6__.useResettableTimeout),
41465
41465
  /* harmony export */ useSmartPosition: () => (/* reexport safe */ _useSmartPosition__WEBPACK_IMPORTED_MODULE_7__.useSmartPosition),
41466
+ /* harmony export */ useSmartScroll: () => (/* reexport safe */ _useSmartScroll__WEBPACK_IMPORTED_MODULE_9__.useSmartScroll),
41466
41467
  /* harmony export */ useSyncedStateRef: () => (/* reexport safe */ _useSyncedStateRef__WEBPACK_IMPORTED_MODULE_5__.useSyncedStateRef)
41467
41468
  /* harmony export */ });
41468
41469
  /* harmony import */ var _useIsErrorField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useIsErrorField */ "./src/hooks/useIsErrorField.ts");
@@ -41474,6 +41475,8 @@ __webpack_require__.r(__webpack_exports__);
41474
41475
  /* harmony import */ var _useResettableTimeout__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./useResettableTimeout */ "./src/hooks/useResettableTimeout.ts");
41475
41476
  /* harmony import */ var _useSmartPosition__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./useSmartPosition */ "./src/hooks/useSmartPosition.ts");
41476
41477
  /* harmony import */ var _useDebouncedInvoker__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./useDebouncedInvoker */ "./src/hooks/useDebouncedInvoker.ts");
41478
+ /* harmony import */ var _useSmartScroll__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./useSmartScroll */ "./src/hooks/useSmartScroll/index.ts");
41479
+
41477
41480
 
41478
41481
 
41479
41482
 
@@ -42288,6 +42291,591 @@ function elementwiseMultiply(m1, m2) {
42288
42291
 
42289
42292
  /***/ }),
42290
42293
 
42294
+ /***/ "./src/hooks/useSmartScroll/hooks/index.ts":
42295
+ /*!*************************************************!*\
42296
+ !*** ./src/hooks/useSmartScroll/hooks/index.ts ***!
42297
+ \*************************************************/
42298
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
42299
+
42300
+ "use strict";
42301
+ __webpack_require__.r(__webpack_exports__);
42302
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
42303
+ /* harmony export */ useSmartScroll: () => (/* reexport safe */ _useSmartScroll__WEBPACK_IMPORTED_MODULE_0__.useSmartScroll)
42304
+ /* harmony export */ });
42305
+ /* harmony import */ var _useSmartScroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useSmartScroll */ "./src/hooks/useSmartScroll/hooks/useSmartScroll.ts");
42306
+
42307
+
42308
+ /***/ }),
42309
+
42310
+ /***/ "./src/hooks/useSmartScroll/hooks/useDragScroll.ts":
42311
+ /*!*********************************************************!*\
42312
+ !*** ./src/hooks/useSmartScroll/hooks/useDragScroll.ts ***!
42313
+ \*********************************************************/
42314
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
42315
+
42316
+ "use strict";
42317
+ __webpack_require__.r(__webpack_exports__);
42318
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
42319
+ /* harmony export */ useDragScroll: () => (/* binding */ useDragScroll)
42320
+ /* harmony export */ });
42321
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
42322
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
42323
+
42324
+ function useDragScroll() {
42325
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
42326
+ args[_key] = arguments[_key];
42327
+ }
42328
+ var ref = args[0],
42329
+ _args$ = args[1],
42330
+ options = _args$ === void 0 ? {} : _args$;
42331
+ var _options$disabled = options.disabled,
42332
+ disabled = _options$disabled === void 0 ? false : _options$disabled;
42333
+ var isGrabbingRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
42334
+ var startX = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);
42335
+ var startY = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);
42336
+ var scrollLeft = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);
42337
+ var scrollTop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);
42338
+ var onMouseDown = function onMouseDown(e) {
42339
+ var container = ref.current;
42340
+ if (!container) return;
42341
+ isGrabbingRef.current = true;
42342
+ container.style.cursor = "grabbing";
42343
+ startX.current = e.pageX - container.offsetLeft;
42344
+ startY.current = e.pageY - container.offsetTop;
42345
+ scrollLeft.current = container.scrollLeft;
42346
+ scrollTop.current = container.scrollTop;
42347
+ };
42348
+ var onMouseUp = function onMouseUp() {
42349
+ var container = ref.current;
42350
+ if (!container) return;
42351
+ isGrabbingRef.current = false;
42352
+ container.style.cursor = "grab";
42353
+ };
42354
+ var onMouseLeave = function onMouseLeave() {
42355
+ var container = ref.current;
42356
+ if (!container) return;
42357
+ isGrabbingRef.current = false;
42358
+ container.style.cursor = "grab";
42359
+ };
42360
+ var onMouseMove = function onMouseMove(e) {
42361
+ var container = ref.current;
42362
+ if (!container) return;
42363
+ if (!isGrabbingRef.current) return;
42364
+ e.preventDefault();
42365
+ var x = e.pageX - container.offsetLeft;
42366
+ var y = e.pageY - container.offsetTop;
42367
+ var walkX = x - startX.current;
42368
+ var walkY = y - startY.current;
42369
+ container.scrollLeft = scrollLeft.current - walkX;
42370
+ container.scrollTop = scrollTop.current - walkY;
42371
+ };
42372
+ var initListeners = function initListeners() {
42373
+ var container = ref.current;
42374
+ if (!container) return;
42375
+ container.style.cursor = "grab";
42376
+ container.addEventListener("mousedown", onMouseDown);
42377
+ container.addEventListener("mouseup", onMouseUp);
42378
+ container.addEventListener("mouseleave", onMouseLeave);
42379
+ container.addEventListener("mousemove", onMouseMove);
42380
+ };
42381
+ var clearListeners = function clearListeners() {
42382
+ var container = ref.current;
42383
+ if (!container) return;
42384
+ container.removeEventListener("mousedown", onMouseDown);
42385
+ container.removeEventListener("mouseup", onMouseUp);
42386
+ container.removeEventListener("mouseleave", onMouseLeave);
42387
+ container.removeEventListener("mousemove", onMouseMove);
42388
+ };
42389
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
42390
+ if (!disabled) {
42391
+ initListeners();
42392
+ }
42393
+ return clearListeners;
42394
+ }, [disabled]);
42395
+ }
42396
+
42397
+ /***/ }),
42398
+
42399
+ /***/ "./src/hooks/useSmartScroll/hooks/useSmartScroll.ts":
42400
+ /*!**********************************************************!*\
42401
+ !*** ./src/hooks/useSmartScroll/hooks/useSmartScroll.ts ***!
42402
+ \**********************************************************/
42403
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
42404
+
42405
+ "use strict";
42406
+ __webpack_require__.r(__webpack_exports__);
42407
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
42408
+ /* harmony export */ useSmartScroll: () => (/* binding */ useSmartScroll)
42409
+ /* harmony export */ });
42410
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
42411
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
42412
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/hooks */ "./src/hooks/index.ts");
42413
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./src/hooks/useSmartScroll/utils/index.ts");
42414
+ /* harmony import */ var _useWheelEvent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useWheelEvent */ "./src/hooks/useSmartScroll/hooks/useWheelEvent.ts");
42415
+ /* harmony import */ var _useTouchmove__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./useTouchmove */ "./src/hooks/useSmartScroll/hooks/useTouchmove.ts");
42416
+ /* harmony import */ var _hooks_useSmartScroll_hooks_useDragScroll__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/hooks/useSmartScroll/hooks/useDragScroll */ "./src/hooks/useSmartScroll/hooks/useDragScroll.ts");
42417
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
42418
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
42419
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
42420
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
42421
+
42422
+
42423
+
42424
+
42425
+
42426
+
42427
+ var CALLBACK_DELAY = 200;
42428
+ /**
42429
+ * Хук позволяет, через декораторы `decoratorChangeStart` и `decoratorChangeEnd`, добавлять/убавлять элементы
42430
+ * в начало/конец контейнера со скроллом, предотвращая прыжки скрола.
42431
+ *
42432
+ * Также есть возможность отслеживать момент, когда компонент скроллится в самый конец или в самое начало, при этом
42433
+ * будут вызовы, когда пользователь __стучится__ в границы компонента.
42434
+ *
42435
+ * В хуке реализована логика умного вызова функций `onScrollStart` и `onScrollEnd`,
42436
+ * они будут вызваны по направлению движения скролла, а не только при пересечение определенной точки,
42437
+ * но эту точку можно контролировать через `delayPx`.
42438
+ *
42439
+ * Реализована логика __стучания__ для вызова callback-функция `onScrollStart` и `onScrollEnd` -
42440
+ * при попытке скролла в краях, это работает как с колесиком мыши, так и свапе.
42441
+ *
42442
+ * ---
42443
+ *
42444
+ * __Применение:__
42445
+ * * Через него можно удобно реализовать `бесконечную ленту`.
42446
+ * * Хорошо подойдет для чатов.
42447
+ * * Можно использовать для пагинации
42448
+ *
42449
+ * ---
42450
+ *
42451
+ * _Лучше всего компонент себя показывает в сценариях,
42452
+ * когда элементы можно добавить в начало._
42453
+ *
42454
+ * @return
42455
+ * * `decoratorChangeStart` - декоратор для изменения элементов в начале
42456
+ * * `decoratorChangeEnd` - декоратор для изменения элементов в конце
42457
+ * * `decoratorChangeStartAsync` - асинхронный декоратор для изменения элементов в начале,
42458
+ * принимает асинхронную функцию и ждет ее выполнения
42459
+ * * `decoratorChangeEndAsync` - асинхронный декоратор для изменения элементов в конце,
42460
+ * принимает асинхронную функцию и ждет ее выполнения
42461
+ * */
42462
+ function useSmartScroll() {
42463
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
42464
+ args[_key] = arguments[_key];
42465
+ }
42466
+ var ref = args[0],
42467
+ callbacks = args[1],
42468
+ _args$ = args[2],
42469
+ options = _args$ === void 0 ? {} : _args$;
42470
+ var onScrollStart = callbacks.onScrollStart,
42471
+ onScrollEnd = callbacks.onScrollEnd;
42472
+ var delayPx = options.delayPx,
42473
+ _options$callbackDela = options.callbackDelay,
42474
+ callbackDelay = _options$callbackDela === void 0 ? CALLBACK_DELAY : _options$callbackDela,
42475
+ wheelCallbackDelay = options.wheelCallbackDelay,
42476
+ touchmoveCallbackDelay = options.touchmoveCallbackDelay,
42477
+ _options$dragScrollDi = options.dragScrollDisabled,
42478
+ dragScrollDisabled = _options$dragScrollDi === void 0 ? false : _options$dragScrollDi,
42479
+ _options$touchmoveDis = options.touchmoveDisabled,
42480
+ touchmoveDisabled = _options$touchmoveDis === void 0 ? false : _options$touchmoveDis,
42481
+ _options$wheelDisable = options.wheelDisabled,
42482
+ wheelDisabled = _options$wheelDisable === void 0 ? false : _options$wheelDisable;
42483
+ var _onScrollStart = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebouncedInvoker)(onScrollStart, callbackDelay);
42484
+ var _onScrollEnd = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebouncedInvoker)(onScrollEnd, callbackDelay);
42485
+ var lastScrollTop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(undefined);
42486
+ var savedScrollData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(undefined);
42487
+ (0,_useWheelEvent__WEBPACK_IMPORTED_MODULE_3__.useWheelEvent)(ref, {
42488
+ onWheelDown: onMoveDown,
42489
+ onWheelUp: onMoveUp
42490
+ }, {
42491
+ callbackDelay: wheelCallbackDelay,
42492
+ disabled: wheelDisabled
42493
+ });
42494
+ (0,_useTouchmove__WEBPACK_IMPORTED_MODULE_4__.useTouchmove)(ref, {
42495
+ onTouchmoveDown: onMoveDown,
42496
+ onTouchmoveUp: onMoveUp
42497
+ }, {
42498
+ callbackDelay: touchmoveCallbackDelay,
42499
+ disabled: touchmoveDisabled
42500
+ });
42501
+ (0,_hooks_useSmartScroll_hooks_useDragScroll__WEBPACK_IMPORTED_MODULE_5__.useDragScroll)(ref, {
42502
+ disabled: dragScrollDisabled
42503
+ });
42504
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
42505
+ saveLastScroll();
42506
+ }, []);
42507
+ (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useDeepCompareEffect)(function () {
42508
+ var target = ref.current;
42509
+ if (target) {
42510
+ target.addEventListener('scroll', scrollListener);
42511
+ }
42512
+ return function () {
42513
+ if (target) {
42514
+ target.removeEventListener('scroll', scrollListener);
42515
+ }
42516
+ };
42517
+ }, [options]);
42518
+ var getScrollSign = function getScrollSign() {
42519
+ var target = ref.current;
42520
+ if (target === null) {
42521
+ throw Error('target is null');
42522
+ }
42523
+ var style = getComputedStyle(target);
42524
+ var flexDirection = style.getPropertyValue('flex-direction');
42525
+ return flexDirection === 'column-reverse' ? -1 : 1;
42526
+ };
42527
+ var getScrollDirection = function getScrollDirection() {
42528
+ var sign = getScrollSign();
42529
+ var _old = lastScrollTop.current;
42530
+ var _new = ref.current.scrollTop;
42531
+ return (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getScrollStatus)(_old, _new, sign);
42532
+ };
42533
+ var saveLastScroll = function saveLastScroll() {
42534
+ if (ref.current) {
42535
+ lastScrollTop.current = ref.current.scrollTop;
42536
+ }
42537
+ };
42538
+ var scrollListener = function scrollListener(event) {
42539
+ if (ref.current) {
42540
+ var scrollTop = ref.current.scrollTop;
42541
+ var scrollHeight = ref.current.scrollHeight;
42542
+ var clientHeight = ref.current.clientHeight;
42543
+ var direction = getScrollDirection();
42544
+ if ((direction === 'hard-to-start' || direction === 'to-start') && (0,_utils__WEBPACK_IMPORTED_MODULE_2__.isScrollInStart)(scrollTop, delayPx)) {
42545
+ _onScrollStart();
42546
+ } else if (direction === 'to-end' && (0,_utils__WEBPACK_IMPORTED_MODULE_2__.isScrollInEnd)(scrollTop, scrollHeight, clientHeight, delayPx)) {
42547
+ _onScrollEnd();
42548
+ }
42549
+ }
42550
+ saveLastScroll();
42551
+ };
42552
+ var saveScrollTop = function saveScrollTop() {
42553
+ if (ref.current) {
42554
+ savedScrollData.current = {
42555
+ scrollTop: ref.current.scrollTop,
42556
+ scrollHeight: ref.current.scrollHeight
42557
+ };
42558
+ }
42559
+ };
42560
+ var revertScrollTop = function revertScrollTop() {
42561
+ if (ref.current && savedScrollData.current) {
42562
+ var _oldScrollTop = savedScrollData.current.scrollTop;
42563
+ var _oldScrollHeight = savedScrollData.current.scrollHeight;
42564
+ var _newScrollHeight = ref.current.scrollHeight;
42565
+ var sign = getScrollSign();
42566
+ ref.current.scrollTop = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getRevertScrollTop)(_oldScrollTop, _oldScrollHeight, _newScrollHeight, sign);
42567
+ }
42568
+ };
42569
+ var decoratorChangeStart = function decoratorChangeStart(fun) {
42570
+ saveScrollTop();
42571
+ fun();
42572
+ requestAnimationFrame(revertScrollTop);
42573
+ };
42574
+ var decoratorChangeEnd = function decoratorChangeEnd(fun) {
42575
+ fun();
42576
+ };
42577
+ var decoratorChangeStartAsync = /*#__PURE__*/function () {
42578
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(fun) {
42579
+ return _regenerator().w(function (_context) {
42580
+ while (1) switch (_context.n) {
42581
+ case 0:
42582
+ saveScrollTop();
42583
+ _context.n = 1;
42584
+ return fun();
42585
+ case 1:
42586
+ requestAnimationFrame(revertScrollTop);
42587
+ case 2:
42588
+ return _context.a(2);
42589
+ }
42590
+ }, _callee);
42591
+ }));
42592
+ return function decoratorChangeStartAsync(_x) {
42593
+ return _ref.apply(this, arguments);
42594
+ };
42595
+ }();
42596
+ var decoratorChangeEndAsync = /*#__PURE__*/function () {
42597
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(fun) {
42598
+ return _regenerator().w(function (_context2) {
42599
+ while (1) switch (_context2.n) {
42600
+ case 0:
42601
+ _context2.n = 1;
42602
+ return fun();
42603
+ case 1:
42604
+ return _context2.a(2);
42605
+ }
42606
+ }, _callee2);
42607
+ }));
42608
+ return function decoratorChangeEndAsync(_x2) {
42609
+ return _ref2.apply(this, arguments);
42610
+ };
42611
+ }();
42612
+ return {
42613
+ decoratorChangeStart: decoratorChangeStart,
42614
+ decoratorChangeEnd: decoratorChangeEnd,
42615
+ decoratorChangeStartAsync: decoratorChangeStartAsync,
42616
+ decoratorChangeEndAsync: decoratorChangeEndAsync
42617
+ };
42618
+ function onMoveStart() {
42619
+ var scrollTop = ref.current.scrollTop;
42620
+ if ((0,_utils__WEBPACK_IMPORTED_MODULE_2__.isScrollInStart)(scrollTop, delayPx)) {
42621
+ _onScrollStart();
42622
+ }
42623
+ }
42624
+ function onMoveEnd() {
42625
+ var scrollTop = ref.current.scrollTop;
42626
+ var scrollHeight = ref.current.scrollHeight;
42627
+ var clientHeight = ref.current.clientHeight;
42628
+ if ((0,_utils__WEBPACK_IMPORTED_MODULE_2__.isScrollInEnd)(scrollTop, scrollHeight, clientHeight, delayPx)) {
42629
+ _onScrollEnd();
42630
+ }
42631
+ }
42632
+ function onMoveUp() {
42633
+ var sign = getScrollSign();
42634
+ if (sign === -1) {
42635
+ onMoveEnd();
42636
+ } else {
42637
+ onMoveStart();
42638
+ }
42639
+ }
42640
+ function onMoveDown() {
42641
+ var sign = getScrollSign();
42642
+ if (sign === 1) {
42643
+ onMoveEnd();
42644
+ } else {
42645
+ onMoveStart();
42646
+ }
42647
+ }
42648
+ }
42649
+
42650
+ /***/ }),
42651
+
42652
+ /***/ "./src/hooks/useSmartScroll/hooks/useTouchmove.ts":
42653
+ /*!********************************************************!*\
42654
+ !*** ./src/hooks/useSmartScroll/hooks/useTouchmove.ts ***!
42655
+ \********************************************************/
42656
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
42657
+
42658
+ "use strict";
42659
+ __webpack_require__.r(__webpack_exports__);
42660
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
42661
+ /* harmony export */ useTouchmove: () => (/* binding */ useTouchmove)
42662
+ /* harmony export */ });
42663
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
42664
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
42665
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/hooks */ "./src/hooks/index.ts");
42666
+
42667
+
42668
+ var TOUCHMOVE_CALLBACK_DELAY = 500;
42669
+ function useTouchmove() {
42670
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
42671
+ args[_key] = arguments[_key];
42672
+ }
42673
+ var ref = args[0],
42674
+ callbacks = args[1],
42675
+ options = args[2];
42676
+ var onTouchmoveDown = callbacks.onTouchmoveDown,
42677
+ onTouchmoveUp = callbacks.onTouchmoveUp,
42678
+ onTouchmoveRight = callbacks.onTouchmoveRight,
42679
+ onTouchmoveLeft = callbacks.onTouchmoveLeft;
42680
+ var _options$callbackDela = options.callbackDelay,
42681
+ callbackDelay = _options$callbackDela === void 0 ? TOUCHMOVE_CALLBACK_DELAY : _options$callbackDela,
42682
+ _options$disabled = options.disabled,
42683
+ disabled = _options$disabled === void 0 ? false : _options$disabled;
42684
+ var lastTouch = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
42685
+ var _onTouchmoveDown = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebouncedInvoker)(onTouchmoveDown, callbackDelay);
42686
+ var _onTouchmoveUp = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebouncedInvoker)(onTouchmoveUp, callbackDelay);
42687
+ var _onTouchmoveRight = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebouncedInvoker)(onTouchmoveRight, callbackDelay);
42688
+ var _onTouchmoveLeft = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebouncedInvoker)(onTouchmoveLeft, callbackDelay);
42689
+ var initListeners = function initListeners() {
42690
+ var target = ref.current;
42691
+ if (target) {
42692
+ target.addEventListener('touchmove', touchmoveListener);
42693
+ }
42694
+ };
42695
+ var clearListeners = function clearListeners() {
42696
+ var target = ref.current;
42697
+ if (target) {
42698
+ target.removeEventListener('touchmove', touchmoveListener);
42699
+ }
42700
+ };
42701
+ (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useDeepCompareEffect)(function () {
42702
+ if (!disabled) {
42703
+ initListeners();
42704
+ }
42705
+ return clearListeners;
42706
+ }, [callbacks, disabled]);
42707
+ var touchmoveListener = function touchmoveListener(event) {
42708
+ var touch = event.touches[0];
42709
+ var current = {
42710
+ x: touch.clientX,
42711
+ y: touch.clientY
42712
+ };
42713
+ if (lastTouch.current) {
42714
+ var dx = current.x - lastTouch.current.x;
42715
+ var dy = current.y - lastTouch.current.y;
42716
+ var directionY = dy > 0 ? 'down' : dy < 0 ? 'up' : null;
42717
+ var directionX = dx > 0 ? 'right' : dx < 0 ? 'left' : null;
42718
+ switch (directionY) {
42719
+ case 'down':
42720
+ _onTouchmoveDown === null || _onTouchmoveDown === void 0 || _onTouchmoveDown();
42721
+ break;
42722
+ case 'up':
42723
+ _onTouchmoveUp === null || _onTouchmoveUp === void 0 || _onTouchmoveUp();
42724
+ break;
42725
+ }
42726
+ switch (directionX) {
42727
+ case 'right':
42728
+ _onTouchmoveRight === null || _onTouchmoveRight === void 0 || _onTouchmoveRight();
42729
+ break;
42730
+ case 'left':
42731
+ _onTouchmoveLeft === null || _onTouchmoveLeft === void 0 || _onTouchmoveLeft();
42732
+ break;
42733
+ }
42734
+ }
42735
+ lastTouch.current = current;
42736
+ };
42737
+ }
42738
+
42739
+ /***/ }),
42740
+
42741
+ /***/ "./src/hooks/useSmartScroll/hooks/useWheelEvent.ts":
42742
+ /*!*********************************************************!*\
42743
+ !*** ./src/hooks/useSmartScroll/hooks/useWheelEvent.ts ***!
42744
+ \*********************************************************/
42745
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
42746
+
42747
+ "use strict";
42748
+ __webpack_require__.r(__webpack_exports__);
42749
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
42750
+ /* harmony export */ useWheelEvent: () => (/* binding */ useWheelEvent)
42751
+ /* harmony export */ });
42752
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/hooks */ "./src/hooks/index.ts");
42753
+
42754
+ var WHEEL_CALLBACK_DELAY = 500;
42755
+ function useWheelEvent() {
42756
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
42757
+ args[_key] = arguments[_key];
42758
+ }
42759
+ var ref = args[0],
42760
+ callbacks = args[1],
42761
+ options = args[2];
42762
+ var onWheelDown = callbacks.onWheelDown,
42763
+ onWheelUp = callbacks.onWheelUp,
42764
+ onWheelRight = callbacks.onWheelRight,
42765
+ onWheelLeft = callbacks.onWheelLeft;
42766
+ var _options$callbackDela = options.callbackDelay,
42767
+ callbackDelay = _options$callbackDela === void 0 ? WHEEL_CALLBACK_DELAY : _options$callbackDela,
42768
+ _options$disabled = options.disabled,
42769
+ disabled = _options$disabled === void 0 ? false : _options$disabled;
42770
+ var initListeners = function initListeners() {
42771
+ var target = ref.current;
42772
+ if (target) {
42773
+ target.addEventListener('wheel', wheelListener);
42774
+ }
42775
+ };
42776
+ var clearListeners = function clearListeners() {
42777
+ var target = ref.current;
42778
+ if (target) {
42779
+ target.removeEventListener('wheel', wheelListener);
42780
+ }
42781
+ };
42782
+ (0,_hooks__WEBPACK_IMPORTED_MODULE_0__.useDeepCompareEffect)(function () {
42783
+ if (!disabled) {
42784
+ initListeners();
42785
+ }
42786
+ return clearListeners;
42787
+ }, [callbacks, disabled]);
42788
+ var _onWheelDown = (0,_hooks__WEBPACK_IMPORTED_MODULE_0__.useDebouncedInvoker)(onWheelDown, callbackDelay);
42789
+ var _onWheelUp = (0,_hooks__WEBPACK_IMPORTED_MODULE_0__.useDebouncedInvoker)(onWheelUp, callbackDelay);
42790
+ var _onWheelRight = (0,_hooks__WEBPACK_IMPORTED_MODULE_0__.useDebouncedInvoker)(onWheelRight, callbackDelay);
42791
+ var _onWheelLeft = (0,_hooks__WEBPACK_IMPORTED_MODULE_0__.useDebouncedInvoker)(onWheelLeft, callbackDelay);
42792
+ var wheelListener = function wheelListener(event) {
42793
+ var directionY = event.deltaY > 0 ? 'down' : event.deltaY < 0 ? 'up' : null;
42794
+ var directionX = event.deltaX > 0 ? 'right' : event.deltaX < 0 ? 'left' : null;
42795
+ switch (directionY) {
42796
+ case 'down':
42797
+ _onWheelDown === null || _onWheelDown === void 0 || _onWheelDown();
42798
+ break;
42799
+ case 'up':
42800
+ _onWheelUp === null || _onWheelUp === void 0 || _onWheelUp();
42801
+ break;
42802
+ }
42803
+ switch (directionX) {
42804
+ case 'right':
42805
+ _onWheelRight === null || _onWheelRight === void 0 || _onWheelRight();
42806
+ break;
42807
+ case 'left':
42808
+ _onWheelLeft === null || _onWheelLeft === void 0 || _onWheelLeft();
42809
+ break;
42810
+ }
42811
+ };
42812
+ }
42813
+
42814
+ /***/ }),
42815
+
42816
+ /***/ "./src/hooks/useSmartScroll/index.ts":
42817
+ /*!*******************************************!*\
42818
+ !*** ./src/hooks/useSmartScroll/index.ts ***!
42819
+ \*******************************************/
42820
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
42821
+
42822
+ "use strict";
42823
+ __webpack_require__.r(__webpack_exports__);
42824
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
42825
+ /* harmony export */ useSmartScroll: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_0__.useSmartScroll)
42826
+ /* harmony export */ });
42827
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hooks */ "./src/hooks/useSmartScroll/hooks/index.ts");
42828
+
42829
+
42830
+ /***/ }),
42831
+
42832
+ /***/ "./src/hooks/useSmartScroll/utils/index.ts":
42833
+ /*!*************************************************!*\
42834
+ !*** ./src/hooks/useSmartScroll/utils/index.ts ***!
42835
+ \*************************************************/
42836
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
42837
+
42838
+ "use strict";
42839
+ __webpack_require__.r(__webpack_exports__);
42840
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
42841
+ /* harmony export */ getRevertScrollTop: () => (/* binding */ getRevertScrollTop),
42842
+ /* harmony export */ getScrollStatus: () => (/* binding */ getScrollStatus),
42843
+ /* harmony export */ isScrollInEnd: () => (/* binding */ isScrollInEnd),
42844
+ /* harmony export */ isScrollInStart: () => (/* binding */ isScrollInStart)
42845
+ /* harmony export */ });
42846
+ function getRevertScrollTop() {
42847
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
42848
+ args[_key] = arguments[_key];
42849
+ }
42850
+ var _oldScrollTop = args[0],
42851
+ _oldScrollHeight = args[1],
42852
+ _newScrollHeight = args[2],
42853
+ sign = args[3];
42854
+ var heightDiff = _newScrollHeight - _oldScrollHeight;
42855
+ return _oldScrollTop + sign * heightDiff;
42856
+ }
42857
+ function getScrollStatus(oldScroll, newScroll, sign) {
42858
+ var _old = oldScroll * sign;
42859
+ var _new = newScroll * sign;
42860
+ var diff = _old - _new;
42861
+ if (_new < 0) {
42862
+ return 'hard-to-start';
42863
+ } else if (diff < 0) {
42864
+ return 'to-end';
42865
+ }
42866
+ return 'to-start';
42867
+ }
42868
+ function isScrollInStart(scrollTop) {
42869
+ var delayPx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
42870
+ return Math.abs(scrollTop) < delayPx;
42871
+ }
42872
+ function isScrollInEnd(scrollTop, scrollHeight, clientHeight) {
42873
+ var delayPx = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;
42874
+ return Math.abs(scrollHeight - clientHeight - Math.abs(scrollTop)) < delayPx;
42875
+ }
42876
+
42877
+ /***/ }),
42878
+
42291
42879
  /***/ "./src/hooks/useSyncedStateRef.ts":
42292
42880
  /*!****************************************!*\
42293
42881
  !*** ./src/hooks/useSyncedStateRef.ts ***!
@@ -56229,6 +56817,7 @@ __webpack_require__.r(__webpack_exports__);
56229
56817
  /* harmony export */ useIsErrorField: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.useIsErrorField),
56230
56818
  /* harmony export */ useResettableTimeout: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.useResettableTimeout),
56231
56819
  /* harmony export */ useSmartPosition: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.useSmartPosition),
56820
+ /* harmony export */ useSmartScroll: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.useSmartScroll),
56232
56821
  /* harmony export */ useSyncedStateRef: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.useSyncedStateRef)
56233
56822
  /* harmony export */ });
56234
56823
  /* harmony import */ var _styles_colors_css_variables_index_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/styles/colors/css-variables/index.css */ "./src/styles/colors/css-variables/index.css");