@itcase/forms 1.1.55 → 1.1.57

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.
@@ -5,40 +5,38 @@ var React = require('react');
5
5
  var finalForm = require('final-form');
6
6
  var reactFinalForm = require('react-final-form');
7
7
  var clsx = require('clsx');
8
- var Checkbox = require('@itcase/ui/components/Checkbox');
8
+ var Checkbox = require('@itcase/ui-web/components/Checkbox');
9
9
  var camelCase = require('lodash/camelCase');
10
10
  var snakeCase = require('lodash/snakeCase');
11
- var Divider = require('@itcase/ui/components/Divider');
12
- var Text = require('@itcase/ui/components/Text');
13
- var useDeviceTargetClass = require('@itcase/ui/hooks/useDeviceTargetClass');
14
- var useStyles = require('@itcase/ui/hooks/useStyles');
15
- var Chips = require('@itcase/ui/components/Chips');
16
- var Choice = require('@itcase/ui/components/Choice');
17
- var Code = require('@itcase/ui/components/Code');
18
- var Icon = require('@itcase/ui/components/Icon');
19
- var Dadata = require('@itcase/ui/components/Dadata');
20
- var DatePicker = require('@itcase/ui/components/DatePicker');
21
- var useDevicePropsGenerator = require('@itcase/ui/hooks/useDevicePropsGenerator');
11
+ var Divider = require('@itcase/ui-web/components/Divider');
12
+ var Text = require('@itcase/ui-web/components/Text');
13
+ var hooks = require('@itcase/ui-core/hooks');
22
14
  var axios = require('axios');
15
+ var createDecorator = require('final-form-focus');
16
+ var Chips = require('@itcase/ui-web/components/Chips');
17
+ var Choice = require('@itcase/ui-web/components/Choice');
18
+ var Code = require('@itcase/ui-web/components/Code');
19
+ var Icon = require('@itcase/ui-web/components/Icon');
20
+ var Dadata = require('@itcase/ui-web/components/Dadata');
21
+ var DatePicker = require('@itcase/ui-web/components/DatePicker');
23
22
  var fileSelector = require('file-selector');
24
23
  var castArray = require('lodash/castArray');
25
24
  var reactDropzone = require('react-dropzone');
26
25
  var common = require('@itcase/common');
27
- var Button = require('@itcase/ui/components/Button');
28
- var Loader = require('@itcase/ui/components/Loader');
29
- var Title = require('@itcase/ui/components/Title');
30
- var Input = require('@itcase/ui/components/Input');
31
- var InputNumber = require('@itcase/ui/components/InputNumber');
26
+ var Button = require('@itcase/ui-web/components/Button');
27
+ var Loader = require('@itcase/ui-web/components/Loader');
28
+ var Title = require('@itcase/ui-web/components/Title');
29
+ var Input = require('@itcase/ui-web/components/Input');
30
+ var InputNumber = require('@itcase/ui-web/components/InputNumber');
32
31
  var reactImask = require('react-imask');
33
- var InputPassword = require('@itcase/ui/components/InputPassword');
34
- var Radio = require('@itcase/ui/components/Radio');
35
- var Segmented = require('@itcase/ui/components/Segmented');
36
- var Select = require('@itcase/ui/components/Select');
37
- var Switch = require('@itcase/ui/components/Switch');
38
- var Textarea = require('@itcase/ui/components/Textarea');
39
- var Group = require('@itcase/ui/components/Group');
40
- var Notification = require('@itcase/ui/components/Notification');
41
- var createDecorator = require('final-form-focus');
32
+ var InputPassword = require('@itcase/ui-web/components/InputPassword');
33
+ var Radio = require('@itcase/ui-web/components/Radio');
34
+ var Segmented = require('@itcase/ui-web/components/Segmented');
35
+ var Select = require('@itcase/ui-web/components/Select');
36
+ var Switch = require('@itcase/ui-web/components/Switch');
37
+ var Textarea = require('@itcase/ui-web/components/Textarea');
38
+ var Group = require('@itcase/ui-web/components/Group');
39
+ var Notification = require('@itcase/ui-web/components/Notification');
42
40
 
43
41
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
44
42
 
@@ -47,8 +45,8 @@ var clsx__default = /*#__PURE__*/_interopDefault(clsx);
47
45
  var camelCase__default = /*#__PURE__*/_interopDefault(camelCase);
48
46
  var snakeCase__default = /*#__PURE__*/_interopDefault(snakeCase);
49
47
  var axios__default = /*#__PURE__*/_interopDefault(axios);
50
- var castArray__default = /*#__PURE__*/_interopDefault(castArray);
51
48
  var createDecorator__default = /*#__PURE__*/_interopDefault(createDecorator);
49
+ var castArray__default = /*#__PURE__*/_interopDefault(castArray);
52
50
 
53
51
  var phoneValidation = function phoneValidation(value) {
54
52
  if (!value) {
@@ -485,9 +483,9 @@ var defaultFieldSizeXL = Object.assign({
485
483
  }, defaultFieldProps);
486
484
 
487
485
  function FieldWrapperBase(props) {
488
- var _React$createElement, _React$createElement2;
489
486
  var id = props.id,
490
487
  className = props.className,
488
+ dataTestId = props.dataTestId,
491
489
  dataTour = props.dataTour,
492
490
  type = props.type,
493
491
  label = props.label,
@@ -524,7 +522,7 @@ function FieldWrapperBase(props) {
524
522
  showDivider = props.showDivider,
525
523
  showMessage = props.showMessage,
526
524
  _props$tag = props.tag,
527
- Tag = _props$tag === void 0 ? "div" : _props$tag,
525
+ Tag = _props$tag === void 0 ? 'div' : _props$tag,
528
526
  before = props.before,
529
527
  after = props.after,
530
528
  isDisabled = props.isDisabled,
@@ -534,52 +532,52 @@ function FieldWrapperBase(props) {
534
532
  isValidState = props.isValidState,
535
533
  children = props.children;
536
534
  var formFieldClass = React.useMemo(function () {
537
- return clsx__default.default(className, isValidState && "form__item_state_success", isRequired && "form__item_state_required", isDisabled && "form__item_state_disabled", metaActive && "form__item_state_focus", inputValue && "form__item_state_filled", isErrorState && "form__item_state_" + errorKey);
535
+ return clsx__default.default(className, isValidState && 'form__item_state_success', isRequired && 'form__item_state_required', isDisabled && 'form__item_state_disabled', metaActive && 'form__item_state_focus', inputValue && 'form__item_state_filled', isErrorState && "form__item_state_" + errorKey);
538
536
  }, [className, isErrorState, isValidState, isRequired, metaActive, inputValue, isDisabled, metaError]);
539
537
  var fieldClass = React.useMemo(function () {
540
538
  return clsx__default.default(fieldClassName, isValidState && fieldClassName + "_state_success", metaActive && fieldClassName + "_state_focus", inputValue && fieldClassName + "_state_filled", isDisabled && fieldClassName + "_state_disabled", isErrorState && fieldClassName + "_state_" + errorKey);
541
539
  }, [fieldClassName, isErrorState, isValidState, metaActive, inputValue, isDisabled, metaError]);
542
- var sizeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
543
- prefix: "form-field_size_",
544
- propsKey: "size"
540
+ var sizeClass = hooks.useDeviceTargetClass(props, {
541
+ prefix: 'form-field_size_',
542
+ propsKey: 'size'
545
543
  });
546
- var fillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
547
- prefix: "fill_",
548
- propsKey: "fill"
544
+ var fillClass = hooks.useDeviceTargetClass(props, {
545
+ prefix: 'fill_',
546
+ propsKey: 'fill'
549
547
  });
550
- var inputFillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
551
- prefix: "fill_",
552
- propsKey: "inputFill"
548
+ var inputFillClass = hooks.useDeviceTargetClass(props, {
549
+ prefix: 'fill_',
550
+ propsKey: 'inputFill'
553
551
  });
554
- var shapeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
555
- prefix: "form-field_shape_",
556
- propsKey: "shape"
552
+ var shapeClass = hooks.useDeviceTargetClass(props, {
553
+ prefix: 'form-field_shape_',
554
+ propsKey: 'shape'
557
555
  });
558
- var inputShapeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
559
- prefix: "form-field__item-value_shape_",
560
- propsKey: "inputShape"
556
+ var inputShapeClass = hooks.useDeviceTargetClass(props, {
557
+ prefix: 'form-field__item-value_shape_',
558
+ propsKey: 'inputShape'
561
559
  });
562
- var directionClass = useDeviceTargetClass.useDeviceTargetClass(props, {
563
- prefix: "direction_",
564
- propsKey: "direction"
560
+ var directionClass = hooks.useDeviceTargetClass(props, {
561
+ prefix: 'direction_',
562
+ propsKey: 'direction'
565
563
  });
566
- var widthClass = useDeviceTargetClass.useDeviceTargetClass(props, {
567
- prefix: "width_",
568
- propsKey: "width"
564
+ var widthClass = hooks.useDeviceTargetClass(props, {
565
+ prefix: 'width_',
566
+ propsKey: 'width'
569
567
  });
570
- var _useStyles = useStyles.useStyles(props),
568
+ var _useStyles = hooks.useStyles(props),
571
569
  formFieldStyles = _useStyles.styles;
572
570
  var errorTextSize = props[errorKey + "MessageTextSize"];
573
571
  var errorTextColor = props[errorKey + "MessageTextColor"];
574
572
  var errorTextWeight = props[errorKey + "MessageTextWeight"];
575
573
  return /*#__PURE__*/React__default.default.createElement(Tag, {
576
- className: clsx__default.default(formFieldClass, "form__item", "form-field", type && "form-field_type_" + type, sizeClass, fillClass, shapeClass, isDisabled && "form-field_state_disabled", isHidden && "form-field_state_hidden", directionClass, widthClass),
577
- "data-testid": inputName + "-field",
574
+ className: clsx__default.default(formFieldClass, 'form__item', 'form-field', type && "form-field_type_" + type, sizeClass, fillClass, shapeClass, isDisabled && "form-field_state_disabled", isHidden && "form-field_state_hidden", directionClass, widthClass),
575
+ "data-testid": dataTestId,
578
576
  "data-tour": dataTour,
579
577
  style: formFieldStyles
580
578
  }, before, (label || labelHidden) && /*#__PURE__*/React__default.default.createElement("div", {
581
- className: clsx__default.default("form-field__label"),
582
- "data-testid": inputName + "-field-label",
579
+ className: clsx__default.default('form-field__label'),
580
+ "data-testid": dataTestId + "Label",
583
581
  htmlFor: id
584
582
  }, /*#__PURE__*/React__default.default.createElement(Text.Text, {
585
583
  size: labelTextSize,
@@ -589,15 +587,15 @@ function FieldWrapperBase(props) {
589
587
  sizeTablet: labelTextSizeTablet
590
588
  }, label, labelHidden && "\xA0")), desc && /*#__PURE__*/React__default.default.createElement("div", {
591
589
  className: "form-field__desc",
592
- "data-testid": inputName + "-field-desc"
590
+ "data-testid": dataTestId + "Desc"
593
591
  }, /*#__PURE__*/React__default.default.createElement(Text.Text, {
594
592
  size: descTextSize,
595
593
  textColor: descTextColor,
596
594
  textWeight: descTextWeight
597
595
  }, desc)), /*#__PURE__*/React__default.default.createElement("div", {
598
- className: clsx__default.default("form-field__content", inputFillClass, inputShapeClass)
596
+ className: clsx__default.default('form-field__content', inputFillClass, inputShapeClass)
599
597
  }, /*#__PURE__*/React__default.default.createElement("div", {
600
- className: clsx__default.default("form-field__content-inner", fieldClass)
598
+ className: clsx__default.default('form-field__content-inner', fieldClass)
601
599
  }, beforeItem, children, afterItem), showDivider && /*#__PURE__*/React__default.default.createElement(Divider.Divider, {
602
600
  className: "form-field__item-divider",
603
601
  width: dividerWidth,
@@ -607,16 +605,23 @@ function FieldWrapperBase(props) {
607
605
  })), showMessage && /*#__PURE__*/React__default.default.createElement("div", {
608
606
  className: "form-field__message",
609
607
  "data-testid": inputName + "-field-message"
610
- }, isErrorState && errorMessage && /*#__PURE__*/React__default.default.createElement(Text.Text, (_React$createElement = {
608
+ }, isErrorState && errorMessage && /*#__PURE__*/React__default.default.createElement(Text.Text, {
611
609
  id: inputName + "-error",
612
610
  className: "form-field__message-item form-field__message-item_type-error",
613
- dataTestId: inputName + "FieldMessageError"
614
- }, _React$createElement["dataTestId"] = inputName + "-field-message-error", _React$createElement.size = errorTextSize, _React$createElement.textColor = errorTextColor, _React$createElement.textWeight = errorTextWeight, _React$createElement), errorMessage), Boolean(helpText) && (!isErrorState || !errorMessage) && /*#__PURE__*/React__default.default.createElement(Text.Text, (_React$createElement2 = {
611
+ dataTestId: dataTestId + "MessageError",
612
+ size: errorTextSize,
613
+ textColor: errorTextColor,
614
+ textWeight: errorTextWeight
615
+ }, errorMessage), Boolean(helpText) && (!isErrorState || !errorMessage) && /*#__PURE__*/React__default.default.createElement(Text.Text, {
615
616
  className: "form-field__message-item form-field__message-item_type_help-text",
616
- dataTestId: inputName + "FieldMessageHelpText"
617
- }, _React$createElement2["dataTestId"] = inputName + "-field-message-help-text", _React$createElement2.size = helpTextSize, _React$createElement2.textColor = isValidState ? helpTextColorSuccess : helpTextColor, _React$createElement2.textWeight = helpTextWeight, _React$createElement2.sizeMobile = helpTextSizeMobile, _React$createElement2), helpText), (!isErrorState && !helpText || isErrorState && !helpText && !errorMessage) && /*#__PURE__*/React__default.default.createElement(Text.Text, {
617
+ dataTestId: dataTestId + "MessageHelpText",
618
+ size: helpTextSize,
619
+ textColor: isValidState ? helpTextColorSuccess : helpTextColor,
620
+ textWeight: helpTextWeight,
621
+ sizeMobile: helpTextSizeMobile
622
+ }, helpText), (!isErrorState && !helpText || isErrorState && !helpText && !errorMessage) && /*#__PURE__*/React__default.default.createElement(Text.Text, {
618
623
  className: "form-field__message-item form-field__message-item_type_help-text",
619
- dataTestId: inputName + "field-message-help-text",
624
+ dataTestId: dataTestId + "MessageHelpText",
620
625
  size: messageTextSize
621
626
  }, "\xA0")), after);
622
627
  }
@@ -633,16 +638,150 @@ function FieldWrapper(props) {
633
638
  return /*#__PURE__*/React__default.default.createElement(FieldWrapperBase, props);
634
639
  }
635
640
 
641
+ var focusOnError = function focusOnError(formElementsList, errors) {
642
+ var selectsIds = Object.keys(errors).map(function (fieldName) {
643
+ if (fieldName === finalForm.FORM_ERROR) {
644
+ // TODO: get from somewhere
645
+ return 'notification__item_status_error';
646
+ }
647
+ return "react-select-id_" + fieldName + "-input";
648
+ });
649
+ var errorFieldElement = formElementsList.find(function (element) {
650
+ if (element.name) {
651
+ return finalForm.getIn(errors, element.name);
652
+ } else {
653
+ return selectsIds.includes(element.id);
654
+ }
655
+ });
656
+ var errorsList = Object.keys(errors);
657
+ if (!errorFieldElement && errorsList.length) {
658
+ var errorElement;
659
+ try {
660
+ var fieldName = errorsList[0];
661
+ if (fieldName === finalForm.FORM_ERROR) {
662
+ errorElement = document.querySelector('notification__item_status_error');
663
+ } else {
664
+ errorElement = document.querySelector("#" + fieldName + "-error");
665
+ if (!errorElement) {
666
+ errorElement = document.querySelector("#id_" + fieldName);
667
+ }
668
+ }
669
+ } catch (err) {
670
+ console.warn(err);
671
+ }
672
+ if (errorElement) {
673
+ errorElement.scrollIntoView({
674
+ block: 'center'
675
+ }); // , behavior: 'smooth'
676
+ }
677
+ }
678
+
679
+ // The field is covered by the header because header is "sticky",
680
+ // that's we scroll manually so that the field falls into the center of the visible area
681
+ if (errorFieldElement) {
682
+ errorFieldElement.scrollIntoView({
683
+ block: 'center'
684
+ });
685
+ }
686
+ return null;
687
+ };
688
+ var focusOnErrorDecorator = createDecorator__default.default(null, focusOnError);
689
+ var setErrorsMutator = function setErrorsMutator(args, state) {
690
+ var fieldName = args[0],
691
+ data = args[1];
692
+ var submitError = data.submitError;
693
+ var fieldError = data.error;
694
+ if (fieldName === 'non_field_errors' || fieldName === finalForm.FORM_ERROR) {
695
+ // state.formState.invalid = true
696
+ // state.formState.valid = false
697
+ state.formState.error = fieldError;
698
+ state.formState.submitError = submitError;
699
+ } else if (fieldName in state.fields) {
700
+ state.fields[fieldName].touched = true;
701
+
702
+ // TODO: make clear error not by empty string check
703
+ if (fieldError || fieldError === '') {
704
+ var _Object$assign;
705
+ var errorsState = Object.assign({}, state.formState.errors, (_Object$assign = {}, _Object$assign[fieldName] = fieldError, _Object$assign));
706
+ state.fields[fieldName].error = fieldError;
707
+ state.formState.errors = errorsState;
708
+ }
709
+
710
+ // TODO: make clear error not by empty string check
711
+ if (submitError || submitError === '') {
712
+ var _Object$assign2;
713
+ var submitErrorsState = Object.assign({}, state.formState.submitErrors, (_Object$assign2 = {}, _Object$assign2[fieldName] = submitError, _Object$assign2));
714
+ state.fields[fieldName].submitFailed = true;
715
+ state.fields[fieldName].submitSucceeded = false;
716
+ state.fields[fieldName].submitError = submitError;
717
+ state.formState.submitErrors = submitErrorsState;
718
+ state.formState.submitFailed = true;
719
+ state.formState.submitSucceeded = false;
720
+ state.formState.lastSubmittedValues = state.formState.values;
721
+ }
722
+ }
723
+ };
724
+ var sendFormDataToServer = /*#__PURE__*/function () {
725
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(url, data) {
726
+ var response, _error$response, _error$response2, formErrors, _t;
727
+ return _regenerator().w(function (_context) {
728
+ while (1) switch (_context.p = _context.n) {
729
+ case 0:
730
+ _context.p = 0;
731
+ _context.n = 1;
732
+ return axios__default.default({
733
+ url: url,
734
+ method: 'POST',
735
+ data: data
736
+ });
737
+ case 1:
738
+ response = _context.v;
739
+ return _context.a(2, {
740
+ response: response,
741
+ success: true
742
+ });
743
+ case 2:
744
+ _context.p = 2;
745
+ _t = _context.v;
746
+ formErrors = {};
747
+ if (typeof ((_error$response = _t.response) == null ? void 0 : _error$response.data) === 'string') {
748
+ formErrors[finalForm.FORM_ERROR] = 'Something went wrong';
749
+ }
750
+ if (typeof ((_error$response2 = _t.response) == null ? void 0 : _error$response2.data) === 'object') {
751
+ Object.entries(_t.response.data).forEach(function (_ref2) {
752
+ var fieldName = _ref2[0],
753
+ errorsList = _ref2[1];
754
+ formErrors[fieldName] = errorsList[0];
755
+ });
756
+ }
757
+ return _context.a(2, {
758
+ error: _t,
759
+ formErrors: formErrors,
760
+ success: false
761
+ });
762
+ }
763
+ }, _callee, null, [[0, 2]]);
764
+ }));
765
+ return function sendFormDataToServer(_x, _x2) {
766
+ return _ref.apply(this, arguments);
767
+ };
768
+ }();
769
+ var createDataTestIdField = function createDataTestIdField(fieldname, dataTestId) {
770
+ var dataTestIdField = dataTestId + fieldname[0].toUpperCase() + fieldname.slice(1) + 'Field';
771
+ return dataTestIdField;
772
+ };
773
+
636
774
  var FormFieldCheckbox = /*#__PURE__*/React__default.default.memo(function FormFieldCheckbox(props) {
637
- var name = props.name,
775
+ var dataTestId = props.dataTestId,
776
+ name = props.name,
638
777
  initialValue = props.initialValue,
639
- isDisabled = props.isDisabled,
640
778
  classNameGroupItem = props.classNameGroupItem,
641
779
  _props$fieldProps = props.fieldProps,
642
780
  fieldProps = _props$fieldProps === void 0 ? {} : _props$fieldProps,
643
781
  _props$inputProps = props.inputProps,
644
782
  inputProps = _props$inputProps === void 0 ? {} : _props$inputProps,
645
783
  showMessage = props.showMessage,
784
+ isDisabled = props.isDisabled,
646
785
  isRequired = props.isRequired,
647
786
  onChange = props.onChange;
648
787
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
@@ -672,35 +811,37 @@ var FormFieldCheckbox = /*#__PURE__*/React__default.default.memo(function FormFi
672
811
  }),
673
812
  errorKey = _useFieldValidationSt.errorKey,
674
813
  errorMessage = _useFieldValidationSt.errorMessage,
675
- isErrorState = _useFieldValidationSt.isErrorState,
676
814
  successKey = _useFieldValidationSt.successKey,
815
+ isErrorState = _useFieldValidationSt.isErrorState,
677
816
  isValidState = _useFieldValidationSt.isValidState;
678
817
  var updatedInputProps = useValidationAppearanceInputProps({
679
818
  inputProps: inputProps,
680
819
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
681
820
  });
821
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
682
822
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
683
823
  className: clsx__default.default('form-field-checkbox', 'form__item_checkbox', classNameGroupItem),
824
+ dataTestId: dataTestIdField,
684
825
  errorKey: errorKey,
685
826
  errorMessage: errorMessage,
686
- isErrorState: isErrorState,
687
- metaError: meta.error,
688
- isDisabled: isDisabled,
689
827
  fieldClassName: "form-checkbox",
690
828
  inputName: input.name,
691
829
  inputValue: input.checked,
692
830
  metaActive: meta.active,
831
+ metaError: meta.error,
693
832
  showMessage: showMessage,
694
833
  tag: "label",
834
+ isDisabled: isDisabled,
835
+ isErrorState: isErrorState,
695
836
  isRequired: isRequired,
696
837
  isValidState: isValidState
697
838
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Checkbox.Checkbox, Object.assign({
698
839
  type: "checkbox",
699
840
  name: input.name,
700
- isDisabled: isDisabled,
701
841
  autoComplete: "nope",
702
842
  checked: input.checked,
703
843
  isActive: input.checked,
844
+ isDisabled: isDisabled,
704
845
  onBlur: input.onBlur,
705
846
  onChange: onChangeField,
706
847
  onFocus: input.onFocus
@@ -721,7 +862,8 @@ var defaultChipsProps = {
721
862
  };
722
863
 
723
864
  function FormFieldChips(props) {
724
- var name = props.name,
865
+ var dataTestId = props.dataTestId,
866
+ name = props.name,
725
867
  initialValue = props.initialValue,
726
868
  classNameGroupItem = props.classNameGroupItem,
727
869
  emptyMessage = props.emptyMessage,
@@ -784,8 +926,10 @@ function FormFieldChips(props) {
784
926
  }
785
927
  return emptyOptionsList;
786
928
  }, [input.value]);
929
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
787
930
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
788
931
  className: clsx__default.default('form-field_chips', 'form__item_chips', classNameGroupItem),
932
+ dataTestId: dataTestIdField,
789
933
  errorKey: errorKey,
790
934
  errorMessage: errorMessage,
791
935
  fieldClassName: "form-chips",
@@ -834,7 +978,8 @@ var defaultChoiceProps = {
834
978
  };
835
979
 
836
980
  var FormFieldChoice = /*#__PURE__*/React__default.default.memo(function FormFieldChoice(props) {
837
- var name = props.name,
981
+ var dataTestId = props.dataTestId,
982
+ name = props.name,
838
983
  initialValue = props.initialValue,
839
984
  label = props.label,
840
985
  messageType = props.messageType,
@@ -857,8 +1002,8 @@ var FormFieldChoice = /*#__PURE__*/React__default.default.memo(function FormFiel
857
1002
  }
858
1003
  }, [change, onChange]);
859
1004
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
860
- initialValue: initialValue,
861
- name: name
1005
+ name: name,
1006
+ initialValue: initialValue
862
1007
  }, function Render(_ref) {
863
1008
  var input = _ref.input,
864
1009
  meta = _ref.meta;
@@ -870,8 +1015,8 @@ var FormFieldChoice = /*#__PURE__*/React__default.default.memo(function FormFiel
870
1015
  */
871
1016
  var activeOption = React.useMemo(function () {
872
1017
  var emptyOption = {
873
- value: null,
874
- label: null
1018
+ label: null,
1019
+ value: null
875
1020
  };
876
1021
  if (input.value) {
877
1022
  var currentOption = options.find(function (option) {
@@ -888,27 +1033,29 @@ var FormFieldChoice = /*#__PURE__*/React__default.default.memo(function FormFiel
888
1033
  }),
889
1034
  errorKey = _useFieldValidationSt.errorKey,
890
1035
  errorMessage = _useFieldValidationSt.errorMessage,
891
- isErrorState = _useFieldValidationSt.isErrorState,
892
1036
  successKey = _useFieldValidationSt.successKey,
1037
+ isErrorState = _useFieldValidationSt.isErrorState,
893
1038
  isValidState = _useFieldValidationSt.isValidState;
894
1039
  var updatedInputProps = useValidationAppearanceInputProps({
895
1040
  inputProps: inputProps,
896
1041
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
897
1042
  });
1043
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
898
1044
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
899
1045
  className: clsx__default.default('form-field_choice', 'form__item_choice', classNameGroupItem),
1046
+ dataTestId: dataTestIdField,
900
1047
  label: label,
901
1048
  messageType: messageType,
902
1049
  errorKey: errorKey,
903
1050
  errorMessage: errorMessage,
904
- isErrorState: isErrorState,
905
- metaError: meta.error,
906
- isDisabled: isDisabled,
907
1051
  fieldClassName: "form-choice",
908
1052
  inputName: input.name,
909
1053
  inputValue: input.value || [],
910
1054
  metaActive: meta.active,
1055
+ metaError: meta.error,
911
1056
  showMessage: showMessage,
1057
+ isDisabled: isDisabled,
1058
+ isErrorState: isErrorState,
912
1059
  isRequired: isRequired,
913
1060
  isValidState: isValidState
914
1061
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Choice.Choice, Object.assign({
@@ -936,17 +1083,18 @@ var defaultCodeProps = {
936
1083
  };
937
1084
 
938
1085
  var FormFieldCode = /*#__PURE__*/React__default.default.memo(function FormFieldCode(props) {
939
- var name = props.name,
1086
+ var dataTestId = props.dataTestId,
1087
+ name = props.name,
940
1088
  initialValue = props.initialValue,
941
1089
  label = props.label,
942
1090
  messageType = props.messageType,
943
- isDisabled = props.isDisabled,
944
1091
  classNameGroupItem = props.classNameGroupItem,
945
1092
  _props$fieldProps = props.fieldProps,
946
1093
  fieldProps = _props$fieldProps === void 0 ? {} : _props$fieldProps,
947
1094
  _props$inputProps = props.inputProps,
948
1095
  inputProps = _props$inputProps === void 0 ? {} : _props$inputProps,
949
1096
  showMessage = props.showMessage,
1097
+ isDisabled = props.isDisabled,
950
1098
  isRequired = props.isRequired;
951
1099
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
952
1100
  name: name,
@@ -968,32 +1116,34 @@ var FormFieldCode = /*#__PURE__*/React__default.default.memo(function FormFieldC
968
1116
  }),
969
1117
  errorKey = _useFieldValidationSt.errorKey,
970
1118
  errorMessage = _useFieldValidationSt.errorMessage,
971
- isErrorState = _useFieldValidationSt.isErrorState,
972
1119
  successKey = _useFieldValidationSt.successKey,
1120
+ isErrorState = _useFieldValidationSt.isErrorState,
973
1121
  isValidState = _useFieldValidationSt.isValidState;
974
1122
  var updatedInputProps = useValidationAppearanceInputProps({
975
1123
  inputProps: inputProps,
976
1124
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
977
1125
  });
1126
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
978
1127
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
979
1128
  className: clsx__default.default('form-field-code', 'form__item_code', classNameGroupItem),
1129
+ dataTestId: dataTestIdField,
980
1130
  label: label,
981
1131
  messageType: messageType,
982
1132
  errorKey: errorKey,
983
1133
  errorMessage: errorMessage,
984
- isErrorState: isErrorState,
985
1134
  fieldClassName: 'form-code',
986
1135
  inputName: input.name,
987
1136
  inputValue: input.value,
988
1137
  metaActive: meta.active,
989
1138
  showMessage: showMessage,
1139
+ isErrorState: isErrorState,
990
1140
  isRequired: isRequired,
991
1141
  isValidState: isValidState
992
1142
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Code.Code, Object.assign({
993
1143
  name: input.name,
994
1144
  initialValue: input.value,
995
- isDisabled: isDisabled,
996
1145
  autoComplete: "nope",
1146
+ isDisabled: isDisabled,
997
1147
  onBlur: input.onBlur,
998
1148
  onChange: input.onChange,
999
1149
  onFocus: input.onFocus
@@ -1002,24 +1152,25 @@ var FormFieldCode = /*#__PURE__*/React__default.default.memo(function FormFieldC
1002
1152
  });
1003
1153
 
1004
1154
  var FormFieldCustom = /*#__PURE__*/React__default.default.memo(function FormFieldCustom(props) {
1005
- var Component = props.Component,
1006
- isDisabled = props.isDisabled,
1007
- isRequired = props.isRequired,
1155
+ var dataTestId = props.dataTestId,
1008
1156
  name = props.name,
1009
1157
  initialValue = props.initialValue,
1010
- _props$fieldProps = props.fieldProps,
1011
- fieldProps = _props$fieldProps === void 0 ? {} : _props$fieldProps,
1012
1158
  classNameGroupItem = props.classNameGroupItem,
1013
- showMessage = props.showMessage,
1014
1159
  clearIcon = props.clearIcon,
1015
1160
  clearIconFill = props.clearIconFill,
1016
1161
  clearIconFillHover = props.clearIconFillHover,
1017
1162
  clearIconShape = props.clearIconShape,
1018
1163
  clearIconSize = props.clearIconSize,
1164
+ Component = props.Component,
1165
+ _props$fieldProps = props.fieldProps,
1166
+ fieldProps = _props$fieldProps === void 0 ? {} : _props$fieldProps,
1167
+ showMessage = props.showMessage,
1168
+ isDisabled = props.isDisabled,
1169
+ isRequired = props.isRequired,
1019
1170
  onClickClearIcon = props.onClickClearIcon;
1020
1171
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
1021
- initialValue: initialValue,
1022
- name: name
1172
+ name: name,
1173
+ initialValue: initialValue
1023
1174
  }, function Render(_ref) {
1024
1175
  var input = _ref.input,
1025
1176
  meta = _ref.meta;
@@ -1035,40 +1186,42 @@ var FormFieldCustom = /*#__PURE__*/React__default.default.memo(function FormFiel
1035
1186
  input: input,
1036
1187
  meta: meta
1037
1188
  }),
1038
- isErrorState = _useFieldValidationSt.isErrorState,
1039
- isValidState = _useFieldValidationSt.isValidState,
1040
1189
  errorKey = _useFieldValidationSt.errorKey,
1041
- errorMessage = _useFieldValidationSt.errorMessage;
1190
+ errorMessage = _useFieldValidationSt.errorMessage,
1191
+ isErrorState = _useFieldValidationSt.isErrorState,
1192
+ isValidState = _useFieldValidationSt.isValidState;
1042
1193
  var updatedInputProps = useValidationAppearanceInputProps({
1043
- validationStateKey: isErrorState ? errorKey : 'success',
1044
1194
  // For "Custom" field we pass all props. Can contain some special props, we don't known.
1045
- inputProps: props
1195
+ inputProps: props,
1196
+ validationStateKey: isErrorState ? errorKey : 'success'
1046
1197
  });
1198
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
1047
1199
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
1048
1200
  className: clsx__default.default('form-field_custom', 'form__item_custom', classNameGroupItem),
1201
+ dataTestId: dataTestIdField,
1049
1202
  errorKey: errorKey,
1050
1203
  errorMessage: errorMessage,
1051
1204
  fieldClassName: 'form-custom',
1052
1205
  inputName: input.name,
1053
1206
  inputValue: input.value,
1207
+ metaActive: meta.active,
1208
+ metaError: meta.error,
1209
+ showMessage: showMessage,
1054
1210
  isDisabled: isDisabled,
1055
1211
  isErrorState: isErrorState,
1056
1212
  isRequired: isRequired,
1057
- isValidState: isValidState,
1058
- metaActive: meta.active,
1059
- metaError: meta.error,
1060
- showMessage: showMessage
1213
+ isValidState: isValidState
1061
1214
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Component, Object.assign({}, updatedInputProps, {
1062
1215
  input: input,
1063
- isDisabled: isDisabled,
1064
- meta: meta
1216
+ meta: meta,
1217
+ isDisabled: isDisabled
1065
1218
  })), clearIcon && /*#__PURE__*/React__default.default.createElement(Icon.Icon, {
1066
1219
  className: "form-field__icon",
1220
+ size: clearIconSize,
1067
1221
  iconFill: clearIconFill,
1068
1222
  iconFillHover: clearIconFillHover,
1069
1223
  imageSrc: clearIcon,
1070
1224
  shape: clearIconShape,
1071
- size: clearIconSize,
1072
1225
  SvgImage: clearIcon,
1073
1226
  onClick: onClickClearIcon
1074
1227
  }));
@@ -1087,15 +1240,16 @@ var defaultDadataInputProps = {
1087
1240
  };
1088
1241
 
1089
1242
  var FormFieldDadataInput = /*#__PURE__*/React__default.default.memo(function FormFieldDadataInput(props) {
1090
- var name = props.name,
1243
+ var dataTestId = props.dataTestId,
1244
+ name = props.name,
1091
1245
  initialValue = props.initialValue,
1092
- isDisabled = props.isDisabled,
1093
1246
  classNameGroupItem = props.classNameGroupItem,
1094
1247
  fieldProps = props.fieldProps,
1095
1248
  inputProps = props.inputProps,
1096
1249
  parse = props.parse,
1097
1250
  showMessage = props.showMessage,
1098
1251
  token = props.token,
1252
+ isDisabled = props.isDisabled,
1099
1253
  isRequired = props.isRequired,
1100
1254
  onDadataAutocomplete = props.onDadataAutocomplete;
1101
1255
  if (process.env.NODE_ENV === 'development') {
@@ -1130,25 +1284,27 @@ var FormFieldDadataInput = /*#__PURE__*/React__default.default.memo(function For
1130
1284
  }),
1131
1285
  errorKey = _useFieldValidationSt.errorKey,
1132
1286
  errorMessage = _useFieldValidationSt.errorMessage,
1133
- isErrorState = _useFieldValidationSt.isErrorState,
1134
1287
  successKey = _useFieldValidationSt.successKey,
1288
+ isErrorState = _useFieldValidationSt.isErrorState,
1135
1289
  isValidState = _useFieldValidationSt.isValidState;
1136
1290
  var updatedInputProps = useValidationAppearanceInputProps({
1137
1291
  inputProps: inputProps,
1138
1292
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
1139
1293
  });
1294
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
1140
1295
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
1141
1296
  className: clsx__default.default('form-field_input-dadata', 'form__item_input-dadata', classNameGroupItem),
1297
+ dataTestId: dataTestIdField,
1142
1298
  errorKey: errorKey,
1143
1299
  errorMessage: errorMessage,
1144
- isErrorState: isErrorState,
1145
- metaError: meta.error,
1146
- isDisabled: isDisabled,
1147
1300
  fieldClassName: "form-dadata",
1148
1301
  inputName: input.name,
1149
1302
  inputValue: input.value || '',
1150
1303
  metaActive: meta.active,
1304
+ metaError: meta.error,
1151
1305
  showMessage: showMessage,
1306
+ isDisabled: isDisabled,
1307
+ isErrorState: isErrorState,
1152
1308
  isRequired: isRequired,
1153
1309
  isValidState: isValidState
1154
1310
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Dadata.Dadata
@@ -1161,8 +1317,8 @@ var FormFieldDadataInput = /*#__PURE__*/React__default.default.memo(function For
1161
1317
  input: input,
1162
1318
  inputProps: updatedInputProps,
1163
1319
  meta: meta,
1164
- setValue: onDadataAutocomplete,
1165
- token: token
1320
+ token: token,
1321
+ setValue: onDadataAutocomplete
1166
1322
  }));
1167
1323
  });
1168
1324
  });
@@ -1181,8 +1337,8 @@ var defaultDatepickerProps = {
1181
1337
  };
1182
1338
 
1183
1339
  function FormFieldDatePicker(props) {
1184
- var name = props.name,
1185
- isDisabled = props.isDisabled,
1340
+ var dataTestId = props.dataTestId,
1341
+ name = props.name,
1186
1342
  classNameGroupItem = props.classNameGroupItem,
1187
1343
  datePickerProps = props.datePickerProps,
1188
1344
  _props$fieldProps = props.fieldProps,
@@ -1190,6 +1346,7 @@ function FormFieldDatePicker(props) {
1190
1346
  _props$inputProps = props.inputProps,
1191
1347
  inputProps = _props$inputProps === void 0 ? {} : _props$inputProps,
1192
1348
  showMessage = props.showMessage,
1349
+ isDisabled = props.isDisabled,
1193
1350
  isRequired = props.isRequired,
1194
1351
  onChange = props.onChange;
1195
1352
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
@@ -1227,34 +1384,36 @@ function FormFieldDatePicker(props) {
1227
1384
  }),
1228
1385
  errorKey = _useFieldValidationSt.errorKey,
1229
1386
  errorMessage = _useFieldValidationSt.errorMessage,
1230
- isErrorState = _useFieldValidationSt.isErrorState,
1231
1387
  successKey = _useFieldValidationSt.successKey,
1388
+ isErrorState = _useFieldValidationSt.isErrorState,
1232
1389
  isValidState = _useFieldValidationSt.isValidState;
1233
1390
  var updatedInputProps = useValidationAppearanceInputProps({
1234
1391
  inputProps: inputProps,
1235
1392
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
1236
1393
  });
1394
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
1237
1395
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
1238
1396
  className: clsx__default.default('form-field_datepicker', 'form__item_datepicker', classNameGroupItem),
1397
+ dataTestId: dataTestIdField,
1239
1398
  errorKey: errorKey,
1240
1399
  errorMessage: errorMessage,
1241
- isErrorState: isErrorState,
1242
- metaError: meta.error,
1243
- isDisabled: isDisabled,
1244
1400
  fieldClassName: "form-datepicker",
1245
1401
  inputName: input.name,
1246
1402
  inputValue: input.value || '',
1247
1403
  metaActive: meta.active,
1404
+ metaError: meta.error,
1248
1405
  showMessage: showMessage,
1406
+ isDisabled: isDisabled,
1407
+ isErrorState: isErrorState,
1249
1408
  isRequired: isRequired,
1250
1409
  isValidState: isValidState
1251
1410
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(DatePicker.DatePickerInput, {
1252
1411
  name: input.name,
1253
- isDisabled: isDisabled,
1254
1412
  datePickerProps: datePickerProps,
1255
1413
  endValue: datePickerProps.selectsRange ? input.value.endDate : null,
1256
1414
  inputProps: updatedInputProps,
1257
1415
  value: datePickerProps.selectsRange ? input.value.startDate : input.value,
1416
+ isDisabled: isDisabled,
1258
1417
  onBlur: input.onBlur,
1259
1418
  onChange: onChangeField,
1260
1419
  onFocus: input.onFocus
@@ -1502,7 +1661,7 @@ var FileInputDropzone = /*#__PURE__*/React__default.default.memo(function FileIn
1502
1661
  });
1503
1662
  };
1504
1663
  }, []);
1505
- var propsGenerator = useDevicePropsGenerator.useDevicePropsGenerator(props);
1664
+ var propsGenerator = hooks.useDevicePropsGenerator(props);
1506
1665
  var fillClass = propsGenerator.fillClass,
1507
1666
  fillHoverClass = propsGenerator.fillHoverClass,
1508
1667
  borderColorClass = propsGenerator.borderColorClass,
@@ -1728,25 +1887,26 @@ function setFileDataURL(file, resolve) {
1728
1887
 
1729
1888
  var FormFieldFileInput = /*#__PURE__*/React__default.default.memo(function FormFieldFileInput(props) {
1730
1889
  var className = props.className,
1890
+ dataTestId = props.dataTestId,
1731
1891
  name = props.name,
1732
1892
  width = props.width,
1733
1893
  maxFiles = props.maxFiles,
1734
1894
  maxSize = props.maxSize,
1735
1895
  label = props.label,
1736
- fileErrorText = props.fileErrorText,
1737
1896
  classNameGroupItem = props.classNameGroupItem,
1738
1897
  dropzoneProps = props.dropzoneProps,
1739
1898
  fieldProps = props.fieldProps,
1899
+ fileErrorText = props.fileErrorText,
1740
1900
  hintDescription = props.hintDescription,
1741
1901
  hintTitle = props.hintTitle,
1742
1902
  showFilename = props.showFilename,
1743
1903
  showMessage = props.showMessage,
1744
1904
  isPreviews = props.isPreviews,
1745
1905
  isRequired = props.isRequired,
1746
- onAddFiles = props.onAddFiles,
1747
1906
  onClickPreview = props.onClickPreview,
1907
+ onAddFiles = props.onAddFiles,
1748
1908
  onDeleteFile = props.onDeleteFile;
1749
- var propsGenerator = useDevicePropsGenerator.useDevicePropsGenerator(props);
1909
+ var propsGenerator = hooks.useDevicePropsGenerator(props);
1750
1910
  var size = propsGenerator.size,
1751
1911
  fill = propsGenerator.fill,
1752
1912
  fillHover = propsGenerator.fillHover,
@@ -1807,25 +1967,27 @@ var FormFieldFileInput = /*#__PURE__*/React__default.default.memo(function FormF
1807
1967
  inputProps: props,
1808
1968
  validationStateKey: isErrorState ? errorKey : 'success'
1809
1969
  });
1970
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
1810
1971
 
1811
1972
  /** TODO:
1812
1973
  * REFACTOR PROPERTIES
1813
1974
  */
1814
1975
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
1815
1976
  className: clsx__default.default('form-field_type_dropzone', 'form__item_type_dropzone', classNameGroupItem),
1977
+ dataTestId: dataTestIdField,
1816
1978
  width: width,
1817
1979
  label: label,
1818
1980
  labelTextColor: labelTextColor,
1819
1981
  errorKey: errorKey,
1820
1982
  errorMessage: errorMessage,
1821
- isErrorState: isErrorState,
1822
- metaError: meta.error,
1823
1983
  fieldClassName: "form-dropzone",
1824
1984
  inputName: input.name,
1825
1985
  inputValue: input.value,
1826
1986
  metaActive: meta.active,
1987
+ metaError: meta.error,
1827
1988
  metaTouched: meta.touched,
1828
1989
  showMessage: showMessage,
1990
+ isErrorState: isErrorState,
1829
1991
  isRequired: isRequired,
1830
1992
  isValidState: isValidState
1831
1993
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(FileInputDropzone, {
@@ -1839,12 +2001,11 @@ var FormFieldFileInput = /*#__PURE__*/React__default.default.memo(function FormF
1839
2001
  borderColorHover: borderColorHover,
1840
2002
  borderType: borderType,
1841
2003
  borderWidth: borderWidth,
2004
+ dropzoneProps: dropzoneProps,
1842
2005
  errorMessageTextColor: errorMessageTextColor,
1843
2006
  errorMessageTextSize: errorMessageTextSize,
1844
2007
  errorMessageWeight: errorMessageTextWeight,
1845
2008
  fileErrorText: fileErrorText,
1846
- metaError: meta.error,
1847
- dropzoneProps: dropzoneProps,
1848
2009
  hintDescription: hintDescription,
1849
2010
  hintDescriptionTextColor: hintDescriptionTextColor,
1850
2011
  hintDescriptionTextSize: hintDescriptionTextSize,
@@ -1857,6 +2018,7 @@ var FormFieldFileInput = /*#__PURE__*/React__default.default.memo(function FormF
1857
2018
  hintTitleTextWrap: hintTitleTextWrap,
1858
2019
  inputName: input.name,
1859
2020
  inputValue: input.value,
2021
+ metaError: meta.error,
1860
2022
  metaTouched: meta.touched,
1861
2023
  removeThumbAppearance: removeThumbAppearance,
1862
2024
  removeThumbShape: removeThumbShape,
@@ -1875,8 +2037,8 @@ var FormFieldFileInput = /*#__PURE__*/React__default.default.memo(function FormF
1875
2037
  thumbNameTextWeight: thumbNameTextWeight,
1876
2038
  thumbNameTextWrap: thumbNameTextWrap,
1877
2039
  isPreviews: isPreviews,
1878
- onAddFiles: onAddFiles,
1879
2040
  onClickPreview: onClickPreview,
2041
+ onAddFiles: onAddFiles,
1880
2042
  onDeleteFile: onDeleteFile
1881
2043
  }));
1882
2044
  });
@@ -1895,8 +2057,9 @@ var defaultGroupProps = {
1895
2057
  };
1896
2058
 
1897
2059
  var FormBlockGroup = /*#__PURE__*/React__default.default.memo(function Group(props) {
1898
- var dataTour = props.dataTour,
1899
- className = props.className,
2060
+ var className = props.className,
2061
+ dataTestId = props.dataTestId,
2062
+ dataTour = props.dataTour,
1900
2063
  name = props.name,
1901
2064
  title = props.title,
1902
2065
  titleTextColor = props.titleTextColor,
@@ -1918,8 +2081,9 @@ var FormBlockGroup = /*#__PURE__*/React__default.default.memo(function Group(pro
1918
2081
  children = props.children;
1919
2082
 
1920
2083
  // @ts-expect-error
1921
- var _useStyles = useStyles.useStyles(props),
2084
+ var _useStyles = hooks.useStyles(props),
1922
2085
  styles = _useStyles.styles;
2086
+ var dataTestIdField = createDataTestIdField(name, dataTestId);
1923
2087
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
1924
2088
  name: name
1925
2089
  }, function Render(_ref) {
@@ -1946,7 +2110,7 @@ var FormBlockGroup = /*#__PURE__*/React__default.default.memo(function Group(pro
1946
2110
  });
1947
2111
  return /*#__PURE__*/React__default.default.createElement("div", {
1948
2112
  className: clsx__default.default('form__group', className, isHidden && 'form__group_hidden', column && "form__group_column_" + column),
1949
- "data-test-id": name + "Group",
2113
+ "data-test-id": dataTestIdField,
1950
2114
  "data-tour": dataTour,
1951
2115
  style: styles
1952
2116
  }, /*#__PURE__*/React__default.default.createElement("div", {
@@ -1954,32 +2118,32 @@ var FormBlockGroup = /*#__PURE__*/React__default.default.memo(function Group(pro
1954
2118
  }, before, title && /*#__PURE__*/React__default.default.createElement("div", {
1955
2119
  className: "form__group-title"
1956
2120
  }, /*#__PURE__*/React__default.default.createElement(Title.Title, {
2121
+ dataTestId: dataTestIdField + "Title",
1957
2122
  size: titleTextSize,
1958
2123
  textColor: titleTextColor,
1959
- textWeight: titleTextWeight,
1960
- dataTestId: name + "GroupTitle"
2124
+ textWeight: titleTextWeight
1961
2125
  }, title)), label && /*#__PURE__*/React__default.default.createElement("div", {
1962
2126
  className: "form__group-label"
1963
2127
  }, /*#__PURE__*/React__default.default.createElement(Text.Text, {
2128
+ dataTestId: dataTestIdField + "Label",
1964
2129
  size: labelTextSize,
1965
2130
  textColor: labelTextColor,
1966
- textWeight: labelTextWeight,
1967
- dataTestId: name + "GroupLabel"
2131
+ textWeight: labelTextWeight
1968
2132
  }, label)), /*#__PURE__*/React__default.default.createElement("div", {
1969
2133
  className: "form__group-items"
1970
2134
  }, children), after), showGroupMessage && /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, isErrorState && errorMessage && /*#__PURE__*/React__default.default.createElement(Text.Text, {
1971
2135
  id: name + "-error",
1972
2136
  className: "form__group-message form__group-message_type-" + errorKey,
2137
+ dataTestId: dataTestIdField + "MessageError",
1973
2138
  size: updatedProps.messageTextSize,
1974
2139
  textColor: updatedProps.messageTextColor,
1975
- textWeight: updatedProps.messageTextWeight,
1976
- dataTestId: name + "GroupMessageError"
2140
+ textWeight: updatedProps.messageTextWeight
1977
2141
  }, errorMessage), Boolean(message) && (!isErrorState || !errorMessage) && /*#__PURE__*/React__default.default.createElement(Text.Text, {
1978
2142
  className: "form__group-message",
2143
+ dataTestId: name + "GroupMessage",
1979
2144
  size: messageTextSize,
1980
2145
  textColor: messageTextColor,
1981
- textWeight: messageTextWeight,
1982
- dataTestId: name + "GroupMessage"
2146
+ textWeight: messageTextWeight
1983
2147
  }, message), !isErrorState && !message && /*#__PURE__*/React__default.default.createElement(Text.Text, {
1984
2148
  className: "form__group-message",
1985
2149
  size: messageTextSize
@@ -2000,7 +2164,8 @@ var defaultInputProps = {
2000
2164
  };
2001
2165
 
2002
2166
  var FormFieldInput = /*#__PURE__*/React__default.default.memo(function FormFieldInput(props) {
2003
- var name = props.name,
2167
+ var dataTestId = props.dataTestId,
2168
+ name = props.name,
2004
2169
  initialValue = props.initialValue,
2005
2170
  classNameGroupItem = props.classNameGroupItem,
2006
2171
  clearIcon = props.clearIcon,
@@ -2052,13 +2217,15 @@ var FormFieldInput = /*#__PURE__*/React__default.default.memo(function FormField
2052
2217
  inputProps: inputProps,
2053
2218
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2054
2219
  });
2220
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2055
2221
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2056
- className: clsx__default.default("form-field_input", "form__item_input", classNameGroupItem),
2222
+ className: clsx__default.default('form-field_input', 'form__item_input', classNameGroupItem),
2223
+ dataTestId: dataTestIdField,
2057
2224
  errorKey: errorKey,
2058
2225
  errorMessage: errorMessage,
2059
2226
  fieldClassName: "form-input",
2060
2227
  inputName: input.name,
2061
- inputValue: input.value || "",
2228
+ inputValue: input.value || '',
2062
2229
  metaActive: meta.active,
2063
2230
  metaError: meta.error,
2064
2231
  showMessage: showMessage,
@@ -2067,36 +2234,44 @@ var FormFieldInput = /*#__PURE__*/React__default.default.memo(function FormField
2067
2234
  isRequired: isRequired,
2068
2235
  isValidState: isValidState
2069
2236
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Input.Input, Object.assign({
2070
- className: clsx__default.default(meta.active && "input_state_focus", meta.error && meta.touched && "input_state_" + errorKey),
2071
- dataTestId: input.name + "-field-input",
2237
+ className: clsx__default.default(meta.active && 'input_state_focus', meta.error && meta.touched && "input_state_" + errorKey),
2238
+ dataTestId: dataTestIdField + "Input",
2072
2239
  type: "text",
2073
2240
  name: input.name,
2074
2241
  autoComplete: "nope",
2075
- value: input.value || "",
2242
+ value: input.value || '',
2076
2243
  isDisabled: isDisabled,
2077
2244
  onBlur: input.onBlur,
2078
2245
  onChange: onChangeField,
2079
2246
  onFocus: input.onFocus
2080
2247
  }, updatedInputProps)), clearIcon && /*#__PURE__*/React__default.default.createElement(Icon.Icon, {
2081
2248
  className: "form-field__icon",
2249
+ dataTestId: dataTestIdField + "InputIcon",
2082
2250
  size: clearIconSize,
2083
2251
  iconFill: clearIconFill,
2084
2252
  iconFillHover: clearIconFillHover,
2085
- imageSrc: typeof clearIcon === "string" && clearIcon,
2253
+ imageSrc: typeof clearIcon === 'string' && clearIcon,
2086
2254
  shape: clearIconShape,
2087
- SvgImage: typeof clearIcon !== "string" && clearIcon,
2255
+ SvgImage: typeof clearIcon !== 'string' && clearIcon,
2088
2256
  onClick: onClickClearIcon
2089
2257
  }));
2090
2258
  });
2091
2259
  });
2092
2260
 
2093
2261
  var defaultInputNumberProps = {
2094
- appearance: 'surfaceSecondary sizeM solid rounded',
2095
- width: 'fill'
2262
+ appearance: 'defaultPrimary sizeM solid rounded',
2263
+ width: 'fill',
2264
+ // Error
2265
+ errorAppearance: 'errorPrimary sizeM solid rounded',
2266
+ // Required
2267
+ requiredAppearance: 'requirePrimary sizeM solid rounded',
2268
+ // Success
2269
+ successAppearance: 'successPrimary sizeM solid rounded'
2096
2270
  };
2097
2271
 
2098
2272
  var FormFieldInputNumber = /*#__PURE__*/React__default.default.memo(function FormFieldInputNumber(props) {
2099
- var _props$type = props.type,
2273
+ var dataTestId = props.dataTestId,
2274
+ _props$type = props.type,
2100
2275
  type = _props$type === void 0 ? 'custom' : _props$type,
2101
2276
  name = props.name,
2102
2277
  initialValue = props.initialValue,
@@ -2135,8 +2310,10 @@ var FormFieldInputNumber = /*#__PURE__*/React__default.default.memo(function For
2135
2310
  var updatedInputProps = useValidationAppearanceInputProps({
2136
2311
  inputProps: inputProps
2137
2312
  });
2313
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2138
2314
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2139
2315
  className: clsx__default.default('form-field_input-number', 'form__item_input-number', classNameGroupItem),
2316
+ dataTestId: dataTestIdField,
2140
2317
  errorKey: errorKey,
2141
2318
  errorMessage: errorMessage,
2142
2319
  fieldClassName: "form-input-number",
@@ -2151,7 +2328,7 @@ var FormFieldInputNumber = /*#__PURE__*/React__default.default.memo(function For
2151
2328
  isValidState: isValidState
2152
2329
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(InputNumber.InputNumber, Object.assign({
2153
2330
  className: clsx__default.default(meta.active && 'input_state_focus', (meta.submitFailed || meta.touched) && meta.error && "input_state_" + errorKey),
2154
- dataTestId: input.name + "FieldInputNumber",
2331
+ dataTestId: dataTestIdField + "InputNumber",
2155
2332
  type: type,
2156
2333
  name: input.name,
2157
2334
  value: input.value || 0,
@@ -2161,7 +2338,8 @@ var FormFieldInputNumber = /*#__PURE__*/React__default.default.memo(function For
2161
2338
  });
2162
2339
 
2163
2340
  var FormFieldMaskedInput = /*#__PURE__*/React__default.default.memo(function FormFieldMaskedInput(props) {
2164
- var name = props.name,
2341
+ var dataTestId = props.dataTestId,
2342
+ name = props.name,
2165
2343
  initialValue = props.initialValue,
2166
2344
  classNameGroupItem = props.classNameGroupItem,
2167
2345
  clearIcon = props.clearIcon,
@@ -2223,8 +2401,10 @@ var FormFieldMaskedInput = /*#__PURE__*/React__default.default.memo(function For
2223
2401
  inputProps: inputProps,
2224
2402
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2225
2403
  });
2404
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2226
2405
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2227
2406
  className: clsx__default.default('form-field-masked-input', 'form__item_masked-input', classNameGroupItem),
2407
+ dataTestId: dataTestIdField,
2228
2408
  errorKey: errorKey,
2229
2409
  errorMessage: errorMessage,
2230
2410
  fieldClassName: 'form-maskedInput',
@@ -2268,7 +2448,8 @@ var defaultPasswordProps = {
2268
2448
  };
2269
2449
 
2270
2450
  var FormFieldPassword = /*#__PURE__*/React__default.default.memo(function FormFieldPassword(props) {
2271
- var name = props.name,
2451
+ var dataTestId = props.dataTestId,
2452
+ name = props.name,
2272
2453
  initialValue = props.initialValue,
2273
2454
  classNameGroupItem = props.classNameGroupItem,
2274
2455
  fieldProps = props.fieldProps,
@@ -2312,13 +2493,15 @@ var FormFieldPassword = /*#__PURE__*/React__default.default.memo(function FormFi
2312
2493
  inputProps: inputProps,
2313
2494
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2314
2495
  });
2496
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2315
2497
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2316
- className: clsx__default.default("form-field_input-password", "form__item_input-password", classNameGroupItem),
2498
+ className: clsx__default.default('form-field_input-password', 'form__item_input-password', classNameGroupItem),
2499
+ dataTestId: dataTestIdField,
2317
2500
  errorKey: errorKey,
2318
2501
  errorMessage: errorMessage,
2319
2502
  fieldClassName: "form-password",
2320
2503
  inputName: input.name,
2321
- inputValue: input.value || "",
2504
+ inputValue: input.value || '',
2322
2505
  metaActive: meta.active,
2323
2506
  metaError: meta.error,
2324
2507
  showMessage: showMessage,
@@ -2327,11 +2510,11 @@ var FormFieldPassword = /*#__PURE__*/React__default.default.memo(function FormFi
2327
2510
  isRequired: isRequired,
2328
2511
  isValidState: isValidState
2329
2512
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(InputPassword.InputPassword, Object.assign({
2330
- className: clsx__default.default(meta.active && "input-password_state_focus", meta.error && meta.touched && "input-password_state_" + errorKey),
2331
- dataTestId: input.name + "-field-input-password",
2513
+ className: clsx__default.default(meta.active && 'input-password_state_focus', meta.error && meta.touched && "input-password_state_" + errorKey),
2514
+ dataTestId: dataTestIdField + "InputPassword",
2332
2515
  name: input.name,
2333
2516
  autoComplete: "nope",
2334
- value: input.value || "",
2517
+ value: input.value || '',
2335
2518
  isDisabled: isDisabled,
2336
2519
  onBlur: input.onBlur,
2337
2520
  onChange: onChangeField,
@@ -2383,8 +2566,9 @@ function FormFieldRadioGroupList(props) {
2383
2566
  }
2384
2567
 
2385
2568
  var FormFieldRadioGroup = /*#__PURE__*/React__default.default.memo(function FormFieldRadioGroup(props) {
2386
- var name = props.name,
2387
- isDisabled = props.isDisabled,
2569
+ var dataTestId = props.dataTestId,
2570
+ name = props.name,
2571
+ classNameGroupItem = props.classNameGroupItem,
2388
2572
  _props$editableProps = props.editableProps,
2389
2573
  editableProps = _props$editableProps === void 0 ? {} : _props$editableProps,
2390
2574
  _props$fieldProps = props.fieldProps,
@@ -2393,8 +2577,8 @@ var FormFieldRadioGroup = /*#__PURE__*/React__default.default.memo(function Form
2393
2577
  inputProps = _props$inputProps === void 0 ? {} : _props$inputProps,
2394
2578
  _props$options = props.options,
2395
2579
  options = _props$options === void 0 ? [] : _props$options,
2396
- classNameGroupItem = props.classNameGroupItem,
2397
2580
  showMessage = props.showMessage,
2581
+ isDisabled = props.isDisabled,
2398
2582
  isRequired = props.isRequired,
2399
2583
  onChange = props.onChange;
2400
2584
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
@@ -2422,26 +2606,28 @@ var FormFieldRadioGroup = /*#__PURE__*/React__default.default.memo(function Form
2422
2606
  inputProps: inputProps,
2423
2607
  validationStateKey: isErrorState ? errorKey : 'success'
2424
2608
  });
2609
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2425
2610
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2426
2611
  className: clsx__default.default('form-field_radio', 'form__item_radio', classNameGroupItem),
2612
+ dataTestId: dataTestIdField,
2427
2613
  errorKey: errorKey,
2428
2614
  errorMessage: errorMessage,
2429
- isErrorState: isErrorState,
2430
- metaError: meta.error,
2431
- isDisabled: isDisabled,
2432
2615
  fieldClassName: 'form-radio',
2433
2616
  inputName: input.name,
2434
2617
  inputValue: input.value || '',
2435
2618
  metaActive: meta.active,
2619
+ metaError: meta.error,
2436
2620
  showMessage: showMessage,
2621
+ isDisabled: isDisabled,
2622
+ isErrorState: isErrorState,
2437
2623
  isRequired: isRequired,
2438
2624
  isValidState: isValidState
2439
2625
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(FormFieldRadioGroupList, {
2440
- isDisabled: isDisabled,
2441
2626
  editableProps: editableProps,
2442
2627
  input: input,
2443
2628
  inputProps: updatedInputProps,
2444
2629
  options: options,
2630
+ isDisabled: isDisabled,
2445
2631
  onChange: onChange
2446
2632
  }));
2447
2633
  });
@@ -2458,12 +2644,13 @@ var defaultSegmentedProps = {
2458
2644
  };
2459
2645
 
2460
2646
  function FormFieldSegmented(props) {
2461
- var name = props.name,
2462
- isDisabled = props.isDisabled,
2647
+ var dataTestId = props.dataTestId,
2648
+ name = props.name,
2463
2649
  fieldProps = props.fieldProps,
2464
2650
  inputProps = props.inputProps,
2465
2651
  options = props.options,
2466
2652
  showMessage = props.showMessage,
2653
+ isDisabled = props.isDisabled,
2467
2654
  isRequired = props.isRequired;
2468
2655
  var _useForm = reactFinalForm.useForm(),
2469
2656
  change = _useForm.change;
@@ -2502,31 +2689,33 @@ function FormFieldSegmented(props) {
2502
2689
  }),
2503
2690
  errorKey = _useFieldValidationSt.errorKey,
2504
2691
  errorMessage = _useFieldValidationSt.errorMessage,
2505
- isErrorState = _useFieldValidationSt.isErrorState,
2506
2692
  successKey = _useFieldValidationSt.successKey,
2693
+ isErrorState = _useFieldValidationSt.isErrorState,
2507
2694
  isValidState = _useFieldValidationSt.isValidState;
2508
2695
  var updatedInputProps = useValidationAppearanceInputProps({
2509
2696
  inputProps: inputProps,
2510
2697
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2511
2698
  });
2699
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2512
2700
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2513
2701
  className: clsx__default.default('form-field_segmented', 'form__item_segmented'),
2702
+ dataTestId: dataTestIdField,
2514
2703
  errorKey: errorKey,
2515
2704
  errorMessage: errorMessage,
2516
- isErrorState: isErrorState,
2517
- metaError: meta.error,
2518
- isDisabled: isDisabled,
2519
2705
  fieldClassName: "form-segmented",
2520
2706
  inputName: input.name,
2521
2707
  inputValue: input.value || [],
2522
2708
  metaActive: meta.active,
2709
+ metaError: meta.error,
2523
2710
  showMessage: showMessage,
2711
+ isDisabled: isDisabled,
2712
+ isErrorState: isErrorState,
2524
2713
  isRequired: isRequired,
2525
2714
  isValidState: isValidState
2526
2715
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Segmented.Segmented, Object.assign({
2527
- isDisabled: isDisabled,
2528
2716
  activeSegment: activeOption,
2529
2717
  segments: options,
2718
+ isDisabled: isDisabled,
2530
2719
  setActiveSegment: setActiveSegment
2531
2720
  }, updatedInputProps)));
2532
2721
  });
@@ -2562,17 +2751,18 @@ function getDefaultValue(options, selectValue) {
2562
2751
  return result;
2563
2752
  }
2564
2753
  var FormFieldSelect = /*#__PURE__*/React__default.default.memo(function FormFieldSelect(props) {
2565
- var isDisabled = props.isDisabled,
2566
- isRequired = props.isRequired,
2754
+ var dataTestId = props.dataTestId,
2755
+ name = props.name,
2756
+ initialValue = props.initialValue,
2567
2757
  classNameGroupItem = props.classNameGroupItem,
2568
2758
  fieldProps = props.fieldProps,
2569
- initialValue = props.initialValue,
2570
- name = props.name,
2571
2759
  _props$options = props.options,
2572
2760
  options = _props$options === void 0 ? [] : _props$options,
2573
2761
  selectProps = props.selectProps,
2574
2762
  selectRef = props.selectRef,
2575
2763
  showMessage = props.showMessage,
2764
+ isDisabled = props.isDisabled,
2765
+ isRequired = props.isRequired,
2576
2766
  onChange = props.onChange,
2577
2767
  onInputChange = props.onInputChange;
2578
2768
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
@@ -2624,34 +2814,36 @@ var FormFieldSelect = /*#__PURE__*/React__default.default.memo(function FormFiel
2624
2814
  }),
2625
2815
  errorKey = _useFieldValidationSt.errorKey,
2626
2816
  errorMessage = _useFieldValidationSt.errorMessage,
2627
- isErrorState = _useFieldValidationSt.isErrorState,
2628
2817
  successKey = _useFieldValidationSt.successKey,
2818
+ isErrorState = _useFieldValidationSt.isErrorState,
2629
2819
  isValidState = _useFieldValidationSt.isValidState;
2630
2820
  var updatedSelectProps = useValidationAppearanceInputProps({
2631
2821
  inputProps: selectProps,
2632
2822
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2633
2823
  });
2824
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2634
2825
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2635
2826
  className: clsx__default.default('form-field_select', 'form__item_select', classNameGroupItem),
2827
+ dataTestId: dataTestIdField,
2636
2828
  errorKey: errorKey,
2637
2829
  errorMessage: errorMessage,
2638
- isErrorState: isErrorState,
2639
- metaError: meta.error,
2640
- isDisabled: isDisabled,
2641
2830
  fieldClassName: 'form-select',
2642
2831
  inputName: input.name,
2643
2832
  inputValue: input.value,
2644
2833
  metaActive: meta.active,
2834
+ metaError: meta.error,
2645
2835
  showMessage: showMessage,
2836
+ isDisabled: isDisabled,
2837
+ isErrorState: isErrorState,
2646
2838
  isRequired: isRequired,
2647
2839
  isValidState: isValidState
2648
2840
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Select.Select, Object.assign({
2649
2841
  className: "form-select-item",
2650
2842
  ref: selectRef,
2651
- isDisabled: isDisabled,
2652
2843
  instanceId: "id_" + input.name,
2653
2844
  options: options,
2654
2845
  value: selectedOptions,
2846
+ isDisabled: isDisabled,
2655
2847
  onChange: onChangeValue,
2656
2848
  onInputChange: onInputChange
2657
2849
  }, updatedSelectProps)));
@@ -2666,14 +2858,15 @@ var defaultSwitchProps = {
2666
2858
  };
2667
2859
 
2668
2860
  var FormFieldSwitch = /*#__PURE__*/React__default.default.memo(function FormFieldSwitch(props) {
2669
- var name = props.name,
2670
- isDisabled = props.isDisabled,
2861
+ var dataTestId = props.dataTestId,
2862
+ name = props.name,
2671
2863
  classNameGroupItem = props.classNameGroupItem,
2672
2864
  _props$fieldProps = props.fieldProps,
2673
2865
  fieldProps = _props$fieldProps === void 0 ? {} : _props$fieldProps,
2674
2866
  _props$inputProps = props.inputProps,
2675
2867
  inputProps = _props$inputProps === void 0 ? {} : _props$inputProps,
2676
2868
  showMessage = props.showMessage,
2869
+ isDisabled = props.isDisabled,
2677
2870
  isRequired = props.isRequired,
2678
2871
  onChange = props.onChange;
2679
2872
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
@@ -2702,34 +2895,36 @@ var FormFieldSwitch = /*#__PURE__*/React__default.default.memo(function FormFiel
2702
2895
  }),
2703
2896
  errorKey = _useFieldValidationSt.errorKey,
2704
2897
  errorMessage = _useFieldValidationSt.errorMessage,
2705
- isErrorState = _useFieldValidationSt.isErrorState,
2706
2898
  successKey = _useFieldValidationSt.successKey,
2899
+ isErrorState = _useFieldValidationSt.isErrorState,
2707
2900
  isValidState = _useFieldValidationSt.isValidState;
2708
2901
  var updatedInputProps = useValidationAppearanceInputProps({
2709
2902
  inputProps: inputProps,
2710
2903
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2711
2904
  });
2905
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2712
2906
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2713
2907
  className: clsx__default.default('form-field-switch', 'form__item_switch', classNameGroupItem),
2908
+ dataTestId: dataTestIdField,
2714
2909
  errorKey: errorKey,
2715
2910
  errorMessage: errorMessage,
2716
- isErrorState: isErrorState,
2717
- metaError: meta.error,
2718
- isDisabled: isDisabled,
2719
2911
  fieldClassName: "form-switch",
2720
2912
  inputName: input.name,
2721
2913
  inputValue: input.checked,
2722
2914
  metaActive: meta.active,
2915
+ metaError: meta.error,
2723
2916
  showMessage: showMessage,
2724
2917
  tag: "label",
2918
+ isDisabled: isDisabled,
2919
+ isErrorState: isErrorState,
2725
2920
  isRequired: isRequired,
2726
2921
  isValidState: isValidState
2727
2922
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Switch.Switch, Object.assign({
2728
2923
  type: "checkbox",
2729
2924
  name: input.name,
2730
- isDisabled: isDisabled,
2731
2925
  autoComplete: "nope",
2732
2926
  isActive: input.checked,
2927
+ isDisabled: isDisabled,
2733
2928
  onBlur: input.onBlur,
2734
2929
  onChange: onChangeField,
2735
2930
  onFocus: input.onFocus
@@ -2749,7 +2944,8 @@ var defaultTextareaProps = {
2749
2944
  };
2750
2945
 
2751
2946
  var FormFieldTextarea = /*#__PURE__*/React__default.default.memo(function FormFieldTextarea(props) {
2752
- var name = props.name,
2947
+ var dataTestId = props.dataTestId,
2948
+ name = props.name,
2753
2949
  classNameGroupItem = props.classNameGroupItem,
2754
2950
  _props$fieldProps = props.fieldProps,
2755
2951
  fieldProps = _props$fieldProps === void 0 ? {} : _props$fieldProps,
@@ -2784,11 +2980,13 @@ var FormFieldTextarea = /*#__PURE__*/React__default.default.memo(function FormFi
2784
2980
  inputProps: inputProps,
2785
2981
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2786
2982
  });
2983
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2787
2984
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2788
- className: clsx__default.default("form-field_textarea", "form__item_textarea", classNameGroupItem),
2985
+ className: clsx__default.default('form-field_textarea', 'form__item_textarea', classNameGroupItem),
2986
+ dataTestId: dataTestIdField,
2789
2987
  errorKey: errorKey,
2790
2988
  errorMessage: errorMessage,
2791
- fieldClassName: "form-textarea",
2989
+ fieldClassName: 'form-textarea',
2792
2990
  inputName: input.name,
2793
2991
  inputValue: input.value,
2794
2992
  metaActive: meta.active,
@@ -2799,11 +2997,11 @@ var FormFieldTextarea = /*#__PURE__*/React__default.default.memo(function FormFi
2799
2997
  isRequired: isRequired,
2800
2998
  isValidState: isValidState
2801
2999
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Textarea.Textarea, Object.assign({
2802
- className: clsx__default.default(meta.active && "textarea_state_focus", meta.error && meta.touched && "textarea_state_" + errorKey),
2803
- dataTestId: input.name + "-field-textarea",
3000
+ className: clsx__default.default(meta.active && 'textarea_state_focus', meta.error && meta.touched && "textarea_state_" + errorKey),
3001
+ dataTestId: dataTestIdField + "Textarea",
2804
3002
  name: input.name,
2805
3003
  autoComplete: "nope",
2806
- value: input.value || "",
3004
+ value: input.value || '',
2807
3005
  isDisabled: isDisabled,
2808
3006
  onBlur: input.onBlur,
2809
3007
  onChange: input.onChange,
@@ -2833,115 +3031,151 @@ var formTypes = {
2833
3031
  select: 'select',
2834
3032
  "switch": 'switch'
2835
3033
  };
2836
- function generateField(field, config, props) {
3034
+ function generateField(field, config, dataTestId) {
2837
3035
  switch (field.type) {
2838
3036
  case formTypes.password:
2839
3037
  {
2840
3038
  return /*#__PURE__*/React__default.default.createElement(FormFieldPassword, Object.assign({
2841
3039
  key: config.key
2842
- }, field, props));
3040
+ }, field, {
3041
+ dataTestId: dataTestId
3042
+ }));
2843
3043
  }
2844
3044
  case formTypes.checkbox:
2845
3045
  {
2846
3046
  return /*#__PURE__*/React__default.default.createElement(FormFieldCheckbox, Object.assign({
2847
3047
  key: config.key
2848
- }, field, props));
3048
+ }, field, {
3049
+ dataTestId: dataTestId
3050
+ }));
2849
3051
  }
2850
3052
  case formTypes.choice:
2851
3053
  {
2852
3054
  return /*#__PURE__*/React__default.default.createElement(FormFieldChoice, Object.assign({
2853
3055
  key: config.key
2854
- }, field, props));
3056
+ }, field, {
3057
+ dataTestId: dataTestId
3058
+ }));
2855
3059
  }
2856
3060
  case formTypes.code:
2857
3061
  {
2858
3062
  return /*#__PURE__*/React__default.default.createElement(FormFieldCode, Object.assign({
2859
3063
  key: config.key
2860
- }, field, props));
3064
+ }, field, {
3065
+ dataTestId: dataTestId
3066
+ }));
2861
3067
  }
2862
3068
  case formTypes.chips:
2863
3069
  {
2864
3070
  return /*#__PURE__*/React__default.default.createElement(FormFieldChips, Object.assign({
2865
3071
  key: config.key
2866
- }, field, props));
3072
+ }, field, {
3073
+ dataTestId: dataTestId
3074
+ }));
2867
3075
  }
2868
3076
  case formTypes["switch"]:
2869
3077
  {
2870
3078
  return /*#__PURE__*/React__default.default.createElement(FormFieldSwitch, Object.assign({
2871
3079
  key: config.key
2872
- }, field, props));
3080
+ }, field, {
3081
+ dataTestId: dataTestId
3082
+ }));
2873
3083
  }
2874
3084
  case formTypes.segmented:
2875
3085
  {
2876
3086
  return /*#__PURE__*/React__default.default.createElement(FormFieldSegmented, Object.assign({
2877
3087
  key: config.key
2878
- }, field, props));
3088
+ }, field, {
3089
+ dataTestId: dataTestId
3090
+ }));
2879
3091
  }
2880
3092
  case formTypes.datePicker:
2881
3093
  {
2882
3094
  return /*#__PURE__*/React__default.default.createElement(FormFieldDatePicker, Object.assign({
2883
3095
  key: config.key
2884
- }, field, props));
3096
+ }, field, {
3097
+ dataTestId: dataTestId
3098
+ }));
2885
3099
  }
2886
3100
  case formTypes.fileInput:
2887
3101
  {
2888
3102
  return /*#__PURE__*/React__default.default.createElement(FormFieldFileInput, Object.assign({
2889
3103
  key: config.key
2890
- }, field, props));
3104
+ }, field, {
3105
+ dataTestId: dataTestId
3106
+ }));
2891
3107
  }
2892
3108
  case formTypes.radioGroup:
2893
3109
  {
2894
3110
  return /*#__PURE__*/React__default.default.createElement(FormFieldRadioGroup, Object.assign({
2895
3111
  key: config.key
2896
- }, field, props));
3112
+ }, field, {
3113
+ dataTestId: dataTestId
3114
+ }));
2897
3115
  }
2898
3116
  case formTypes.select:
2899
3117
  {
2900
3118
  return /*#__PURE__*/React__default.default.createElement(FormFieldSelect, Object.assign({
2901
3119
  key: config.key
2902
- }, field, props));
3120
+ }, field, {
3121
+ dataTestId: dataTestId
3122
+ }));
2903
3123
  }
2904
3124
  case formTypes.text:
2905
3125
  {
2906
3126
  return /*#__PURE__*/React__default.default.createElement(FormFieldInput, Object.assign({
2907
3127
  key: config.key
2908
- }, field, props));
3128
+ }, field, {
3129
+ dataTestId: dataTestId
3130
+ }));
2909
3131
  }
2910
3132
  case formTypes.textarea:
2911
3133
  {
2912
3134
  return /*#__PURE__*/React__default.default.createElement(FormFieldTextarea, Object.assign({
2913
3135
  key: config.key
2914
- }, field, props));
3136
+ }, field, {
3137
+ dataTestId: dataTestId
3138
+ }));
2915
3139
  }
2916
3140
  case formTypes.maskedInput:
2917
3141
  {
2918
3142
  return /*#__PURE__*/React__default.default.createElement(FormFieldMaskedInput, Object.assign({
2919
3143
  key: config.key
2920
- }, field, props));
3144
+ }, field, {
3145
+ dataTestId: dataTestId
3146
+ }));
2921
3147
  }
2922
3148
  case formTypes.custom:
2923
3149
  {
2924
3150
  return /*#__PURE__*/React__default.default.createElement(FormFieldCustom, Object.assign({
2925
3151
  key: config.key
2926
- }, field, props));
3152
+ }, field, {
3153
+ dataTestId: dataTestId
3154
+ }));
2927
3155
  }
2928
3156
  case formTypes.dadataInput:
2929
3157
  {
2930
3158
  return /*#__PURE__*/React__default.default.createElement(FormFieldDadataInput, Object.assign({
2931
3159
  key: config.key
2932
- }, field, props));
3160
+ }, field, {
3161
+ dataTestId: dataTestId
3162
+ }));
2933
3163
  }
2934
3164
  case formTypes.inputNumber:
2935
3165
  {
2936
3166
  return /*#__PURE__*/React__default.default.createElement(FormFieldInputNumber, Object.assign({
2937
3167
  key: config.key
2938
- }, field, props));
3168
+ }, field, {
3169
+ dataTestId: dataTestId
3170
+ }));
2939
3171
  }
2940
3172
  case formTypes.group:
2941
3173
  {
2942
3174
  return /*#__PURE__*/React__default.default.createElement(FormBlockGroup, Object.assign({
2943
3175
  key: config.key
2944
- }, field, props), Object.entries(field.group).map(function (_ref) {
3176
+ }, field, {
3177
+ dataTestId: dataTestId
3178
+ }), Object.entries(field.group).map(function (_ref) {
2945
3179
  var key = _ref[0],
2946
3180
  value = _ref[1];
2947
3181
  var groupProps = Object.assign({}, value, {
@@ -2950,147 +3184,17 @@ function generateField(field, config, props) {
2950
3184
  });
2951
3185
  return generateField(groupProps, {
2952
3186
  key: key + '_form_group'
2953
- }, props);
3187
+ }, dataTestId);
2954
3188
  }));
2955
3189
  }
2956
3190
  }
2957
3191
  }
2958
3192
 
2959
- var focusOnError = function focusOnError(formElementsList, errors) {
2960
- var selectsIds = Object.keys(errors).map(function (fieldName) {
2961
- if (fieldName === finalForm.FORM_ERROR) {
2962
- // TODO: get from somewhere
2963
- return 'notification__item_status_error';
2964
- }
2965
- return "react-select-id_" + fieldName + "-input";
2966
- });
2967
- var errorFieldElement = formElementsList.find(function (element) {
2968
- if (element.name) {
2969
- return finalForm.getIn(errors, element.name);
2970
- } else {
2971
- return selectsIds.includes(element.id);
2972
- }
2973
- });
2974
- var errorsList = Object.keys(errors);
2975
- if (!errorFieldElement && errorsList.length) {
2976
- var errorElement;
2977
- try {
2978
- var fieldName = errorsList[0];
2979
- if (fieldName === finalForm.FORM_ERROR) {
2980
- errorElement = document.querySelector('notification__item_status_error');
2981
- } else {
2982
- errorElement = document.querySelector("#" + fieldName + "-error");
2983
- if (!errorElement) {
2984
- errorElement = document.querySelector("#id_" + fieldName);
2985
- }
2986
- }
2987
- } catch (err) {
2988
- console.warn(err);
2989
- }
2990
- if (errorElement) {
2991
- errorElement.scrollIntoView({
2992
- block: 'center'
2993
- }); // , behavior: 'smooth'
2994
- }
2995
- }
2996
-
2997
- // The field is covered by the header because header is "sticky",
2998
- // that's we scroll manually so that the field falls into the center of the visible area
2999
- if (errorFieldElement) {
3000
- errorFieldElement.scrollIntoView({
3001
- block: 'center'
3002
- });
3003
- }
3004
- return null;
3005
- };
3006
- var focusOnErrorDecorator = createDecorator__default.default(null, focusOnError);
3007
- var setErrorsMutator = function setErrorsMutator(args, state) {
3008
- var fieldName = args[0],
3009
- data = args[1];
3010
- var submitError = data.submitError;
3011
- var fieldError = data.error;
3012
- if (fieldName === 'non_field_errors' || fieldName === finalForm.FORM_ERROR) {
3013
- // state.formState.invalid = true
3014
- // state.formState.valid = false
3015
- state.formState.error = fieldError;
3016
- state.formState.submitError = submitError;
3017
- } else if (fieldName in state.fields) {
3018
- state.fields[fieldName].touched = true;
3019
-
3020
- // TODO: make clear error not by empty string check
3021
- if (fieldError || fieldError === '') {
3022
- var _Object$assign;
3023
- var errorsState = Object.assign({}, state.formState.errors, (_Object$assign = {}, _Object$assign[fieldName] = fieldError, _Object$assign));
3024
- state.fields[fieldName].error = fieldError;
3025
- state.formState.errors = errorsState;
3026
- }
3027
-
3028
- // TODO: make clear error not by empty string check
3029
- if (submitError || submitError === '') {
3030
- var _Object$assign2;
3031
- var submitErrorsState = Object.assign({}, state.formState.submitErrors, (_Object$assign2 = {}, _Object$assign2[fieldName] = submitError, _Object$assign2));
3032
- state.fields[fieldName].submitFailed = true;
3033
- state.fields[fieldName].submitSucceeded = false;
3034
- state.fields[fieldName].submitError = submitError;
3035
- state.formState.submitErrors = submitErrorsState;
3036
- state.formState.submitFailed = true;
3037
- state.formState.submitSucceeded = false;
3038
- state.formState.lastSubmittedValues = state.formState.values;
3039
- }
3040
- }
3041
- };
3042
- var sendFormDataToServer = /*#__PURE__*/function () {
3043
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(url, data) {
3044
- var response, _error$response, _error$response2, formErrors, _t;
3045
- return _regenerator().w(function (_context) {
3046
- while (1) switch (_context.p = _context.n) {
3047
- case 0:
3048
- _context.p = 0;
3049
- _context.n = 1;
3050
- return axios__default.default({
3051
- url: url,
3052
- method: 'POST',
3053
- data: data
3054
- });
3055
- case 1:
3056
- response = _context.v;
3057
- return _context.a(2, {
3058
- success: true,
3059
- response: response
3060
- });
3061
- case 2:
3062
- _context.p = 2;
3063
- _t = _context.v;
3064
- formErrors = {};
3065
- if (typeof ((_error$response = _t.response) == null ? void 0 : _error$response.data) === 'string') {
3066
- formErrors[finalForm.FORM_ERROR] = 'Something went wrong';
3067
- }
3068
- if (typeof ((_error$response2 = _t.response) == null ? void 0 : _error$response2.data) === 'object') {
3069
- Object.entries(_t.response.data).forEach(function (_ref2) {
3070
- var fieldName = _ref2[0],
3071
- errorsList = _ref2[1];
3072
- formErrors[fieldName] = errorsList[0];
3073
- });
3074
- }
3075
- return _context.a(2, {
3076
- error: _t,
3077
- success: false,
3078
- formErrors: formErrors
3079
- });
3080
- }
3081
- }, _callee, null, [[0, 2]]);
3082
- }));
3083
- return function sendFormDataToServer(_x, _x2) {
3084
- return _ref.apply(this, arguments);
3085
- };
3086
- }();
3087
-
3088
3193
  var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalForm(props, ref) {
3089
3194
  var className = props.className,
3090
3195
  dataTestId = props.dataTestId,
3091
3196
  dataTour = props.dataTour,
3092
3197
  type = props.type,
3093
- name = props.name,
3094
3198
  initialValues = props.initialValues,
3095
3199
  initialValuesEqual = props.initialValuesEqual,
3096
3200
  config = props.config,
@@ -3105,11 +3209,10 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3105
3209
  descSize = props.descSize,
3106
3210
  descTextColor = props.descTextColor,
3107
3211
  descTextWeight = props.descTextWeight,
3108
- buttonGap = props.buttonGap,
3109
- _props$additionalProp = props.additionalProps,
3110
- additionalProps = _props$additionalProp === void 0 ? {} : _props$additionalProp,
3111
- _props$buttonDirectio = props.buttonDirection,
3112
- buttonDirection = _props$buttonDirectio === void 0 ? "vertical" : _props$buttonDirectio,
3212
+ buttonGap = props.buttonGap;
3213
+ props.additionalProps;
3214
+ var _props$buttonDirectio = props.buttonDirection,
3215
+ buttonDirection = _props$buttonDirectio === void 0 ? 'vertical' : _props$buttonDirectio,
3113
3216
  buttonFill = props.buttonFill,
3114
3217
  buttonJustifyContent = props.buttonJustifyContent,
3115
3218
  buttonPadding = props.buttonPadding,
@@ -3125,22 +3228,21 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3125
3228
  _props$disableFieldsA = props.disableFieldsAutoComplete,
3126
3229
  disableFieldsAutoComplete = _props$disableFieldsA === void 0 ? false : _props$disableFieldsA,
3127
3230
  fieldsGap = props.fieldsGap,
3128
- formName = props.formName,
3129
3231
  groupGap = props.groupGap,
3130
3232
  heightClass = props.heightClass,
3131
3233
  language = props.language,
3132
3234
  loader = props.loader,
3133
3235
  loaderAppearance = props.loaderAppearance,
3134
3236
  _props$loaderFill = props.loaderFill,
3135
- loaderFill = _props$loaderFill === void 0 ? "surfacePrimary" : _props$loaderFill,
3237
+ loaderFill = _props$loaderFill === void 0 ? 'surfacePrimary' : _props$loaderFill,
3136
3238
  _props$loaderItemFill = props.loaderItemFill,
3137
- loaderItemFill = _props$loaderItemFill === void 0 ? "accentItemSecondary" : _props$loaderItemFill,
3239
+ loaderItemFill = _props$loaderItemFill === void 0 ? 'accentItemSecondary' : _props$loaderItemFill,
3138
3240
  loaderShape = props.loaderShape,
3139
3241
  _props$loaderSize = props.loaderSize,
3140
- loaderSize = _props$loaderSize === void 0 ? "l" : _props$loaderSize,
3242
+ loaderSize = _props$loaderSize === void 0 ? 'l' : _props$loaderSize,
3141
3243
  loaderText = props.loaderText,
3142
3244
  _props$loaderType = props.loaderType,
3143
- loaderType = _props$loaderType === void 0 ? "dot" : _props$loaderType,
3245
+ loaderType = _props$loaderType === void 0 ? 'dot' : _props$loaderType,
3144
3246
  mutators = props.mutators,
3145
3247
  notificationCloseButton = props.notificationCloseButton,
3146
3248
  notificationType = props.notificationType,
@@ -3174,6 +3276,7 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3174
3276
  secondaryButtonSize = props.secondaryButtonSize,
3175
3277
  shapeStrengthClass = props.shapeStrengthClass,
3176
3278
  tertiaryButton = props.tertiaryButton,
3279
+ tertiaryButtonAppearance = props.tertiaryButtonAppearance,
3177
3280
  tertiaryButtonFill = props.tertiaryButtonFill,
3178
3281
  tertiaryButtonFillHover = props.tertiaryButtonFillHover,
3179
3282
  tertiaryButtonLabel = props.tertiaryButtonLabel,
@@ -3195,12 +3298,12 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3195
3298
  ref.current = formInstance;
3196
3299
  }
3197
3300
  }, [ref]);
3198
- var propsGenerator = useDevicePropsGenerator.useDevicePropsGenerator(props);
3301
+ var propsGenerator = hooks.useDevicePropsGenerator(props);
3199
3302
  var directionClass = propsGenerator.directionClass,
3200
3303
  fillClass = propsGenerator.fillClass,
3201
3304
  elevationClass = propsGenerator.elevationClass,
3202
3305
  shapeClass = propsGenerator.shapeClass;
3203
- var _useStyles = useStyles.useStyles(props),
3306
+ var _useStyles = hooks.useStyles(props),
3204
3307
  formStyles = _useStyles.styles,
3205
3308
  wrapperStyles = _useStyles.wrapper;
3206
3309
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Form, {
@@ -3212,19 +3315,18 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3212
3315
  modifiedSinceLastSubmit = _ref.modifiedSinceLastSubmit,
3213
3316
  submitError = _ref.submitError;
3214
3317
  return /*#__PURE__*/React__default.default.createElement("form", {
3215
- className: clsx__default.default(className, "form", type && "form_type_" + type, widthClass && "width_" + widthClass, heightClass && "height_" + heightClass, titlePosition && "form_title-position_" + titlePosition, buttonPosition && "form_button-position_" + buttonPosition, directionClass && "direction_" + directionClass, fillClass && "fill_" + fillClass, shapeClass && "shape_" + shapeClass, shapeStrengthClass && "shape-strength_" + shapeStrengthClass, elevationClass && "elevation_" + elevationClass),
3216
- name: formName || "form"
3318
+ className: clsx__default.default(className, 'form', type && "form_type_" + type, widthClass && "width_" + widthClass, heightClass && "height_" + heightClass, titlePosition && "form_title-position_" + titlePosition, buttonPosition && "form_button-position_" + buttonPosition, directionClass && "direction_" + directionClass, fillClass && "fill_" + fillClass, shapeClass && "shape_" + shapeClass, shapeStrengthClass && "shape-strength_" + shapeStrengthClass, elevationClass && "elevation_" + elevationClass)
3217
3319
  // We no need set reference to html element, we need reference to "final-form" instance
3218
3320
  ,
3219
3321
  ref: function ref() {
3220
3322
  return onRefFormInstance(form);
3221
3323
  },
3222
- autoCapitalize: disableFieldsAutoComplete ? "off" : undefined,
3223
- autoComplete: disableFieldsAutoComplete ? "off" : undefined,
3224
- autoCorrect: disableFieldsAutoComplete ? "off" : undefined,
3225
- "data-testid": dataTestId || name,
3324
+ autoCapitalize: disableFieldsAutoComplete ? 'off' : undefined,
3325
+ autoComplete: disableFieldsAutoComplete ? 'off' : undefined,
3326
+ autoCorrect: disableFieldsAutoComplete ? 'off' : undefined,
3327
+ "data-testid": dataTestId || 'Form',
3226
3328
  "data-tour": dataTour,
3227
- spellCheck: disableFieldsAutoComplete ? "false" : undefined,
3329
+ spellCheck: disableFieldsAutoComplete ? 'false' : undefined,
3228
3330
  style: formStyles,
3229
3331
  onSubmit: handleSubmit
3230
3332
  }, before, title && /*#__PURE__*/React__default.default.createElement(Title.Title, {
@@ -3232,14 +3334,16 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3232
3334
  size: titleTextSize,
3233
3335
  fill: titleFill,
3234
3336
  textColor: titleTextColor,
3235
- textWeight: titleTextWeight
3337
+ textWeight: titleTextWeight,
3338
+ "data-testid": dataTestId ? dataTestId + "Title" : 'FormTitle'
3236
3339
  }, title), desc && /*#__PURE__*/React__default.default.createElement(Text.Text, {
3237
3340
  className: "form__desc",
3238
3341
  size: descSize,
3239
3342
  textColor: descTextColor,
3240
- textWeight: descTextWeight
3343
+ textWeight: descTextWeight,
3344
+ "data-testid": dataTestId ? dataTestId + "Desc" : 'FormDesc'
3241
3345
  }, desc), submitError && !modifiedSinceLastSubmit && /*#__PURE__*/React__default.default.createElement("div", {
3242
- className: clsx__default.default("notification", "form-notification", notificationType ? "form-notification_" + notificationType : "form-notification_global")
3346
+ className: clsx__default.default('notification', 'form-notification', notificationType ? "form-notification_" + notificationType : 'form-notification_global')
3243
3347
  }, /*#__PURE__*/React__default.default.createElement(Notification.Notification, {
3244
3348
  appearance: "errorPrimary sizeM solid rounded",
3245
3349
  type: "global",
@@ -3259,7 +3363,7 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3259
3363
  }, Object.keys(config).map(function (key) {
3260
3364
  return generateField(config[key], {
3261
3365
  key: key
3262
- }, additionalProps[config[key].name]);
3366
+ }, dataTestId);
3263
3367
  }), isLoading && (loader || /*#__PURE__*/React__default.default.createElement(Loader.Loader, {
3264
3368
  appearance: loaderAppearance,
3265
3369
  className: "form__loader",
@@ -3267,11 +3371,12 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3267
3371
  size: loaderSize,
3268
3372
  fill: loaderFill,
3269
3373
  text: loaderText,
3374
+ "data-testid": dataTestId + "Loader",
3270
3375
  itemFill: loaderItemFill,
3271
3376
  shape: loaderShape
3272
3377
  }))))), (primaryButtonLabel || primaryButton || secondaryButtonLabel || secondaryButton || tertiaryButton || tertiaryButtonLabel) && /*#__PURE__*/React__default.default.createElement(Group.Group, {
3273
3378
  className: "form__button",
3274
- dataTestId: dataTestIdButtons,
3379
+ dataTestId: dataTestIdButtons || dataTestId + "Buttons",
3275
3380
  dataTour: dataTourButtons,
3276
3381
  direction: buttonDirection,
3277
3382
  justifyContent: buttonJustifyContent,
@@ -3281,7 +3386,7 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3281
3386
  }, primaryButtonLabel ? /*#__PURE__*/React__default.default.createElement(Button.Button, {
3282
3387
  appearance: primaryButtonAppearance,
3283
3388
  className: "form__button-item",
3284
- dataTestId: dataTestIdPrimaryButton || (name ? name + "-primary" : "form-primary"),
3389
+ dataTestId: dataTestIdPrimaryButton || dataTestId && dataTestId + "PrimaryButton" || 'FormPrimaryButton',
3285
3390
  dataTour: dataTourPrimaryButton,
3286
3391
  width: "fill",
3287
3392
  size: primaryButtonSize,
@@ -3291,13 +3396,13 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3291
3396
  labelTextColor: primaryButtonLabelTextColor,
3292
3397
  labelTextSize: primaryButtonLabelSize,
3293
3398
  labelTextWeight: primaryButtonLabelTextWeight,
3294
- htmlType: primaryButtonHtmlType || "submit",
3399
+ htmlType: primaryButtonHtmlType || 'submit',
3295
3400
  loading: primaryButtonIsLoading,
3296
3401
  isDisabled: primaryButtonIsDisabled
3297
3402
  }) : primaryButton, secondaryButtonLabel ? /*#__PURE__*/React__default.default.createElement(Button.Button, {
3298
3403
  appearance: secondaryButtonAppearance,
3299
3404
  className: "form__button-item",
3300
- dataTestId: dataTestIdSecondaryButton || (name ? name + "-secondary" : "form-secondary"),
3405
+ dataTestId: dataTestIdSecondaryButton || dataTestId && dataTestId + "SecondaryButton" || 'FormSecondaryButton',
3301
3406
  dataTour: dataTourSecondaryButton,
3302
3407
  width: "fill",
3303
3408
  size: secondaryButtonSize,
@@ -3312,8 +3417,9 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3312
3417
  isDisabled: secondaryButtonIsDisabled,
3313
3418
  onClick: onClickSecondaryButton
3314
3419
  }) : secondaryButton, tertiaryButtonLabel ? /*#__PURE__*/React__default.default.createElement(Button.Button, {
3420
+ appearance: tertiaryButtonAppearance,
3315
3421
  className: "form__button-item",
3316
- dataTestId: dataTestIdTertiaryButton,
3422
+ dataTestId: dataTestIdTertiaryButton || dataTestId && dataTestId + "TertiaryButton" || 'FormTertiaryButton',
3317
3423
  dataTour: dataTourTertiaryButton,
3318
3424
  width: "fill",
3319
3425
  size: tertiaryButtonSize,
@@ -3339,7 +3445,7 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3339
3445
  });
3340
3446
  });
3341
3447
  FinalForm.defaultProps = {
3342
- direction: "vertical"
3448
+ direction: 'vertical'
3343
3449
  };
3344
3450
 
3345
3451
  var DEFAULT_MESSAGES_REQUIRED = {
@@ -3617,6 +3723,7 @@ exports.FormFieldSelect = FormFieldSelect;
3617
3723
  exports.FormFieldSwitch = FormFieldSwitch;
3618
3724
  exports.FormFieldTextarea = FormFieldTextarea;
3619
3725
  exports.addRequiredFieldsParamToSchema = addRequiredFieldsParamToSchema;
3726
+ exports.createDataTestIdField = createDataTestIdField;
3620
3727
  exports.dateValidation = dateValidation;
3621
3728
  exports.defaultCheckboxProps = defaultCheckboxProps;
3622
3729
  exports.defaultChipsProps = defaultChipsProps;