indicator-ui 0.0.150 → 0.0.152

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.
Files changed (28) hide show
  1. package/dist/index.js +231 -51
  2. package/dist/index.js.map +1 -1
  3. package/dist/types/src/__tests__/getDeepValue.test.d.ts +1 -0
  4. package/dist/types/src/__tests__/setDeepValue.test.d.ts +1 -0
  5. package/dist/types/src/lib/dict/clearDeepValue.d.ts +1 -1
  6. package/dist/types/src/lib/dict/index.d.ts +1 -0
  7. package/dist/types/src/lib/dict/setDeepValue.d.ts +3 -6
  8. package/dist/types/src/types/DictDeepActionsTypes.d.ts +3 -0
  9. package/dist/types/src/ui/FormBuilder/lib/formBuilder.d.ts +1 -1
  10. package/dist/types/src/ui/FormBuilder/types/FormBuilderTypes.d.ts +4 -0
  11. package/dist/types/src/ui/ScrollProvider/index.d.ts +2 -0
  12. package/dist/types/src/ui/ScrollProvider/types/ScrollProviderTypes.d.ts +34 -0
  13. package/dist/types/src/ui/ScrollProvider/types/index.d.ts +1 -0
  14. package/dist/types/src/ui/ScrollProvider/ui/ScrollProvider.d.ts +2 -0
  15. package/dist/types/src/ui/ScrollProvider/ui/index.d.ts +1 -0
  16. package/dist/types/src/ui/index.d.ts +1 -0
  17. package/package.json +73 -68
  18. package/dist/types/src/test/ui/InputFileField/api/getFileUrl.d.ts +0 -1
  19. package/dist/types/src/test/ui/InputFileField/api/index.d.ts +0 -1
  20. package/dist/types/src/test/ui/InputFileField/index.d.ts +0 -3
  21. package/dist/types/src/test/ui/InputFileField/types/FileViewItemTypes.d.ts +0 -18
  22. package/dist/types/src/test/ui/InputFileField/types/InputFileFieldTypes.d.ts +0 -8
  23. package/dist/types/src/test/ui/InputFileField/types/InputFileTypes.d.ts +0 -19
  24. package/dist/types/src/test/ui/InputFileField/types/index.d.ts +0 -3
  25. package/dist/types/src/test/ui/InputFileField/ui/FileViewItem.d.ts +0 -2
  26. package/dist/types/src/test/ui/InputFileField/ui/InputFile.d.ts +0 -4
  27. package/dist/types/src/test/ui/InputFileField/ui/InputFileField.d.ts +0 -7
  28. package/dist/types/src/test/ui/index.d.ts +0 -1
package/dist/index.js CHANGED
@@ -6302,13 +6302,13 @@ function useFormData(value) {
6302
6302
  }
6303
6303
  _setFormData(value);
6304
6304
  };
6305
- const resetForm = () => {
6305
+ const _resetForm = () => {
6306
6306
  _setFormData(value || {});
6307
6307
  };
6308
- const clearForm = () => {
6308
+ const _clearForm = () => {
6309
6309
  _setFormData({});
6310
6310
  };
6311
- const setValue = (value, keyWay, options = { unionToArray: false }) => {
6311
+ const _setValue = (value, keyWay, options = { unionToArray: false }) => {
6312
6312
  const processFun = (prevState) => {
6313
6313
  let newValue = value;
6314
6314
  if (options.unionToArray) {
@@ -6339,25 +6339,25 @@ function useFormData(value) {
6339
6339
  const newFormData = processFun(formDataRef.current);
6340
6340
  _setFormData(newFormData);
6341
6341
  };
6342
- const getValue = (keyWay) => {
6342
+ const _getValue = (keyWay) => {
6343
6343
  return (0,_lib__WEBPACK_IMPORTED_MODULE_1__.getDeepValue)(formDataRef.current, keyWay);
6344
6344
  };
6345
- const deleteArrayItem = (keyWay) => {
6345
+ const _deleteArrayItem = (keyWay) => {
6346
6346
  const lastKeyWay = keyWay.length > 0 && keyWay[keyWay.length - 1] || undefined;
6347
6347
  if (lastKeyWay && typeof lastKeyWay === 'object') {
6348
6348
  const arrayKeyWay = [...keyWay.slice(0, keyWay.length - 1), lastKeyWay.name];
6349
- const oldValue = getValue(arrayKeyWay).filter((_item, idx) => idx !== lastKeyWay.index);
6350
- setValue(oldValue, arrayKeyWay);
6349
+ const oldValue = _getValue(arrayKeyWay).filter((_item, idx) => idx !== lastKeyWay.index);
6350
+ _setValue(oldValue, arrayKeyWay);
6351
6351
  }
6352
6352
  };
6353
6353
  return {
6354
6354
  formData: formData,
6355
6355
  setFormData: _setFormDataExternal,
6356
- setValue: setValue,
6357
- getValue: getValue,
6358
- resetForm: resetForm,
6359
- clearForm: clearForm,
6360
- deleteArrayItem: deleteArrayItem
6356
+ setValue: _setValue,
6357
+ getValue: _getValue,
6358
+ resetForm: _resetForm,
6359
+ clearForm: _clearForm,
6360
+ deleteArrayItem: _deleteArrayItem
6361
6361
  };
6362
6362
  }
6363
6363
 
@@ -6582,7 +6582,7 @@ function traverseTreeByStack(arr, process, options) {
6582
6582
  "use strict";
6583
6583
  __webpack_require__.r(__webpack_exports__);
6584
6584
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6585
- /* harmony export */ "default": () => (/* binding */ clearDeepValue)
6585
+ /* harmony export */ clearDeepValue: () => (/* binding */ clearDeepValue)
6586
6586
  /* harmony export */ });
6587
6587
  /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/lib */ "./src/lib/index.ts");
6588
6588
 
@@ -6668,21 +6668,39 @@ __webpack_require__.r(__webpack_exports__);
6668
6668
  function getDeepValue(dict, keyWay) {
6669
6669
  let curPlace = dict;
6670
6670
  for (let i = 0; i < keyWay?.length || 0; i++) {
6671
- if (!(0,_dict__WEBPACK_IMPORTED_MODULE_0__.isDict)(curPlace))
6672
- return undefined;
6671
+ if (!(0,_dict__WEBPACK_IMPORTED_MODULE_0__.isDict)(curPlace) && !Array.isArray(curPlace)) {
6672
+ return undefined; // Если это не объект и не массив, возвращаем undefined
6673
+ }
6673
6674
  if (typeof keyWay[i] === 'object') {
6674
6675
  const { name, index } = keyWay[i];
6675
- if (name in curPlace)
6676
- curPlace = curPlace[name][index];
6677
- else
6678
- return undefined;
6676
+ if (name in curPlace) {
6677
+ const nextPlace = curPlace[name];
6678
+ // Если путь ведет к массиву
6679
+ if (Array.isArray(nextPlace)) {
6680
+ // Проверяем, что индекс существует в массиве
6681
+ if (index < nextPlace.length) {
6682
+ curPlace = nextPlace[index];
6683
+ }
6684
+ else {
6685
+ return undefined; // Если индекс выходит за пределы массива
6686
+ }
6687
+ }
6688
+ else {
6689
+ curPlace = nextPlace;
6690
+ }
6691
+ }
6692
+ else {
6693
+ return undefined; // Если ключ не найден в объекте
6694
+ }
6679
6695
  }
6680
6696
  else {
6681
6697
  const item = keyWay[i];
6682
- if (item in curPlace)
6698
+ if (item in curPlace) {
6683
6699
  curPlace = curPlace[item];
6684
- else
6685
- return undefined;
6700
+ }
6701
+ else {
6702
+ return undefined; // Если ключ не найден
6703
+ }
6686
6704
  }
6687
6705
  }
6688
6706
  return curPlace;
@@ -6700,6 +6718,7 @@ function getDeepValue(dict, keyWay) {
6700
6718
  "use strict";
6701
6719
  __webpack_require__.r(__webpack_exports__);
6702
6720
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6721
+ /* harmony export */ clearDeepValue: () => (/* reexport safe */ _clearDeepValue__WEBPACK_IMPORTED_MODULE_4__.clearDeepValue),
6703
6722
  /* harmony export */ compKeyWays: () => (/* reexport safe */ _compKeyWays__WEBPACK_IMPORTED_MODULE_3__.compKeyWays),
6704
6723
  /* harmony export */ getDeepValue: () => (/* reexport safe */ _getDeepValue__WEBPACK_IMPORTED_MODULE_2__["default"]),
6705
6724
  /* harmony export */ isDict: () => (/* reexport safe */ _isDict__WEBPACK_IMPORTED_MODULE_0__["default"]),
@@ -6709,6 +6728,8 @@ __webpack_require__.r(__webpack_exports__);
6709
6728
  /* harmony import */ var _setDeepValue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setDeepValue */ "./src/lib/dict/setDeepValue.ts");
6710
6729
  /* harmony import */ var _getDeepValue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getDeepValue */ "./src/lib/dict/getDeepValue.ts");
6711
6730
  /* harmony import */ var _compKeyWays__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./compKeyWays */ "./src/lib/dict/compKeyWays.ts");
6731
+ /* harmony import */ var _clearDeepValue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./clearDeepValue */ "./src/lib/dict/clearDeepValue.ts");
6732
+
6712
6733
 
6713
6734
 
6714
6735
 
@@ -6749,30 +6770,44 @@ __webpack_require__.r(__webpack_exports__);
6749
6770
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6750
6771
  /* harmony export */ "default": () => (/* binding */ setDeepValue)
6751
6772
  /* harmony export */ });
6752
- /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib */ "./src/lib/index.ts");
6753
-
6754
-
6755
6773
  function setDeepValue(dict, value, options) {
6756
6774
  let newDict = { ...dict };
6757
6775
  let writePlace = newDict;
6758
- const lastIndexOfKeysWay = options.keysWay.length - 1;
6759
- options.keysWay.forEach((key, idx) => {
6760
- let curKey = key;
6761
- if (typeof curKey === 'object') {
6762
- const { name, index } = curKey;
6763
- if (!(0,_lib__WEBPACK_IMPORTED_MODULE_0__.isArray)(writePlace[name]))
6764
- writePlace[name] = [];
6765
- writePlace = writePlace[name];
6766
- curKey = index;
6776
+ const keysWay = options.keysWay;
6777
+ const lastIndexOfKeysWay = keysWay.length - 1;
6778
+ for (let i = 0; i < keysWay.length; i++) {
6779
+ let curKey = keysWay[i];
6780
+ // Если это не последний ключ в пути, то идем по вложенной структуре
6781
+ if (i < lastIndexOfKeysWay) {
6782
+ if (typeof curKey === "object") {
6783
+ const { name, index } = curKey;
6784
+ if (writePlace[name] && Array.isArray(writePlace[name]) && writePlace[name].length > index) {
6785
+ writePlace = writePlace[name][index];
6786
+ }
6787
+ }
6788
+ else {
6789
+ // Если ключ не существует, создаем его
6790
+ if (writePlace[curKey] === undefined) {
6791
+ writePlace[curKey] = {};
6792
+ }
6793
+ writePlace = writePlace[curKey];
6794
+ }
6767
6795
  }
6768
- if (!(0,_lib__WEBPACK_IMPORTED_MODULE_0__.isDict)(writePlace[curKey])) {
6769
- writePlace[curKey] = {};
6796
+ else {
6797
+ // Замена значения на последнем уровне
6798
+ if (writePlace) {
6799
+ if (typeof curKey === "object") {
6800
+ const { name, index } = curKey;
6801
+ if (Array.isArray(writePlace[name])) {
6802
+ writePlace[name][index] = value;
6803
+ }
6804
+ }
6805
+ else {
6806
+ writePlace[curKey] = value;
6807
+ }
6808
+ }
6770
6809
  }
6771
- if (idx < lastIndexOfKeysWay)
6772
- writePlace = writePlace[curKey];
6773
- else
6774
- writePlace[curKey] = value;
6775
- });
6810
+ }
6776
6811
  return newDict;
6777
6812
  }
6778
6813
 
@@ -6788,6 +6823,7 @@ function setDeepValue(dict, value, options) {
6788
6823
  "use strict";
6789
6824
  __webpack_require__.r(__webpack_exports__);
6790
6825
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6826
+ /* harmony export */ clearDeepValue: () => (/* reexport safe */ _dict__WEBPACK_IMPORTED_MODULE_0__.clearDeepValue),
6791
6827
  /* harmony export */ compKeyWays: () => (/* reexport safe */ _dict__WEBPACK_IMPORTED_MODULE_0__.compKeyWays),
6792
6828
  /* harmony export */ getDeepValue: () => (/* reexport safe */ _dict__WEBPACK_IMPORTED_MODULE_0__.getDeepValue),
6793
6829
  /* harmony export */ getUniqueArray: () => (/* reexport safe */ _array__WEBPACK_IMPORTED_MODULE_1__.getUniqueArray),
@@ -8900,10 +8936,10 @@ __webpack_require__.r(__webpack_exports__);
8900
8936
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
8901
8937
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
8902
8938
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
8903
- /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/hooks */ "./src/hooks/index.ts");
8904
- /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib */ "./src/ui/FormBuilder/lib/index.ts");
8905
- /* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../consts */ "./src/ui/FormBuilder/consts/index.ts");
8906
- /* harmony import */ var _lib_dict_clearDeepValue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/lib/dict/clearDeepValue */ "./src/lib/dict/clearDeepValue.ts");
8939
+ /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib */ "./src/lib/index.ts");
8940
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/hooks */ "./src/hooks/index.ts");
8941
+ /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../lib */ "./src/ui/FormBuilder/lib/index.ts");
8942
+ /* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../consts */ "./src/ui/FormBuilder/consts/index.ts");
8907
8943
  'use client';
8908
8944
 
8909
8945
 
@@ -8949,12 +8985,12 @@ function FormBuilder({ schema, formDataDefault, onChange, onChangeIsError, input
8949
8985
  const removePrivateRefStoreValue = (key) => {
8950
8986
  delete privateRefStore.current[key];
8951
8987
  };
8952
- const { formData, setFormData, setValue, getValue, deleteArrayItem } = (0,_hooks__WEBPACK_IMPORTED_MODULE_2__.useFormData)(formDataDefault || {});
8953
- const { isErrorField, addErrorField, removeErrorField, getErrorMessage, isError } = (0,_hooks__WEBPACK_IMPORTED_MODULE_2__.useIsErrorField)({
8988
+ const { formData, setFormData, setValue, getValue, deleteArrayItem } = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__.useFormData)(formDataDefault || {});
8989
+ const { isErrorField, addErrorField, removeErrorField, getErrorMessage, isError } = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__.useIsErrorField)({
8954
8990
  additionIsErrorFields: additionIsErrorFields,
8955
8991
  sensitiveSearch: sensitiveErrorSearch,
8956
8992
  });
8957
- const onChangeError = (0,_hooks__WEBPACK_IMPORTED_MODULE_2__.useIsErrorField)({
8993
+ const onChangeError = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__.useIsErrorField)({
8958
8994
  additionIsErrorFields: additionIsErrorFields,
8959
8995
  sensitiveSearch: sensitiveErrorSearch,
8960
8996
  });
@@ -8970,8 +9006,8 @@ function FormBuilder({ schema, formDataDefault, onChange, onChangeIsError, input
8970
9006
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
8971
9007
  let resForm = formData;
8972
9008
  if (clearForm) {
8973
- const keys = getPrivateRefStoreValue(_consts__WEBPACK_IMPORTED_MODULE_4__.KEY_WAY_STORE_NAME) || [];
8974
- resForm = (0,_lib_dict_clearDeepValue__WEBPACK_IMPORTED_MODULE_5__["default"])(resForm, keys);
9009
+ const keys = getPrivateRefStoreValue(_consts__WEBPACK_IMPORTED_MODULE_5__.KEY_WAY_STORE_NAME) || [];
9010
+ resForm = (0,_lib__WEBPACK_IMPORTED_MODULE_2__.clearDeepValue)(resForm, keys);
8975
9011
  }
8976
9012
  onChange && onChange(resForm);
8977
9013
  }, [formData]);
@@ -8981,7 +9017,7 @@ function FormBuilder({ schema, formDataDefault, onChange, onChangeIsError, input
8981
9017
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
8982
9018
  onChangeValidateIsError && onChangeValidateIsError(onChangeError.isError);
8983
9019
  }, [onChangeError.isError]);
8984
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: (0,_lib__WEBPACK_IMPORTED_MODULE_3__.formBuilder)(schema, {
9020
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: (0,_lib__WEBPACK_IMPORTED_MODULE_4__.formBuilder)(schema, {
8985
9021
  keyWay: [],
8986
9022
  getValue: getValue,
8987
9023
  setValue: setValue,
@@ -11234,6 +11270,145 @@ __webpack_require__.r(__webpack_exports__);
11234
11270
 
11235
11271
 
11236
11272
 
11273
+ /***/ }),
11274
+
11275
+ /***/ "./src/ui/ScrollProvider/index.ts":
11276
+ /*!****************************************!*\
11277
+ !*** ./src/ui/ScrollProvider/index.ts ***!
11278
+ \****************************************/
11279
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11280
+
11281
+ "use strict";
11282
+ __webpack_require__.r(__webpack_exports__);
11283
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11284
+ /* harmony export */ ScrollProvider: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_0__.ScrollProvider)
11285
+ /* harmony export */ });
11286
+ /* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./src/ui/ScrollProvider/ui/index.ts");
11287
+ /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types */ "./src/ui/ScrollProvider/types/index.ts");
11288
+
11289
+
11290
+
11291
+
11292
+ /***/ }),
11293
+
11294
+ /***/ "./src/ui/ScrollProvider/types/ScrollProviderTypes.ts":
11295
+ /*!************************************************************!*\
11296
+ !*** ./src/ui/ScrollProvider/types/ScrollProviderTypes.ts ***!
11297
+ \************************************************************/
11298
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11299
+
11300
+ "use strict";
11301
+ __webpack_require__.r(__webpack_exports__);
11302
+
11303
+
11304
+
11305
+ /***/ }),
11306
+
11307
+ /***/ "./src/ui/ScrollProvider/types/index.ts":
11308
+ /*!**********************************************!*\
11309
+ !*** ./src/ui/ScrollProvider/types/index.ts ***!
11310
+ \**********************************************/
11311
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11312
+
11313
+ "use strict";
11314
+ __webpack_require__.r(__webpack_exports__);
11315
+ /* harmony import */ var _ScrollProviderTypes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ScrollProviderTypes */ "./src/ui/ScrollProvider/types/ScrollProviderTypes.ts");
11316
+
11317
+
11318
+
11319
+ /***/ }),
11320
+
11321
+ /***/ "./src/ui/ScrollProvider/ui/ScrollProvider.tsx":
11322
+ /*!*****************************************************!*\
11323
+ !*** ./src/ui/ScrollProvider/ui/ScrollProvider.tsx ***!
11324
+ \*****************************************************/
11325
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11326
+
11327
+ "use strict";
11328
+ __webpack_require__.r(__webpack_exports__);
11329
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11330
+ /* harmony export */ ScrollProvider: () => (/* binding */ ScrollProvider)
11331
+ /* harmony export */ });
11332
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
11333
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
11334
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
11335
+
11336
+
11337
+ function ScrollProvider({ onScroll, onScrollTop, onScrollBottom, children, accuracy = 10, }) {
11338
+ const elementRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
11339
+ // Преобразуем children в массив и находим первый DOM-элемент
11340
+ const arrayChildren = react__WEBPACK_IMPORTED_MODULE_1___default().Children.toArray(children);
11341
+ const firstElement = arrayChildren.find((item) => react__WEBPACK_IMPORTED_MODULE_1___default().isValidElement(item) &&
11342
+ (typeof item.type === "string" ||
11343
+ item.type?.$$typeof === Symbol.for("react.forward_ref")));
11344
+ // Если нашли, клонируем его и добавляем ref
11345
+ const clonedFirstElement = firstElement
11346
+ // @ts-ignore
11347
+ ? (0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(firstElement, { ref: elementRef })
11348
+ : null;
11349
+ (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
11350
+ if (elementRef.current) {
11351
+ const handleScroll = (event) => {
11352
+ const el = elementRef.current;
11353
+ if (!el)
11354
+ return;
11355
+ const scrollTop = el.scrollTop;
11356
+ const clientHeight = el.clientHeight;
11357
+ const scrollHeight = el.scrollHeight;
11358
+ if (onScrollTop && Math.abs(scrollTop) <= accuracy) {
11359
+ onScrollTop();
11360
+ }
11361
+ if (onScrollBottom && scrollTop + clientHeight + accuracy >= scrollHeight) {
11362
+ onScrollBottom();
11363
+ }
11364
+ if (onScroll) {
11365
+ if (typeof onScroll === "function") {
11366
+ onScroll(scrollTop);
11367
+ }
11368
+ else if (typeof onScroll === "object") {
11369
+ const { callback, trigger } = onScroll;
11370
+ let shouldCall = false;
11371
+ if (typeof trigger === "number") {
11372
+ shouldCall = scrollTop === trigger;
11373
+ }
11374
+ else if (typeof trigger === "function") {
11375
+ shouldCall = trigger(scrollTop);
11376
+ }
11377
+ if (shouldCall) {
11378
+ callback(scrollTop);
11379
+ }
11380
+ }
11381
+ }
11382
+ };
11383
+ // Добавляем слушатель события scroll
11384
+ elementRef.current.addEventListener("scroll", handleScroll);
11385
+ return () => {
11386
+ elementRef.current?.removeEventListener("scroll", handleScroll);
11387
+ };
11388
+ }
11389
+ }, [onScroll, onScrollTop, onScrollBottom]);
11390
+ // Рендерим клонированный элемент и остальные дочерние элементы
11391
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [clonedFirstElement, arrayChildren.filter(child => child !== firstElement)] }));
11392
+ }
11393
+
11394
+
11395
+ /***/ }),
11396
+
11397
+ /***/ "./src/ui/ScrollProvider/ui/index.ts":
11398
+ /*!*******************************************!*\
11399
+ !*** ./src/ui/ScrollProvider/ui/index.ts ***!
11400
+ \*******************************************/
11401
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11402
+
11403
+ "use strict";
11404
+ __webpack_require__.r(__webpack_exports__);
11405
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11406
+ /* harmony export */ ScrollProvider: () => (/* reexport safe */ _ScrollProvider__WEBPACK_IMPORTED_MODULE_0__.ScrollProvider)
11407
+ /* harmony export */ });
11408
+ /* harmony import */ var _ScrollProvider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ScrollProvider */ "./src/ui/ScrollProvider/ui/ScrollProvider.tsx");
11409
+
11410
+
11411
+
11237
11412
  /***/ }),
11238
11413
 
11239
11414
  /***/ "./src/ui/SlideTransition/index.ts":
@@ -12246,6 +12421,7 @@ __webpack_require__.r(__webpack_exports__);
12246
12421
  /* harmony export */ PageSwitcher: () => (/* reexport safe */ _PaginationBar__WEBPACK_IMPORTED_MODULE_16__.PageSwitcher),
12247
12422
  /* harmony export */ PaginationBar: () => (/* reexport safe */ _PaginationBar__WEBPACK_IMPORTED_MODULE_16__.PaginationBar),
12248
12423
  /* harmony export */ RadioField: () => (/* reexport safe */ _InputFields__WEBPACK_IMPORTED_MODULE_3__.RadioField),
12424
+ /* harmony export */ ScrollProvider: () => (/* reexport safe */ _ScrollProvider__WEBPACK_IMPORTED_MODULE_17__.ScrollProvider),
12249
12425
  /* harmony export */ SelectField: () => (/* reexport safe */ _InputFields__WEBPACK_IMPORTED_MODULE_3__.SelectField),
12250
12426
  /* harmony export */ SlideTransition: () => (/* reexport safe */ _SlideTransition__WEBPACK_IMPORTED_MODULE_11__.SlideTransition),
12251
12427
  /* harmony export */ SwitcherField: () => (/* reexport safe */ _InputFields__WEBPACK_IMPORTED_MODULE_3__.SwitcherField),
@@ -12281,6 +12457,8 @@ __webpack_require__.r(__webpack_exports__);
12281
12457
  /* harmony import */ var _TabFrame__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./TabFrame */ "./src/ui/TabFrame/index.ts");
12282
12458
  /* harmony import */ var _TabButtons__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./TabButtons */ "./src/ui/TabButtons/index.ts");
12283
12459
  /* harmony import */ var _PaginationBar__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./PaginationBar */ "./src/ui/PaginationBar/index.ts");
12460
+ /* harmony import */ var _ScrollProvider__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ScrollProvider */ "./src/ui/ScrollProvider/index.ts");
12461
+
12284
12462
 
12285
12463
 
12286
12464
 
@@ -28176,6 +28354,7 @@ __webpack_require__.r(__webpack_exports__);
28176
28354
  /* harmony export */ PageSwitcher: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.PageSwitcher),
28177
28355
  /* harmony export */ PaginationBar: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.PaginationBar),
28178
28356
  /* harmony export */ RadioField: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.RadioField),
28357
+ /* harmony export */ ScrollProvider: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.ScrollProvider),
28179
28358
  /* harmony export */ SelectField: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.SelectField),
28180
28359
  /* harmony export */ SlideTransition: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.SlideTransition),
28181
28360
  /* harmony export */ SwitcherField: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.SwitcherField),
@@ -28189,6 +28368,7 @@ __webpack_require__.r(__webpack_exports__);
28189
28368
  /* harmony export */ ToggleBase: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.ToggleBase),
28190
28369
  /* harmony export */ arrayFieldComponent: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.arrayFieldComponent),
28191
28370
  /* harmony export */ blockWrapperComponent: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.blockWrapperComponent),
28371
+ /* harmony export */ clearDeepValue: () => (/* reexport safe */ _lib__WEBPACK_IMPORTED_MODULE_4__.clearDeepValue),
28192
28372
  /* harmony export */ compKeyWays: () => (/* reexport safe */ _lib__WEBPACK_IMPORTED_MODULE_4__.compKeyWays),
28193
28373
  /* harmony export */ formBuilder: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.formBuilder),
28194
28374
  /* harmony export */ formWrapperComponent: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.formWrapperComponent),