indicator-ui 0.1.48 → 0.1.49

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
@@ -54313,14 +54313,15 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
54313
54313
  function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
54314
54314
  function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
54315
54315
  function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
54316
+ 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; }
54316
54317
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
54317
54318
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
54318
54319
 
54319
54320
 
54320
- // type FormDataType<T> = Partial<T> | undefined
54321
54321
  var Form = /*#__PURE__*/function () {
54322
54322
  function Form(data) {
54323
54323
  _classCallCheck(this, Form);
54324
+ _defineProperty(this, "defaultValues", {});
54324
54325
  this.data = data;
54325
54326
  }
54326
54327
  return _createClass(Form, [{
@@ -54341,18 +54342,84 @@ var Form = /*#__PURE__*/function () {
54341
54342
  set: function set(data) {
54342
54343
  this.setFormData(data);
54343
54344
  }
54345
+ }, {
54346
+ key: "hasDefaultValue",
54347
+ value: function hasDefaultValue(path) {
54348
+ var defaultValues = this.defaultValues;
54349
+ var extendsPath = (0,_lib__WEBPACK_IMPORTED_MODULE_1__.getExtendPath)(path);
54350
+ return extendsPath in defaultValues;
54351
+ }
54352
+ }, {
54353
+ key: "getDefaultValue",
54354
+ value: function getDefaultValue(path) {
54355
+ var curDefaultValues = this.defaultValues;
54356
+ var extendsPath = (0,_lib__WEBPACK_IMPORTED_MODULE_1__.getExtendPath)(path);
54357
+ return this.hasDefaultValue(path) ? {
54358
+ "default": curDefaultValues[extendsPath]
54359
+ } : undefined;
54360
+ }
54361
+ }, {
54362
+ key: "setDefaultValue",
54363
+ value: function setDefaultValue(path, value) {
54364
+ this.defaultValues[path] = value;
54365
+ }
54366
+ }, {
54367
+ key: "deleteDefaultValue",
54368
+ value: function deleteDefaultValue(path) {
54369
+ delete this.defaultValues[path];
54370
+ }
54371
+ }, {
54372
+ key: "clearDefaultValues",
54373
+ value: function clearDefaultValues() {
54374
+ this.defaultValues = {};
54375
+ }
54376
+ }, {
54377
+ key: "applyDefaultValue",
54378
+ value: function applyDefaultValue(path) {
54379
+ var resData = this.getFormData();
54380
+ var curDefault = this.getDefaultValue(path);
54381
+ if (curDefault) {
54382
+ var value = curDefault["default"];
54383
+ resData = (0,_lib__WEBPACK_IMPORTED_MODULE_1__.setExtendValue)(resData, path, value);
54384
+ }
54385
+ this.setFormData(resData);
54386
+ }
54387
+ }, {
54388
+ key: "applyDefaultValues",
54389
+ value: function applyDefaultValues() {
54390
+ var defaultValues = this.defaultValues;
54391
+ var paths = (0,_lib__WEBPACK_IMPORTED_MODULE_1__.getSortedExtendsPaths)(defaultValues);
54392
+ var _iterator = _createForOfIteratorHelper(paths),
54393
+ _step;
54394
+ try {
54395
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
54396
+ var path = _step.value;
54397
+ this.applyDefaultValue(path);
54398
+ }
54399
+ } catch (err) {
54400
+ _iterator.e(err);
54401
+ } finally {
54402
+ _iterator.f();
54403
+ }
54404
+ }
54344
54405
  }, {
54345
54406
  key: "setField",
54346
- value: function setField(chain, value) {
54347
- var formData = this.getFormData();
54348
- var newData = (0,_lib__WEBPACK_IMPORTED_MODULE_1__.setDataByPath)(formData, chain, value);
54349
- this.setFormData(newData);
54407
+ value: function setField(path, value) {
54408
+ var isEmptyValue = !value;
54409
+ var hasDefault = this.hasDefaultValue(path);
54410
+ if (hasDefault && isEmptyValue) {
54411
+ this.applyDefaultValue(path);
54412
+ } else {
54413
+ var formData = this.getFormData();
54414
+ var newData = (0,_lib__WEBPACK_IMPORTED_MODULE_1__.setDataByPath)(formData, path, value);
54415
+ this.setFormData(newData);
54416
+ }
54350
54417
  }
54351
54418
  }, {
54352
54419
  key: "getField",
54353
- value: function getField(chain) {
54420
+ value: function getField(path) {
54354
54421
  var formData = this.getFormData();
54355
- return (0,_lib__WEBPACK_IMPORTED_MODULE_1__.getDataByPath)(formData, chain);
54422
+ return (0,_lib__WEBPACK_IMPORTED_MODULE_1__.getDataByPath)(formData, path);
54356
54423
  }
54357
54424
  }, {
54358
54425
  key: "clear",
@@ -54389,11 +54456,11 @@ var FormError = /*#__PURE__*/function () {
54389
54456
  value: function addErrors(errors) {
54390
54457
  var curErrors = this.getErrors();
54391
54458
  var filteredErrors = [];
54392
- var _iterator = _createForOfIteratorHelper(curErrors),
54393
- _step;
54459
+ var _iterator2 = _createForOfIteratorHelper(curErrors),
54460
+ _step2;
54394
54461
  try {
54395
54462
  var _loop = function _loop() {
54396
- var error = _step.value;
54463
+ var error = _step2.value;
54397
54464
  var hasInNewErrors = errors.find(function (item) {
54398
54465
  return item.path === error.path;
54399
54466
  });
@@ -54401,13 +54468,13 @@ var FormError = /*#__PURE__*/function () {
54401
54468
  filteredErrors.push(error);
54402
54469
  }
54403
54470
  };
54404
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
54471
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
54405
54472
  _loop();
54406
54473
  }
54407
54474
  } catch (err) {
54408
- _iterator.e(err);
54475
+ _iterator2.e(err);
54409
54476
  } finally {
54410
- _iterator.f();
54477
+ _iterator2.f();
54411
54478
  }
54412
54479
  this.formErrors = [].concat(filteredErrors, _toConsumableArray(errors));
54413
54480
  }
@@ -54461,7 +54528,7 @@ var FormValidateFun = /*#__PURE__*/function () {
54461
54528
  key: "getValueForValidate",
54462
54529
  value: function getValueForValidate(path) {
54463
54530
  var form = this.form;
54464
- var arrayItemPath = (0,_lib__WEBPACK_IMPORTED_MODULE_1__.getRealPathByArrayItemPath)(path);
54531
+ var arrayItemPath = (0,_lib__WEBPACK_IMPORTED_MODULE_1__.getArrayExtendBasePath)(path);
54465
54532
  var res;
54466
54533
  if (arrayItemPath !== undefined) {
54467
54534
  var arrayField = form.getField(arrayItemPath) || [];
@@ -54495,7 +54562,7 @@ var FormValidateFun = /*#__PURE__*/function () {
54495
54562
  value: function getValidateFunctions(path) {
54496
54563
  var _formValidateFunction, _formValidateFunction2;
54497
54564
  var formValidateFunctions = this.getFormValidateFunctions();
54498
- var arrayItemPath = (0,_lib__WEBPACK_IMPORTED_MODULE_1__.getArrayItemPathByRealPath)(path);
54565
+ var arrayItemPath = (0,_lib__WEBPACK_IMPORTED_MODULE_1__.getArrayExtendPath)(path);
54499
54566
  var fun = ((_formValidateFunction = formValidateFunctions.find(function (item) {
54500
54567
  return item.path === path;
54501
54568
  })) === null || _formValidateFunction === void 0 ? void 0 : _formValidateFunction.fun) || [];
@@ -54532,32 +54599,32 @@ var FormValidateFun = /*#__PURE__*/function () {
54532
54599
  key: "validate",
54533
54600
  value: function () {
54534
54601
  var _validate = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(path) {
54535
- var values, res, _iterator2, _step2, item, curValue, curPath, validators, _iterator3, _step3, validator, errorP, error, _t, _t2, _t3;
54602
+ var values, res, _iterator3, _step3, item, curValue, curPath, validators, _iterator4, _step4, validator, errorP, error, _t, _t2, _t3;
54536
54603
  return _regenerator().w(function (_context) {
54537
54604
  while (1) switch (_context.n) {
54538
54605
  case 0:
54539
54606
  values = this.getValueForValidate(path);
54540
54607
  res = [];
54541
- _iterator2 = _createForOfIteratorHelper(values);
54608
+ _iterator3 = _createForOfIteratorHelper(values);
54542
54609
  _context.p = 1;
54543
- _iterator2.s();
54610
+ _iterator3.s();
54544
54611
  case 2:
54545
- if ((_step2 = _iterator2.n()).done) {
54612
+ if ((_step3 = _iterator3.n()).done) {
54546
54613
  _context.n = 13;
54547
54614
  break;
54548
54615
  }
54549
- item = _step2.value;
54616
+ item = _step3.value;
54550
54617
  curValue = item.value, curPath = item.path;
54551
54618
  validators = this.getValidateFunctions(curPath);
54552
- _iterator3 = _createForOfIteratorHelper(validators);
54619
+ _iterator4 = _createForOfIteratorHelper(validators);
54553
54620
  _context.p = 3;
54554
- _iterator3.s();
54621
+ _iterator4.s();
54555
54622
  case 4:
54556
- if ((_step3 = _iterator3.n()).done) {
54623
+ if ((_step4 = _iterator4.n()).done) {
54557
54624
  _context.n = 9;
54558
54625
  break;
54559
54626
  }
54560
- validator = _step3.value;
54627
+ validator = _step4.value;
54561
54628
  errorP = validator(curValue);
54562
54629
  if (!(0,_lib__WEBPACK_IMPORTED_MODULE_0__.isPromise)(errorP)) {
54563
54630
  _context.n = 6;
@@ -54591,10 +54658,10 @@ var FormValidateFun = /*#__PURE__*/function () {
54591
54658
  case 10:
54592
54659
  _context.p = 10;
54593
54660
  _t2 = _context.v;
54594
- _iterator3.e(_t2);
54661
+ _iterator4.e(_t2);
54595
54662
  case 11:
54596
54663
  _context.p = 11;
54597
- _iterator3.f();
54664
+ _iterator4.f();
54598
54665
  return _context.f(11);
54599
54666
  case 12:
54600
54667
  _context.n = 2;
@@ -54605,10 +54672,10 @@ var FormValidateFun = /*#__PURE__*/function () {
54605
54672
  case 14:
54606
54673
  _context.p = 14;
54607
54674
  _t3 = _context.v;
54608
- _iterator2.e(_t3);
54675
+ _iterator3.e(_t3);
54609
54676
  case 15:
54610
54677
  _context.p = 15;
54611
- _iterator2.f();
54678
+ _iterator3.f();
54612
54679
  return _context.f(15);
54613
54680
  case 16:
54614
54681
  return _context.a(2, res);
@@ -54647,7 +54714,7 @@ var FormValidateFun = /*#__PURE__*/function () {
54647
54714
  key: "validateAllFields",
54648
54715
  value: function () {
54649
54716
  var _validateAllFields = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
54650
- var formValidateFunctions, errors, allPaths, _iterator4, _step4, path, fieldErrors, _t4;
54717
+ var formValidateFunctions, errors, allPaths, _iterator5, _step5, path, fieldErrors, _t4;
54651
54718
  return _regenerator().w(function (_context3) {
54652
54719
  while (1) switch (_context3.n) {
54653
54720
  case 0:
@@ -54656,15 +54723,15 @@ var FormValidateFun = /*#__PURE__*/function () {
54656
54723
  allPaths = formValidateFunctions.map(function (item) {
54657
54724
  return item.path;
54658
54725
  });
54659
- _iterator4 = _createForOfIteratorHelper(allPaths);
54726
+ _iterator5 = _createForOfIteratorHelper(allPaths);
54660
54727
  _context3.p = 1;
54661
- _iterator4.s();
54728
+ _iterator5.s();
54662
54729
  case 2:
54663
- if ((_step4 = _iterator4.n()).done) {
54730
+ if ((_step5 = _iterator5.n()).done) {
54664
54731
  _context3.n = 5;
54665
54732
  break;
54666
54733
  }
54667
- path = _step4.value;
54734
+ path = _step5.value;
54668
54735
  _context3.n = 3;
54669
54736
  return this.validate(path);
54670
54737
  case 3:
@@ -54679,10 +54746,10 @@ var FormValidateFun = /*#__PURE__*/function () {
54679
54746
  case 6:
54680
54747
  _context3.p = 6;
54681
54748
  _t4 = _context3.v;
54682
- _iterator4.e(_t4);
54749
+ _iterator5.e(_t4);
54683
54750
  case 7:
54684
54751
  _context3.p = 7;
54685
- _iterator4.f();
54752
+ _iterator5.f();
54686
54753
  return _context3.f(7);
54687
54754
  case 8:
54688
54755
  return _context3.a(2, errors);
@@ -54917,14 +54984,17 @@ function getFormDataPaths() {
54917
54984
  "use strict";
54918
54985
  __webpack_require__.r(__webpack_exports__);
54919
54986
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
54920
- /* harmony export */ getArrayItemPathByRealPath: () => (/* reexport safe */ _scheme__WEBPACK_IMPORTED_MODULE_3__.getArrayItemPathByRealPath),
54987
+ /* harmony export */ getArrayExtendBasePath: () => (/* reexport safe */ _scheme__WEBPACK_IMPORTED_MODULE_3__.getArrayExtendBasePath),
54988
+ /* harmony export */ getArrayExtendPath: () => (/* reexport safe */ _scheme__WEBPACK_IMPORTED_MODULE_3__.getArrayExtendPath),
54921
54989
  /* harmony export */ getDataByPath: () => (/* reexport safe */ _getDataByPath__WEBPACK_IMPORTED_MODULE_0__.getDataByPath),
54990
+ /* harmony export */ getExtendPath: () => (/* reexport safe */ _scheme__WEBPACK_IMPORTED_MODULE_3__.getExtendPath),
54922
54991
  /* harmony export */ getFieldPropsType: () => (/* reexport safe */ _fieldsProps__WEBPACK_IMPORTED_MODULE_4__.getFieldPropsType),
54923
54992
  /* harmony export */ getFormDataPaths: () => (/* reexport safe */ _getFormDataPaths__WEBPACK_IMPORTED_MODULE_2__.getFormDataPaths),
54924
- /* harmony export */ getRealPathByArrayItemPath: () => (/* reexport safe */ _scheme__WEBPACK_IMPORTED_MODULE_3__.getRealPathByArrayItemPath),
54993
+ /* harmony export */ getSortedExtendsPaths: () => (/* reexport safe */ _scheme__WEBPACK_IMPORTED_MODULE_3__.getSortedExtendsPaths),
54925
54994
  /* harmony export */ processScheme: () => (/* reexport safe */ _scheme__WEBPACK_IMPORTED_MODULE_3__.processScheme),
54926
54995
  /* harmony export */ processValidators: () => (/* reexport safe */ _scheme__WEBPACK_IMPORTED_MODULE_3__.processValidators),
54927
- /* harmony export */ setDataByPath: () => (/* reexport safe */ _setDataByPath__WEBPACK_IMPORTED_MODULE_1__.setDataByPath)
54996
+ /* harmony export */ setDataByPath: () => (/* reexport safe */ _setDataByPath__WEBPACK_IMPORTED_MODULE_1__.setDataByPath),
54997
+ /* harmony export */ setExtendValue: () => (/* reexport safe */ _scheme__WEBPACK_IMPORTED_MODULE_3__.setExtendValue)
54928
54998
  /* harmony export */ });
54929
54999
  /* harmony import */ var _getDataByPath__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getDataByPath */ "./src/hooks/forms/lib/getDataByPath.ts");
54930
55000
  /* harmony import */ var _setDataByPath__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setDataByPath */ "./src/hooks/forms/lib/setDataByPath.ts");
@@ -54948,18 +55018,27 @@ __webpack_require__.r(__webpack_exports__);
54948
55018
  "use strict";
54949
55019
  __webpack_require__.r(__webpack_exports__);
54950
55020
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
54951
- /* harmony export */ getArrayItemPathByRealPath: () => (/* binding */ getArrayItemPathByRealPath),
54952
- /* harmony export */ getRealPathByArrayItemPath: () => (/* binding */ getRealPathByArrayItemPath),
55021
+ /* harmony export */ getArrayExtendBasePath: () => (/* binding */ getArrayExtendBasePath),
55022
+ /* harmony export */ getArrayExtendPath: () => (/* binding */ getArrayExtendPath),
55023
+ /* harmony export */ getExtendPath: () => (/* binding */ getExtendPath),
55024
+ /* harmony export */ getSortedExtendsPaths: () => (/* binding */ getSortedExtendsPaths),
54953
55025
  /* harmony export */ processScheme: () => (/* binding */ processScheme),
54954
- /* harmony export */ processValidators: () => (/* binding */ processValidators)
55026
+ /* harmony export */ processValidators: () => (/* binding */ processValidators),
55027
+ /* harmony export */ setExtendValue: () => (/* binding */ setExtendValue)
54955
55028
  /* harmony export */ });
54956
55029
  /* harmony import */ var _validateFunctions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../validateFunctions */ "./src/hooks/forms/validateFunctions/index.ts");
55030
+ /* harmony import */ var _hooks_forms_lib_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/hooks/forms/lib/utils */ "./src/hooks/forms/lib/utils.ts");
55031
+ /* harmony import */ var _hooks_forms_lib_getDataByPath__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/hooks/forms/lib/getDataByPath */ "./src/hooks/forms/lib/getDataByPath.ts");
55032
+ /* harmony import */ var _hooks_forms_lib_setDataByPath__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/hooks/forms/lib/setDataByPath */ "./src/hooks/forms/lib/setDataByPath.ts");
55033
+ var _excluded = ["default"];
54957
55034
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
54958
55035
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
54959
55036
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
54960
55037
  function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
54961
55038
  function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
54962
55039
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
55040
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
55041
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
54963
55042
  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; }
54964
55043
  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; }
54965
55044
  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; }
@@ -54967,6 +55046,9 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
54967
55046
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
54968
55047
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
54969
55048
 
55049
+
55050
+
55051
+
54970
55052
  function validatorWrapper(validator, message) {
54971
55053
  var required = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
54972
55054
  return function (value) {
@@ -55056,8 +55138,14 @@ function processAnotherValidators(config, _) {
55056
55138
  return resValidators;
55057
55139
  }
55058
55140
  /** Полностью заменяет валидаторы поля */
55059
- function processValidators(path, config, options) {
55060
- var formValidateFun = options.formValidateFun;
55141
+ function processValidators(path, _config, options) {
55142
+ var formValidateFun = options.formValidateFun,
55143
+ form = options.form;
55144
+ var defaultValue = _config["default"],
55145
+ config = _objectWithoutProperties(_config, _excluded);
55146
+ if (defaultValue !== undefined) {
55147
+ form.setDefaultValue(path, defaultValue);
55148
+ }
55061
55149
  var base = processBaseValidators(config, options);
55062
55150
  var another = processAnotherValidators(config, options);
55063
55151
  var res = [].concat(_toConsumableArray(base), _toConsumableArray(another)).sort(function (a, b) {
@@ -55076,18 +55164,45 @@ function processScheme(scheme, options) {
55076
55164
  processValidators(path, config, options);
55077
55165
  }
55078
55166
  }
55079
- function getRealPathByArrayItemPath(path) {
55167
+ function getArrayExtendBasePath(path) {
55080
55168
  if (path.endsWith('[*]')) {
55081
55169
  return path.slice(0, -3);
55082
55170
  }
55083
55171
  return undefined;
55084
55172
  }
55085
- function getArrayItemPathByRealPath(path) {
55086
- if (/\[\d+\]$/.test(path)) {
55173
+ function getArrayExtendPath(path) {
55174
+ if (/\[(?:\d+|\*)\]$/.test(path)) {
55087
55175
  return path.slice(0, -3).concat('[*]');
55088
55176
  }
55089
55177
  return undefined;
55090
55178
  }
55179
+ function getExtendPath(path) {
55180
+ var arrayExtendPath = getArrayExtendPath(path);
55181
+ return arrayExtendPath || path;
55182
+ }
55183
+ function getSortedExtendsPaths(defaultValues) {
55184
+ var keys = Object.keys(defaultValues);
55185
+ var sortedKeys = keys.sort(function (a, b) {
55186
+ var deepA = a.split(/\[\d+\]|\[\*\]|\./).length;
55187
+ var deepB = b.split(/\[\d+\]|\[\*\]|\./).length;
55188
+ return deepA - deepB;
55189
+ });
55190
+ return sortedKeys;
55191
+ }
55192
+ function setExtendValue(formData, path, value) {
55193
+ var newFormData = (0,_hooks_forms_lib_utils__WEBPACK_IMPORTED_MODULE_1__.copyData)(formData);
55194
+ var extendArrayPath = getArrayExtendBasePath(path);
55195
+ if (extendArrayPath) {
55196
+ var curArrayValue = (0,_hooks_forms_lib_getDataByPath__WEBPACK_IMPORTED_MODULE_2__.getDataByPath)(newFormData, extendArrayPath) || [];
55197
+ var newArrayValue = curArrayValue.map(function (item) {
55198
+ return item || value;
55199
+ });
55200
+ newFormData = (0,_hooks_forms_lib_setDataByPath__WEBPACK_IMPORTED_MODULE_3__.setDataByPath)(newFormData, extendArrayPath, newArrayValue);
55201
+ } else {
55202
+ newFormData = (0,_hooks_forms_lib_setDataByPath__WEBPACK_IMPORTED_MODULE_3__.setDataByPath)(newFormData, path, value);
55203
+ }
55204
+ return newFormData;
55205
+ }
55091
55206
 
55092
55207
  /***/ }),
55093
55208
 
@@ -55419,10 +55534,13 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
55419
55534
  * };
55420
55535
  *
55421
55536
  * export function FormPage() {
55422
- * const { register, formData, errors, isFormValid } = useForm<TestFormType>({ scheme });
55537
+ * const { register, registerForm, formData, errors, isFormValid } = useForm<TestFormType>({
55538
+ * scheme,
55539
+ * onSubmit: (data) => console.log('Submit data:', data),
55540
+ * });
55423
55541
  *
55424
55542
  * return (
55425
- * <div>
55543
+ * <form {...registerForm()}>
55426
55544
  * <FormField
55427
55545
  * {...register('baseInput', { required: { setting: true, message: 'Обязательное поле' } })}
55428
55546
  * label="base input"
@@ -55453,8 +55571,9 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
55453
55571
  * hint="Select с выбором нескольких элементов"
55454
55572
  * />
55455
55573
  *
55456
- * <button disabled={!isFormValid()}>Отправить</button>
55457
- * </div>
55574
+ * <button type="submit">Отправить</button>
55575
+ * <button type="reset">Сбросить</button>
55576
+ * </form>
55458
55577
  * );
55459
55578
  * }
55460
55579
  * ```
@@ -55480,64 +55599,45 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
55480
55599
  * | `clearForm()` | `() => void` | Сбрасывает все значения формы |
55481
55600
  * | `clearErrors()` | `() => void` | Очищает все ошибки |
55482
55601
  * | `register(path, config?)` | `(path, config?) => FieldPropsType` | Регистрирует поле и возвращает пропсы для компонента |
55602
+ * | `registerForm()` | `() => Pick<React.ComponentProps<'form'>, 'onSubmit' | 'onReset' | 'noValidate'>` | Возвращает обработчики и настройки для `<form>` |
55483
55603
  *
55484
55604
  * ---
55485
- * @template Form — объект, описывающий форму.
55486
- * @template T — частичный тип формы (используется для инициализации, по умолчанию `Partial<Form>`).
55487
- *
55488
- * @param {Object} [params]
55489
- * @param {T} [params.initFormData] — начальные данные формы.
55490
- * @param {FormSchemeType<T>} [params.scheme] — схема валидации формы.
55491
- *
55492
- * @returns {{
55493
- * /** Текущее состояние формы (реактивное) *\/
55494
- * formData: T;
55495
- *
55496
- * /** Установка полного состояния формы *\/
55497
- * setFormData: (data: T) => void;
55498
- *
55499
- * /** Получение текущего состояния формы *\/
55500
- * getFormData: () => T;
55501
- *
55502
- * /** Все ошибки формы *\/
55503
- * errors: FormErrorsType<T>;
55504
- *
55505
- * /** Замена всех ошибок формы *\/
55506
- * setErrors: (errors: FormErrorsType<T>) => void;
55507
- *
55508
- * /** Получение значения поля *\/
55509
- * getField: <P extends FormPath<T>>(path: P) => FormValue<T, P>;
55510
- *
55511
- * /** Установка значения поля *\/
55512
- * setField: <P extends FormPath<T>>(path: P, value: FormValue<T, P> | undefined) => void;
55605
+ * ### 🧠 `registerForm`
55513
55606
  *
55514
- * /** Получение ошибки конкретного поля *\/
55515
- * getError: <P extends FormPath<T>>(path: P) => FormErrorType;
55607
+ * Функция `registerForm` позволяет удобно подключить форму к системе валидации и управления состоянием,
55608
+ * не теряя контроль над поведением `onSubmit` и `onReset`.
55516
55609
  *
55517
- * /** Установка ошибки поля вручную *\/
55518
- * setError: <P extends FormPath<T>>(path: P, error: FormErrorType) => void;
55519
- *
55520
- * /** Проверка конкретного поля с обновлением `errors` *\/
55521
- * highlightField: <P extends GetFormValidateFunPathType<T>>(path: P) => Promise<void>;
55522
- *
55523
- * /** Проверка всех полей формы с обновлением `errors` *\/
55524
- * highlightFormErrors: () => Promise<void>;
55610
+ * #### Пример:
55611
+ * ```tsx
55612
+ * const { register, registerForm } = useForm<MyFormType>({
55613
+ * onSubmit: (data) => console.log('Отправлено:', data),
55614
+ * });
55525
55615
  *
55526
- * /** Проверка валидности конкретного поля (без обновления `errors`) *\/
55527
- * isFieldValid: <P extends GetFormValidateFunPathType<T>>(path: P) => boolean;
55616
+ * return (
55617
+ * <form {...registerForm()}>
55618
+ * <FormField {...register('username')} label="Имя" />
55619
+ * <FormField {...register('email')} label="Email" />
55620
+ * <button type="submit">Отправить</button>
55621
+ * <button type="reset">Сбросить</button>
55622
+ * </form>
55623
+ * );
55624
+ * ```
55528
55625
  *
55529
- * /** Проверка валидности всей формы (без обновления `errors`) *\/
55530
- * isFormValid: () => boolean;
55626
+ * #### Поведение:
55627
+ * - `onSubmit`: выполняет валидацию всей формы (`isFormValid()`), при успехе вызывает переданный `onSubmit`;
55628
+ * - `onReset`: предотвращает нативный сброс, очищает значения (`clearForm()`) и ошибки (`clearErrors()`);
55629
+ * - `noValidate: true`: отключает нативную HTML5-валидацию, чтобы не мешала кастомной логике.
55531
55630
  *
55532
- * /** Сброс всех значений формы *\/
55533
- * clearForm: () => void;
55631
+ * ---
55632
+ * @template Form — объект, описывающий форму.
55633
+ * @template T — частичный тип формы (используется для инициализации, по умолчанию `Partial<Form>`).
55534
55634
  *
55535
- * /** Очистка всех ошибок *\/
55536
- * clearErrors: () => void;
55635
+ * @param {Object} [params]
55636
+ * @param {T} [params.initFormData] — начальные данные формы.
55637
+ * @param {FormSchemeType<T>} [params.scheme] — схема валидации формы.
55638
+ * @param {(data: Form) => void | Promise<void>} [params.onSubmit] — колбэк, вызываемый при успешной отправке формы.
55537
55639
  *
55538
- * /** Регистрация поля с привязкой валидации и значений *\/
55539
- * register: <P extends FormPath<T>>(path: P, config?: FormSchemeType<T>[P]) => FieldPropsType<FormValue<T, P>>;
55540
- * }}
55640
+ * @returns {object} Объект с методами и состоянием формы (см. таблицу выше).
55541
55641
  */
55542
55642
  function useForm() {
55543
55643
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
@@ -55545,7 +55645,8 @@ function useForm() {
55545
55645
  }
55546
55646
  var _args$ = args[0],
55547
55647
  initFormData = _args$.initFormData,
55548
- scheme = _args$.scheme;
55648
+ scheme = _args$.scheme,
55649
+ _onSubmit = _args$.onSubmit;
55549
55650
  var _useSyncedStateRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useSyncedStateRef)(new _classes__WEBPACK_IMPORTED_MODULE_2__.Form(initFormData)),
55550
55651
  _useSyncedStateRef2 = _slicedToArray(_useSyncedStateRef, 3),
55551
55652
  form = _useSyncedStateRef2[0],
@@ -55566,6 +55667,8 @@ function useForm() {
55566
55667
  form: getForm(),
55567
55668
  formValidateFun: getValidateFun()
55568
55669
  });
55670
+ getForm().applyDefaultValues();
55671
+ triggerForm();
55569
55672
  }
55570
55673
  }, [scheme]);
55571
55674
  var triggerFormErrors = function triggerFormErrors() {
@@ -55658,6 +55761,16 @@ function useForm() {
55658
55761
  getFormErrors().setErrors(errors);
55659
55762
  triggerFormErrors();
55660
55763
  };
55764
+ var clearForm = function clearForm() {
55765
+ var form = getForm();
55766
+ form.clear();
55767
+ triggerForm();
55768
+ };
55769
+ var clearErrors = function clearErrors() {
55770
+ var errors = getFormErrors();
55771
+ errors.clear();
55772
+ triggerFormErrors();
55773
+ };
55661
55774
  var register = function register(path, config) {
55662
55775
  var resConfig = _objectSpread(_objectSpread({}, config || {}), (scheme === null || scheme === void 0 ? void 0 : scheme[path]) || {});
55663
55776
  (0,_lib__WEBPACK_IMPORTED_MODULE_3__.processValidators)(path, resConfig, {
@@ -55674,15 +55787,42 @@ function useForm() {
55674
55787
  highlightField: highlightField
55675
55788
  });
55676
55789
  };
55677
- var clearForm = function clearForm() {
55678
- var form = getForm();
55679
- form.clear();
55680
- triggerForm();
55681
- };
55682
- var clearErrors = function clearErrors() {
55683
- var errors = getFormErrors();
55684
- errors.clear();
55685
- triggerFormErrors();
55790
+ var registerForm = function registerForm() {
55791
+ return {
55792
+ noValidate: true,
55793
+ onReset: function onReset(event) {
55794
+ event.preventDefault();
55795
+ clearForm();
55796
+ clearErrors();
55797
+ },
55798
+ onSubmit: function () {
55799
+ var _onSubmit2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(event) {
55800
+ var isValidFields, resData;
55801
+ return _regenerator().w(function (_context3) {
55802
+ while (1) switch (_context3.n) {
55803
+ case 0:
55804
+ event.preventDefault();
55805
+ _context3.n = 1;
55806
+ return isFormValid();
55807
+ case 1:
55808
+ isValidFields = _context3.v;
55809
+ if (isValidFields) {
55810
+ resData = getForm().getFormData();
55811
+ _onSubmit === null || _onSubmit === void 0 || _onSubmit(resData);
55812
+ } else {
55813
+ highlightFormErrors();
55814
+ }
55815
+ case 2:
55816
+ return _context3.a(2);
55817
+ }
55818
+ }, _callee3);
55819
+ }));
55820
+ function onSubmit(_x2) {
55821
+ return _onSubmit2.apply(this, arguments);
55822
+ }
55823
+ return onSubmit;
55824
+ }()
55825
+ };
55686
55826
  };
55687
55827
  return {
55688
55828
  formData: form.formData,
@@ -55700,7 +55840,8 @@ function useForm() {
55700
55840
  isFormValid: isFormValid,
55701
55841
  clearForm: clearForm,
55702
55842
  clearErrors: clearErrors,
55703
- register: register
55843
+ register: register,
55844
+ registerForm: registerForm
55704
55845
  };
55705
55846
  }
55706
55847
 
@@ -62415,7 +62556,9 @@ var Button = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(func
62415
62556
  ref: ref
62416
62557
  });
62417
62558
  }
62418
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", _objectSpread(_objectSpread({}, props), {}, {
62559
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", _objectSpread(_objectSpread({
62560
+ type: 'button'
62561
+ }, props), {}, {
62419
62562
  disabled: disabled,
62420
62563
  className: getClassName(),
62421
62564
  ref: ref,
@@ -63224,6 +63367,7 @@ function Checkbox(_ref) {
63224
63367
  onBlur: function onBlur() {
63225
63368
  return setIsFocused(false);
63226
63369
  },
63370
+ type: 'button',
63227
63371
  className: (0,clsx__WEBPACK_IMPORTED_MODULE_2__["default"])(_styles__WEBPACK_IMPORTED_MODULE_4__.CheckboxStyle.checkbox, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, _styles__WEBPACK_IMPORTED_MODULE_4__.CheckboxStyle.error, error), _styles__WEBPACK_IMPORTED_MODULE_4__.CheckboxStyle.disabled, disabled), _styles__WEBPACK_IMPORTED_MODULE_4__.CheckboxStyle.widthFill, width === 'fill'), _styles__WEBPACK_IMPORTED_MODULE_4__.CheckboxStyle.widthHug, width === 'hug'), _styles__WEBPACK_IMPORTED_MODULE_4__.CheckboxStyle.heightFill, height === 'fill'), _styles__WEBPACK_IMPORTED_MODULE_4__.CheckboxStyle.heightHug, height === 'hug'), additionStyle),
63228
63372
  children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_3__.CheckboxMark, {
63229
63373
  type: type,
@@ -74023,6 +74167,7 @@ function Toggle(props) {
74023
74167
  },
74024
74168
  onClick: onClick,
74025
74169
  disabled: disabled,
74170
+ type: 'button',
74026
74171
  className: (0,clsx__WEBPACK_IMPORTED_MODULE_2__["default"])(_styles__WEBPACK_IMPORTED_MODULE_4__.ToggleStyle.toggle, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, _styles__WEBPACK_IMPORTED_MODULE_4__.ToggleStyle.widthFill, width === 'fill'), _styles__WEBPACK_IMPORTED_MODULE_4__.ToggleStyle.widthHug, width === 'hug'), _styles__WEBPACK_IMPORTED_MODULE_4__.ToggleStyle.heightFill, height === 'fill'), _styles__WEBPACK_IMPORTED_MODULE_4__.ToggleStyle.heightHug, height === 'hug'), _styles__WEBPACK_IMPORTED_MODULE_4__.ToggleStyle.disabled, disabled), _styles__WEBPACK_IMPORTED_MODULE_4__.ToggleStyle.hover, isHover), _styles__WEBPACK_IMPORTED_MODULE_4__.ToggleStyle.active, active), _styles__WEBPACK_IMPORTED_MODULE_4__.ToggleStyle.dark, theme === "dark"), additionStyle),
74027
74172
  children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_3__.ToggleBase, {
74028
74173
  active: active,
@@ -74183,7 +74328,9 @@ function ToggleBase(props) {
74183
74328
  var getClassName = function getClassName() {
74184
74329
  return (0,clsx__WEBPACK_IMPORTED_MODULE_2__["default"])(_styles__WEBPACK_IMPORTED_MODULE_3__.ToggleBaseStyle.toggleBase, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, _styles__WEBPACK_IMPORTED_MODULE_3__.ToggleBaseStyle.active, active), _styles__WEBPACK_IMPORTED_MODULE_3__.ToggleBaseStyle.error, error), _styles__WEBPACK_IMPORTED_MODULE_3__.ToggleBaseStyle.hover, hover), _styles__WEBPACK_IMPORTED_MODULE_3__.ToggleBaseStyle.disabled, disabled), _styles__WEBPACK_IMPORTED_MODULE_3__.ToggleBaseStyle.large, size === 'large'), _styles__WEBPACK_IMPORTED_MODULE_3__.ToggleBaseStyle.medium, size === 'medium'), _styles__WEBPACK_IMPORTED_MODULE_3__.ToggleBaseStyle.dark, theme === 'dark'));
74185
74330
  };
74186
- var componentWrapper = isButton ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", {}) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {});
74331
+ var componentWrapper = isButton ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", {
74332
+ type: 'button'
74333
+ }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {});
74187
74334
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().cloneElement(componentWrapper, {
74188
74335
  children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
74189
74336
  children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {