@itcase/forms 1.1.55 → 1.1.56

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,24 +2234,25 @@ 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
  });
@@ -2096,7 +2264,8 @@ var defaultInputNumberProps = {
2096
2264
  };
2097
2265
 
2098
2266
  var FormFieldInputNumber = /*#__PURE__*/React__default.default.memo(function FormFieldInputNumber(props) {
2099
- var _props$type = props.type,
2267
+ var dataTestId = props.dataTestId,
2268
+ _props$type = props.type,
2100
2269
  type = _props$type === void 0 ? 'custom' : _props$type,
2101
2270
  name = props.name,
2102
2271
  initialValue = props.initialValue,
@@ -2135,8 +2304,10 @@ var FormFieldInputNumber = /*#__PURE__*/React__default.default.memo(function For
2135
2304
  var updatedInputProps = useValidationAppearanceInputProps({
2136
2305
  inputProps: inputProps
2137
2306
  });
2307
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2138
2308
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2139
2309
  className: clsx__default.default('form-field_input-number', 'form__item_input-number', classNameGroupItem),
2310
+ dataTestId: dataTestIdField,
2140
2311
  errorKey: errorKey,
2141
2312
  errorMessage: errorMessage,
2142
2313
  fieldClassName: "form-input-number",
@@ -2151,7 +2322,7 @@ var FormFieldInputNumber = /*#__PURE__*/React__default.default.memo(function For
2151
2322
  isValidState: isValidState
2152
2323
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(InputNumber.InputNumber, Object.assign({
2153
2324
  className: clsx__default.default(meta.active && 'input_state_focus', (meta.submitFailed || meta.touched) && meta.error && "input_state_" + errorKey),
2154
- dataTestId: input.name + "FieldInputNumber",
2325
+ dataTestId: dataTestIdField + "InputNumber",
2155
2326
  type: type,
2156
2327
  name: input.name,
2157
2328
  value: input.value || 0,
@@ -2161,7 +2332,8 @@ var FormFieldInputNumber = /*#__PURE__*/React__default.default.memo(function For
2161
2332
  });
2162
2333
 
2163
2334
  var FormFieldMaskedInput = /*#__PURE__*/React__default.default.memo(function FormFieldMaskedInput(props) {
2164
- var name = props.name,
2335
+ var dataTestId = props.dataTestId,
2336
+ name = props.name,
2165
2337
  initialValue = props.initialValue,
2166
2338
  classNameGroupItem = props.classNameGroupItem,
2167
2339
  clearIcon = props.clearIcon,
@@ -2223,8 +2395,10 @@ var FormFieldMaskedInput = /*#__PURE__*/React__default.default.memo(function For
2223
2395
  inputProps: inputProps,
2224
2396
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2225
2397
  });
2398
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2226
2399
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2227
2400
  className: clsx__default.default('form-field-masked-input', 'form__item_masked-input', classNameGroupItem),
2401
+ dataTestId: dataTestIdField,
2228
2402
  errorKey: errorKey,
2229
2403
  errorMessage: errorMessage,
2230
2404
  fieldClassName: 'form-maskedInput',
@@ -2268,7 +2442,8 @@ var defaultPasswordProps = {
2268
2442
  };
2269
2443
 
2270
2444
  var FormFieldPassword = /*#__PURE__*/React__default.default.memo(function FormFieldPassword(props) {
2271
- var name = props.name,
2445
+ var dataTestId = props.dataTestId,
2446
+ name = props.name,
2272
2447
  initialValue = props.initialValue,
2273
2448
  classNameGroupItem = props.classNameGroupItem,
2274
2449
  fieldProps = props.fieldProps,
@@ -2312,13 +2487,15 @@ var FormFieldPassword = /*#__PURE__*/React__default.default.memo(function FormFi
2312
2487
  inputProps: inputProps,
2313
2488
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2314
2489
  });
2490
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2315
2491
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2316
- className: clsx__default.default("form-field_input-password", "form__item_input-password", classNameGroupItem),
2492
+ className: clsx__default.default('form-field_input-password', 'form__item_input-password', classNameGroupItem),
2493
+ dataTestId: dataTestIdField,
2317
2494
  errorKey: errorKey,
2318
2495
  errorMessage: errorMessage,
2319
2496
  fieldClassName: "form-password",
2320
2497
  inputName: input.name,
2321
- inputValue: input.value || "",
2498
+ inputValue: input.value || '',
2322
2499
  metaActive: meta.active,
2323
2500
  metaError: meta.error,
2324
2501
  showMessage: showMessage,
@@ -2327,11 +2504,11 @@ var FormFieldPassword = /*#__PURE__*/React__default.default.memo(function FormFi
2327
2504
  isRequired: isRequired,
2328
2505
  isValidState: isValidState
2329
2506
  }, 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",
2507
+ className: clsx__default.default(meta.active && 'input-password_state_focus', meta.error && meta.touched && "input-password_state_" + errorKey),
2508
+ dataTestId: dataTestIdField + "InputPassword",
2332
2509
  name: input.name,
2333
2510
  autoComplete: "nope",
2334
- value: input.value || "",
2511
+ value: input.value || '',
2335
2512
  isDisabled: isDisabled,
2336
2513
  onBlur: input.onBlur,
2337
2514
  onChange: onChangeField,
@@ -2383,8 +2560,9 @@ function FormFieldRadioGroupList(props) {
2383
2560
  }
2384
2561
 
2385
2562
  var FormFieldRadioGroup = /*#__PURE__*/React__default.default.memo(function FormFieldRadioGroup(props) {
2386
- var name = props.name,
2387
- isDisabled = props.isDisabled,
2563
+ var dataTestId = props.dataTestId,
2564
+ name = props.name,
2565
+ classNameGroupItem = props.classNameGroupItem,
2388
2566
  _props$editableProps = props.editableProps,
2389
2567
  editableProps = _props$editableProps === void 0 ? {} : _props$editableProps,
2390
2568
  _props$fieldProps = props.fieldProps,
@@ -2393,8 +2571,8 @@ var FormFieldRadioGroup = /*#__PURE__*/React__default.default.memo(function Form
2393
2571
  inputProps = _props$inputProps === void 0 ? {} : _props$inputProps,
2394
2572
  _props$options = props.options,
2395
2573
  options = _props$options === void 0 ? [] : _props$options,
2396
- classNameGroupItem = props.classNameGroupItem,
2397
2574
  showMessage = props.showMessage,
2575
+ isDisabled = props.isDisabled,
2398
2576
  isRequired = props.isRequired,
2399
2577
  onChange = props.onChange;
2400
2578
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
@@ -2422,26 +2600,28 @@ var FormFieldRadioGroup = /*#__PURE__*/React__default.default.memo(function Form
2422
2600
  inputProps: inputProps,
2423
2601
  validationStateKey: isErrorState ? errorKey : 'success'
2424
2602
  });
2603
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2425
2604
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2426
2605
  className: clsx__default.default('form-field_radio', 'form__item_radio', classNameGroupItem),
2606
+ dataTestId: dataTestIdField,
2427
2607
  errorKey: errorKey,
2428
2608
  errorMessage: errorMessage,
2429
- isErrorState: isErrorState,
2430
- metaError: meta.error,
2431
- isDisabled: isDisabled,
2432
2609
  fieldClassName: 'form-radio',
2433
2610
  inputName: input.name,
2434
2611
  inputValue: input.value || '',
2435
2612
  metaActive: meta.active,
2613
+ metaError: meta.error,
2436
2614
  showMessage: showMessage,
2615
+ isDisabled: isDisabled,
2616
+ isErrorState: isErrorState,
2437
2617
  isRequired: isRequired,
2438
2618
  isValidState: isValidState
2439
2619
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(FormFieldRadioGroupList, {
2440
- isDisabled: isDisabled,
2441
2620
  editableProps: editableProps,
2442
2621
  input: input,
2443
2622
  inputProps: updatedInputProps,
2444
2623
  options: options,
2624
+ isDisabled: isDisabled,
2445
2625
  onChange: onChange
2446
2626
  }));
2447
2627
  });
@@ -2458,12 +2638,13 @@ var defaultSegmentedProps = {
2458
2638
  };
2459
2639
 
2460
2640
  function FormFieldSegmented(props) {
2461
- var name = props.name,
2462
- isDisabled = props.isDisabled,
2641
+ var dataTestId = props.dataTestId,
2642
+ name = props.name,
2463
2643
  fieldProps = props.fieldProps,
2464
2644
  inputProps = props.inputProps,
2465
2645
  options = props.options,
2466
2646
  showMessage = props.showMessage,
2647
+ isDisabled = props.isDisabled,
2467
2648
  isRequired = props.isRequired;
2468
2649
  var _useForm = reactFinalForm.useForm(),
2469
2650
  change = _useForm.change;
@@ -2502,31 +2683,33 @@ function FormFieldSegmented(props) {
2502
2683
  }),
2503
2684
  errorKey = _useFieldValidationSt.errorKey,
2504
2685
  errorMessage = _useFieldValidationSt.errorMessage,
2505
- isErrorState = _useFieldValidationSt.isErrorState,
2506
2686
  successKey = _useFieldValidationSt.successKey,
2687
+ isErrorState = _useFieldValidationSt.isErrorState,
2507
2688
  isValidState = _useFieldValidationSt.isValidState;
2508
2689
  var updatedInputProps = useValidationAppearanceInputProps({
2509
2690
  inputProps: inputProps,
2510
2691
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2511
2692
  });
2693
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2512
2694
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2513
2695
  className: clsx__default.default('form-field_segmented', 'form__item_segmented'),
2696
+ dataTestId: dataTestIdField,
2514
2697
  errorKey: errorKey,
2515
2698
  errorMessage: errorMessage,
2516
- isErrorState: isErrorState,
2517
- metaError: meta.error,
2518
- isDisabled: isDisabled,
2519
2699
  fieldClassName: "form-segmented",
2520
2700
  inputName: input.name,
2521
2701
  inputValue: input.value || [],
2522
2702
  metaActive: meta.active,
2703
+ metaError: meta.error,
2523
2704
  showMessage: showMessage,
2705
+ isDisabled: isDisabled,
2706
+ isErrorState: isErrorState,
2524
2707
  isRequired: isRequired,
2525
2708
  isValidState: isValidState
2526
2709
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Segmented.Segmented, Object.assign({
2527
- isDisabled: isDisabled,
2528
2710
  activeSegment: activeOption,
2529
2711
  segments: options,
2712
+ isDisabled: isDisabled,
2530
2713
  setActiveSegment: setActiveSegment
2531
2714
  }, updatedInputProps)));
2532
2715
  });
@@ -2562,17 +2745,18 @@ function getDefaultValue(options, selectValue) {
2562
2745
  return result;
2563
2746
  }
2564
2747
  var FormFieldSelect = /*#__PURE__*/React__default.default.memo(function FormFieldSelect(props) {
2565
- var isDisabled = props.isDisabled,
2566
- isRequired = props.isRequired,
2748
+ var dataTestId = props.dataTestId,
2749
+ name = props.name,
2750
+ initialValue = props.initialValue,
2567
2751
  classNameGroupItem = props.classNameGroupItem,
2568
2752
  fieldProps = props.fieldProps,
2569
- initialValue = props.initialValue,
2570
- name = props.name,
2571
2753
  _props$options = props.options,
2572
2754
  options = _props$options === void 0 ? [] : _props$options,
2573
2755
  selectProps = props.selectProps,
2574
2756
  selectRef = props.selectRef,
2575
2757
  showMessage = props.showMessage,
2758
+ isDisabled = props.isDisabled,
2759
+ isRequired = props.isRequired,
2576
2760
  onChange = props.onChange,
2577
2761
  onInputChange = props.onInputChange;
2578
2762
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
@@ -2624,34 +2808,36 @@ var FormFieldSelect = /*#__PURE__*/React__default.default.memo(function FormFiel
2624
2808
  }),
2625
2809
  errorKey = _useFieldValidationSt.errorKey,
2626
2810
  errorMessage = _useFieldValidationSt.errorMessage,
2627
- isErrorState = _useFieldValidationSt.isErrorState,
2628
2811
  successKey = _useFieldValidationSt.successKey,
2812
+ isErrorState = _useFieldValidationSt.isErrorState,
2629
2813
  isValidState = _useFieldValidationSt.isValidState;
2630
2814
  var updatedSelectProps = useValidationAppearanceInputProps({
2631
2815
  inputProps: selectProps,
2632
2816
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2633
2817
  });
2818
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2634
2819
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2635
2820
  className: clsx__default.default('form-field_select', 'form__item_select', classNameGroupItem),
2821
+ dataTestId: dataTestIdField,
2636
2822
  errorKey: errorKey,
2637
2823
  errorMessage: errorMessage,
2638
- isErrorState: isErrorState,
2639
- metaError: meta.error,
2640
- isDisabled: isDisabled,
2641
2824
  fieldClassName: 'form-select',
2642
2825
  inputName: input.name,
2643
2826
  inputValue: input.value,
2644
2827
  metaActive: meta.active,
2828
+ metaError: meta.error,
2645
2829
  showMessage: showMessage,
2830
+ isDisabled: isDisabled,
2831
+ isErrorState: isErrorState,
2646
2832
  isRequired: isRequired,
2647
2833
  isValidState: isValidState
2648
2834
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Select.Select, Object.assign({
2649
2835
  className: "form-select-item",
2650
2836
  ref: selectRef,
2651
- isDisabled: isDisabled,
2652
2837
  instanceId: "id_" + input.name,
2653
2838
  options: options,
2654
2839
  value: selectedOptions,
2840
+ isDisabled: isDisabled,
2655
2841
  onChange: onChangeValue,
2656
2842
  onInputChange: onInputChange
2657
2843
  }, updatedSelectProps)));
@@ -2666,14 +2852,15 @@ var defaultSwitchProps = {
2666
2852
  };
2667
2853
 
2668
2854
  var FormFieldSwitch = /*#__PURE__*/React__default.default.memo(function FormFieldSwitch(props) {
2669
- var name = props.name,
2670
- isDisabled = props.isDisabled,
2855
+ var dataTestId = props.dataTestId,
2856
+ name = props.name,
2671
2857
  classNameGroupItem = props.classNameGroupItem,
2672
2858
  _props$fieldProps = props.fieldProps,
2673
2859
  fieldProps = _props$fieldProps === void 0 ? {} : _props$fieldProps,
2674
2860
  _props$inputProps = props.inputProps,
2675
2861
  inputProps = _props$inputProps === void 0 ? {} : _props$inputProps,
2676
2862
  showMessage = props.showMessage,
2863
+ isDisabled = props.isDisabled,
2677
2864
  isRequired = props.isRequired,
2678
2865
  onChange = props.onChange;
2679
2866
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
@@ -2702,34 +2889,36 @@ var FormFieldSwitch = /*#__PURE__*/React__default.default.memo(function FormFiel
2702
2889
  }),
2703
2890
  errorKey = _useFieldValidationSt.errorKey,
2704
2891
  errorMessage = _useFieldValidationSt.errorMessage,
2705
- isErrorState = _useFieldValidationSt.isErrorState,
2706
2892
  successKey = _useFieldValidationSt.successKey,
2893
+ isErrorState = _useFieldValidationSt.isErrorState,
2707
2894
  isValidState = _useFieldValidationSt.isValidState;
2708
2895
  var updatedInputProps = useValidationAppearanceInputProps({
2709
2896
  inputProps: inputProps,
2710
2897
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2711
2898
  });
2899
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2712
2900
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2713
2901
  className: clsx__default.default('form-field-switch', 'form__item_switch', classNameGroupItem),
2902
+ dataTestId: dataTestIdField,
2714
2903
  errorKey: errorKey,
2715
2904
  errorMessage: errorMessage,
2716
- isErrorState: isErrorState,
2717
- metaError: meta.error,
2718
- isDisabled: isDisabled,
2719
2905
  fieldClassName: "form-switch",
2720
2906
  inputName: input.name,
2721
2907
  inputValue: input.checked,
2722
2908
  metaActive: meta.active,
2909
+ metaError: meta.error,
2723
2910
  showMessage: showMessage,
2724
2911
  tag: "label",
2912
+ isDisabled: isDisabled,
2913
+ isErrorState: isErrorState,
2725
2914
  isRequired: isRequired,
2726
2915
  isValidState: isValidState
2727
2916
  }, fieldProps), /*#__PURE__*/React__default.default.createElement(Switch.Switch, Object.assign({
2728
2917
  type: "checkbox",
2729
2918
  name: input.name,
2730
- isDisabled: isDisabled,
2731
2919
  autoComplete: "nope",
2732
2920
  isActive: input.checked,
2921
+ isDisabled: isDisabled,
2733
2922
  onBlur: input.onBlur,
2734
2923
  onChange: onChangeField,
2735
2924
  onFocus: input.onFocus
@@ -2749,7 +2938,8 @@ var defaultTextareaProps = {
2749
2938
  };
2750
2939
 
2751
2940
  var FormFieldTextarea = /*#__PURE__*/React__default.default.memo(function FormFieldTextarea(props) {
2752
- var name = props.name,
2941
+ var dataTestId = props.dataTestId,
2942
+ name = props.name,
2753
2943
  classNameGroupItem = props.classNameGroupItem,
2754
2944
  _props$fieldProps = props.fieldProps,
2755
2945
  fieldProps = _props$fieldProps === void 0 ? {} : _props$fieldProps,
@@ -2784,11 +2974,13 @@ var FormFieldTextarea = /*#__PURE__*/React__default.default.memo(function FormFi
2784
2974
  inputProps: inputProps,
2785
2975
  validationStateKey: isErrorState ? errorKey : isValidState ? successKey : null
2786
2976
  });
2977
+ var dataTestIdField = createDataTestIdField(input.name, dataTestId);
2787
2978
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
2788
- className: clsx__default.default("form-field_textarea", "form__item_textarea", classNameGroupItem),
2979
+ className: clsx__default.default('form-field_textarea', 'form__item_textarea', classNameGroupItem),
2980
+ dataTestId: dataTestIdField,
2789
2981
  errorKey: errorKey,
2790
2982
  errorMessage: errorMessage,
2791
- fieldClassName: "form-textarea",
2983
+ fieldClassName: 'form-textarea',
2792
2984
  inputName: input.name,
2793
2985
  inputValue: input.value,
2794
2986
  metaActive: meta.active,
@@ -2799,11 +2991,11 @@ var FormFieldTextarea = /*#__PURE__*/React__default.default.memo(function FormFi
2799
2991
  isRequired: isRequired,
2800
2992
  isValidState: isValidState
2801
2993
  }, 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",
2994
+ className: clsx__default.default(meta.active && 'textarea_state_focus', meta.error && meta.touched && "textarea_state_" + errorKey),
2995
+ dataTestId: dataTestIdField + "Textarea",
2804
2996
  name: input.name,
2805
2997
  autoComplete: "nope",
2806
- value: input.value || "",
2998
+ value: input.value || '',
2807
2999
  isDisabled: isDisabled,
2808
3000
  onBlur: input.onBlur,
2809
3001
  onChange: input.onChange,
@@ -2833,115 +3025,151 @@ var formTypes = {
2833
3025
  select: 'select',
2834
3026
  "switch": 'switch'
2835
3027
  };
2836
- function generateField(field, config, props) {
3028
+ function generateField(field, config, dataTestId) {
2837
3029
  switch (field.type) {
2838
3030
  case formTypes.password:
2839
3031
  {
2840
3032
  return /*#__PURE__*/React__default.default.createElement(FormFieldPassword, Object.assign({
2841
3033
  key: config.key
2842
- }, field, props));
3034
+ }, field, {
3035
+ dataTestId: dataTestId
3036
+ }));
2843
3037
  }
2844
3038
  case formTypes.checkbox:
2845
3039
  {
2846
3040
  return /*#__PURE__*/React__default.default.createElement(FormFieldCheckbox, Object.assign({
2847
3041
  key: config.key
2848
- }, field, props));
3042
+ }, field, {
3043
+ dataTestId: dataTestId
3044
+ }));
2849
3045
  }
2850
3046
  case formTypes.choice:
2851
3047
  {
2852
3048
  return /*#__PURE__*/React__default.default.createElement(FormFieldChoice, Object.assign({
2853
3049
  key: config.key
2854
- }, field, props));
3050
+ }, field, {
3051
+ dataTestId: dataTestId
3052
+ }));
2855
3053
  }
2856
3054
  case formTypes.code:
2857
3055
  {
2858
3056
  return /*#__PURE__*/React__default.default.createElement(FormFieldCode, Object.assign({
2859
3057
  key: config.key
2860
- }, field, props));
3058
+ }, field, {
3059
+ dataTestId: dataTestId
3060
+ }));
2861
3061
  }
2862
3062
  case formTypes.chips:
2863
3063
  {
2864
3064
  return /*#__PURE__*/React__default.default.createElement(FormFieldChips, Object.assign({
2865
3065
  key: config.key
2866
- }, field, props));
3066
+ }, field, {
3067
+ dataTestId: dataTestId
3068
+ }));
2867
3069
  }
2868
3070
  case formTypes["switch"]:
2869
3071
  {
2870
3072
  return /*#__PURE__*/React__default.default.createElement(FormFieldSwitch, Object.assign({
2871
3073
  key: config.key
2872
- }, field, props));
3074
+ }, field, {
3075
+ dataTestId: dataTestId
3076
+ }));
2873
3077
  }
2874
3078
  case formTypes.segmented:
2875
3079
  {
2876
3080
  return /*#__PURE__*/React__default.default.createElement(FormFieldSegmented, Object.assign({
2877
3081
  key: config.key
2878
- }, field, props));
3082
+ }, field, {
3083
+ dataTestId: dataTestId
3084
+ }));
2879
3085
  }
2880
3086
  case formTypes.datePicker:
2881
3087
  {
2882
3088
  return /*#__PURE__*/React__default.default.createElement(FormFieldDatePicker, Object.assign({
2883
3089
  key: config.key
2884
- }, field, props));
3090
+ }, field, {
3091
+ dataTestId: dataTestId
3092
+ }));
2885
3093
  }
2886
3094
  case formTypes.fileInput:
2887
3095
  {
2888
3096
  return /*#__PURE__*/React__default.default.createElement(FormFieldFileInput, Object.assign({
2889
3097
  key: config.key
2890
- }, field, props));
3098
+ }, field, {
3099
+ dataTestId: dataTestId
3100
+ }));
2891
3101
  }
2892
3102
  case formTypes.radioGroup:
2893
3103
  {
2894
3104
  return /*#__PURE__*/React__default.default.createElement(FormFieldRadioGroup, Object.assign({
2895
3105
  key: config.key
2896
- }, field, props));
3106
+ }, field, {
3107
+ dataTestId: dataTestId
3108
+ }));
2897
3109
  }
2898
3110
  case formTypes.select:
2899
3111
  {
2900
3112
  return /*#__PURE__*/React__default.default.createElement(FormFieldSelect, Object.assign({
2901
3113
  key: config.key
2902
- }, field, props));
3114
+ }, field, {
3115
+ dataTestId: dataTestId
3116
+ }));
2903
3117
  }
2904
3118
  case formTypes.text:
2905
3119
  {
2906
3120
  return /*#__PURE__*/React__default.default.createElement(FormFieldInput, Object.assign({
2907
3121
  key: config.key
2908
- }, field, props));
3122
+ }, field, {
3123
+ dataTestId: dataTestId
3124
+ }));
2909
3125
  }
2910
3126
  case formTypes.textarea:
2911
3127
  {
2912
3128
  return /*#__PURE__*/React__default.default.createElement(FormFieldTextarea, Object.assign({
2913
3129
  key: config.key
2914
- }, field, props));
3130
+ }, field, {
3131
+ dataTestId: dataTestId
3132
+ }));
2915
3133
  }
2916
3134
  case formTypes.maskedInput:
2917
3135
  {
2918
3136
  return /*#__PURE__*/React__default.default.createElement(FormFieldMaskedInput, Object.assign({
2919
3137
  key: config.key
2920
- }, field, props));
3138
+ }, field, {
3139
+ dataTestId: dataTestId
3140
+ }));
2921
3141
  }
2922
3142
  case formTypes.custom:
2923
3143
  {
2924
3144
  return /*#__PURE__*/React__default.default.createElement(FormFieldCustom, Object.assign({
2925
3145
  key: config.key
2926
- }, field, props));
3146
+ }, field, {
3147
+ dataTestId: dataTestId
3148
+ }));
2927
3149
  }
2928
3150
  case formTypes.dadataInput:
2929
3151
  {
2930
3152
  return /*#__PURE__*/React__default.default.createElement(FormFieldDadataInput, Object.assign({
2931
3153
  key: config.key
2932
- }, field, props));
3154
+ }, field, {
3155
+ dataTestId: dataTestId
3156
+ }));
2933
3157
  }
2934
3158
  case formTypes.inputNumber:
2935
3159
  {
2936
3160
  return /*#__PURE__*/React__default.default.createElement(FormFieldInputNumber, Object.assign({
2937
3161
  key: config.key
2938
- }, field, props));
3162
+ }, field, {
3163
+ dataTestId: dataTestId
3164
+ }));
2939
3165
  }
2940
3166
  case formTypes.group:
2941
3167
  {
2942
3168
  return /*#__PURE__*/React__default.default.createElement(FormBlockGroup, Object.assign({
2943
3169
  key: config.key
2944
- }, field, props), Object.entries(field.group).map(function (_ref) {
3170
+ }, field, {
3171
+ dataTestId: dataTestId
3172
+ }), Object.entries(field.group).map(function (_ref) {
2945
3173
  var key = _ref[0],
2946
3174
  value = _ref[1];
2947
3175
  var groupProps = Object.assign({}, value, {
@@ -2950,147 +3178,17 @@ function generateField(field, config, props) {
2950
3178
  });
2951
3179
  return generateField(groupProps, {
2952
3180
  key: key + '_form_group'
2953
- }, props);
3181
+ }, dataTestId);
2954
3182
  }));
2955
3183
  }
2956
3184
  }
2957
3185
  }
2958
3186
 
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
3187
  var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalForm(props, ref) {
3089
3188
  var className = props.className,
3090
3189
  dataTestId = props.dataTestId,
3091
3190
  dataTour = props.dataTour,
3092
3191
  type = props.type,
3093
- name = props.name,
3094
3192
  initialValues = props.initialValues,
3095
3193
  initialValuesEqual = props.initialValuesEqual,
3096
3194
  config = props.config,
@@ -3105,11 +3203,10 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3105
3203
  descSize = props.descSize,
3106
3204
  descTextColor = props.descTextColor,
3107
3205
  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,
3206
+ buttonGap = props.buttonGap;
3207
+ props.additionalProps;
3208
+ var _props$buttonDirectio = props.buttonDirection,
3209
+ buttonDirection = _props$buttonDirectio === void 0 ? 'vertical' : _props$buttonDirectio,
3113
3210
  buttonFill = props.buttonFill,
3114
3211
  buttonJustifyContent = props.buttonJustifyContent,
3115
3212
  buttonPadding = props.buttonPadding,
@@ -3125,22 +3222,21 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3125
3222
  _props$disableFieldsA = props.disableFieldsAutoComplete,
3126
3223
  disableFieldsAutoComplete = _props$disableFieldsA === void 0 ? false : _props$disableFieldsA,
3127
3224
  fieldsGap = props.fieldsGap,
3128
- formName = props.formName,
3129
3225
  groupGap = props.groupGap,
3130
3226
  heightClass = props.heightClass,
3131
3227
  language = props.language,
3132
3228
  loader = props.loader,
3133
3229
  loaderAppearance = props.loaderAppearance,
3134
3230
  _props$loaderFill = props.loaderFill,
3135
- loaderFill = _props$loaderFill === void 0 ? "surfacePrimary" : _props$loaderFill,
3231
+ loaderFill = _props$loaderFill === void 0 ? 'surfacePrimary' : _props$loaderFill,
3136
3232
  _props$loaderItemFill = props.loaderItemFill,
3137
- loaderItemFill = _props$loaderItemFill === void 0 ? "accentItemSecondary" : _props$loaderItemFill,
3233
+ loaderItemFill = _props$loaderItemFill === void 0 ? 'accentItemSecondary' : _props$loaderItemFill,
3138
3234
  loaderShape = props.loaderShape,
3139
3235
  _props$loaderSize = props.loaderSize,
3140
- loaderSize = _props$loaderSize === void 0 ? "l" : _props$loaderSize,
3236
+ loaderSize = _props$loaderSize === void 0 ? 'l' : _props$loaderSize,
3141
3237
  loaderText = props.loaderText,
3142
3238
  _props$loaderType = props.loaderType,
3143
- loaderType = _props$loaderType === void 0 ? "dot" : _props$loaderType,
3239
+ loaderType = _props$loaderType === void 0 ? 'dot' : _props$loaderType,
3144
3240
  mutators = props.mutators,
3145
3241
  notificationCloseButton = props.notificationCloseButton,
3146
3242
  notificationType = props.notificationType,
@@ -3174,6 +3270,7 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3174
3270
  secondaryButtonSize = props.secondaryButtonSize,
3175
3271
  shapeStrengthClass = props.shapeStrengthClass,
3176
3272
  tertiaryButton = props.tertiaryButton,
3273
+ tertiaryButtonAppearance = props.tertiaryButtonAppearance,
3177
3274
  tertiaryButtonFill = props.tertiaryButtonFill,
3178
3275
  tertiaryButtonFillHover = props.tertiaryButtonFillHover,
3179
3276
  tertiaryButtonLabel = props.tertiaryButtonLabel,
@@ -3195,12 +3292,12 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3195
3292
  ref.current = formInstance;
3196
3293
  }
3197
3294
  }, [ref]);
3198
- var propsGenerator = useDevicePropsGenerator.useDevicePropsGenerator(props);
3295
+ var propsGenerator = hooks.useDevicePropsGenerator(props);
3199
3296
  var directionClass = propsGenerator.directionClass,
3200
3297
  fillClass = propsGenerator.fillClass,
3201
3298
  elevationClass = propsGenerator.elevationClass,
3202
3299
  shapeClass = propsGenerator.shapeClass;
3203
- var _useStyles = useStyles.useStyles(props),
3300
+ var _useStyles = hooks.useStyles(props),
3204
3301
  formStyles = _useStyles.styles,
3205
3302
  wrapperStyles = _useStyles.wrapper;
3206
3303
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Form, {
@@ -3212,19 +3309,18 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3212
3309
  modifiedSinceLastSubmit = _ref.modifiedSinceLastSubmit,
3213
3310
  submitError = _ref.submitError;
3214
3311
  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"
3312
+ 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
3313
  // We no need set reference to html element, we need reference to "final-form" instance
3218
3314
  ,
3219
3315
  ref: function ref() {
3220
3316
  return onRefFormInstance(form);
3221
3317
  },
3222
- autoCapitalize: disableFieldsAutoComplete ? "off" : undefined,
3223
- autoComplete: disableFieldsAutoComplete ? "off" : undefined,
3224
- autoCorrect: disableFieldsAutoComplete ? "off" : undefined,
3225
- "data-testid": dataTestId || name,
3318
+ autoCapitalize: disableFieldsAutoComplete ? 'off' : undefined,
3319
+ autoComplete: disableFieldsAutoComplete ? 'off' : undefined,
3320
+ autoCorrect: disableFieldsAutoComplete ? 'off' : undefined,
3321
+ "data-testid": dataTestId || 'Form',
3226
3322
  "data-tour": dataTour,
3227
- spellCheck: disableFieldsAutoComplete ? "false" : undefined,
3323
+ spellCheck: disableFieldsAutoComplete ? 'false' : undefined,
3228
3324
  style: formStyles,
3229
3325
  onSubmit: handleSubmit
3230
3326
  }, before, title && /*#__PURE__*/React__default.default.createElement(Title.Title, {
@@ -3232,14 +3328,16 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3232
3328
  size: titleTextSize,
3233
3329
  fill: titleFill,
3234
3330
  textColor: titleTextColor,
3235
- textWeight: titleTextWeight
3331
+ textWeight: titleTextWeight,
3332
+ "data-testid": dataTestId ? dataTestId + "Title" : 'FormTitle'
3236
3333
  }, title), desc && /*#__PURE__*/React__default.default.createElement(Text.Text, {
3237
3334
  className: "form__desc",
3238
3335
  size: descSize,
3239
3336
  textColor: descTextColor,
3240
- textWeight: descTextWeight
3337
+ textWeight: descTextWeight,
3338
+ "data-testid": dataTestId ? dataTestId + "Desc" : 'FormDesc'
3241
3339
  }, desc), submitError && !modifiedSinceLastSubmit && /*#__PURE__*/React__default.default.createElement("div", {
3242
- className: clsx__default.default("notification", "form-notification", notificationType ? "form-notification_" + notificationType : "form-notification_global")
3340
+ className: clsx__default.default('notification', 'form-notification', notificationType ? "form-notification_" + notificationType : 'form-notification_global')
3243
3341
  }, /*#__PURE__*/React__default.default.createElement(Notification.Notification, {
3244
3342
  appearance: "errorPrimary sizeM solid rounded",
3245
3343
  type: "global",
@@ -3259,7 +3357,7 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3259
3357
  }, Object.keys(config).map(function (key) {
3260
3358
  return generateField(config[key], {
3261
3359
  key: key
3262
- }, additionalProps[config[key].name]);
3360
+ }, dataTestId);
3263
3361
  }), isLoading && (loader || /*#__PURE__*/React__default.default.createElement(Loader.Loader, {
3264
3362
  appearance: loaderAppearance,
3265
3363
  className: "form__loader",
@@ -3267,11 +3365,12 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3267
3365
  size: loaderSize,
3268
3366
  fill: loaderFill,
3269
3367
  text: loaderText,
3368
+ "data-testid": dataTestId + "Loader",
3270
3369
  itemFill: loaderItemFill,
3271
3370
  shape: loaderShape
3272
3371
  }))))), (primaryButtonLabel || primaryButton || secondaryButtonLabel || secondaryButton || tertiaryButton || tertiaryButtonLabel) && /*#__PURE__*/React__default.default.createElement(Group.Group, {
3273
3372
  className: "form__button",
3274
- dataTestId: dataTestIdButtons,
3373
+ dataTestId: dataTestIdButtons || dataTestId + "Buttons",
3275
3374
  dataTour: dataTourButtons,
3276
3375
  direction: buttonDirection,
3277
3376
  justifyContent: buttonJustifyContent,
@@ -3281,7 +3380,7 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3281
3380
  }, primaryButtonLabel ? /*#__PURE__*/React__default.default.createElement(Button.Button, {
3282
3381
  appearance: primaryButtonAppearance,
3283
3382
  className: "form__button-item",
3284
- dataTestId: dataTestIdPrimaryButton || (name ? name + "-primary" : "form-primary"),
3383
+ dataTestId: dataTestIdPrimaryButton || dataTestId && dataTestId + "PrimaryButton" || 'FormPrimaryButton',
3285
3384
  dataTour: dataTourPrimaryButton,
3286
3385
  width: "fill",
3287
3386
  size: primaryButtonSize,
@@ -3291,13 +3390,13 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3291
3390
  labelTextColor: primaryButtonLabelTextColor,
3292
3391
  labelTextSize: primaryButtonLabelSize,
3293
3392
  labelTextWeight: primaryButtonLabelTextWeight,
3294
- htmlType: primaryButtonHtmlType || "submit",
3393
+ htmlType: primaryButtonHtmlType || 'submit',
3295
3394
  loading: primaryButtonIsLoading,
3296
3395
  isDisabled: primaryButtonIsDisabled
3297
3396
  }) : primaryButton, secondaryButtonLabel ? /*#__PURE__*/React__default.default.createElement(Button.Button, {
3298
3397
  appearance: secondaryButtonAppearance,
3299
3398
  className: "form__button-item",
3300
- dataTestId: dataTestIdSecondaryButton || (name ? name + "-secondary" : "form-secondary"),
3399
+ dataTestId: dataTestIdSecondaryButton || dataTestId && dataTestId + "SecondaryButton" || 'FormSecondaryButton',
3301
3400
  dataTour: dataTourSecondaryButton,
3302
3401
  width: "fill",
3303
3402
  size: secondaryButtonSize,
@@ -3312,8 +3411,9 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3312
3411
  isDisabled: secondaryButtonIsDisabled,
3313
3412
  onClick: onClickSecondaryButton
3314
3413
  }) : secondaryButton, tertiaryButtonLabel ? /*#__PURE__*/React__default.default.createElement(Button.Button, {
3414
+ appearance: tertiaryButtonAppearance,
3315
3415
  className: "form__button-item",
3316
- dataTestId: dataTestIdTertiaryButton,
3416
+ dataTestId: dataTestIdTertiaryButton || dataTestId && dataTestId + "TertiaryButton" || 'FormTertiaryButton',
3317
3417
  dataTour: dataTourTertiaryButton,
3318
3418
  width: "fill",
3319
3419
  size: tertiaryButtonSize,
@@ -3339,7 +3439,7 @@ var FinalForm = /*#__PURE__*/React__default.default.forwardRef(function FinalFor
3339
3439
  });
3340
3440
  });
3341
3441
  FinalForm.defaultProps = {
3342
- direction: "vertical"
3442
+ direction: 'vertical'
3343
3443
  };
3344
3444
 
3345
3445
  var DEFAULT_MESSAGES_REQUIRED = {
@@ -3617,6 +3717,7 @@ exports.FormFieldSelect = FormFieldSelect;
3617
3717
  exports.FormFieldSwitch = FormFieldSwitch;
3618
3718
  exports.FormFieldTextarea = FormFieldTextarea;
3619
3719
  exports.addRequiredFieldsParamToSchema = addRequiredFieldsParamToSchema;
3720
+ exports.createDataTestIdField = createDataTestIdField;
3620
3721
  exports.dateValidation = dateValidation;
3621
3722
  exports.defaultCheckboxProps = defaultCheckboxProps;
3622
3723
  exports.defaultChipsProps = defaultChipsProps;