@itcase/forms 1.0.23 → 1.0.25

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.
@@ -0,0 +1,3 @@
1
+ .form-code {
2
+ position: relative;
3
+ }
@@ -1,22 +1,24 @@
1
- .form-field {
2
- &_type_custom {
3
- width: 100%;
4
- &&_state {
5
- &_success {
6
- & .input {
7
- border: solid 1px var(--color-success-border-primary);
8
- }
1
+ .form-custom {
2
+ &_state {
3
+ &_success {
4
+ & .input {
5
+ border: solid 1px var(--color-success-border-primary);
9
6
  }
10
- &_error {
11
- & .input {
12
- border: solid 1px var(--color-error-border-primary);
13
- }
7
+ }
8
+ &_error {
9
+ & .input {
10
+ border: solid 1px var(--color-error-border-primary);
14
11
  }
15
- &_focus {
16
- & .input {
17
- background: var(--color-surface-primary);
18
- }
12
+ }
13
+ &_focus {
14
+ & .input {
15
+ background: var(--color-surface-primary);
19
16
  }
20
17
  }
21
18
  }
22
19
  }
20
+ .form-field {
21
+ &_type_custom {
22
+ width: 100%;
23
+ }
24
+ }
@@ -12,6 +12,7 @@ var Text = require('@itcase/ui/components/Text');
12
12
  var useDeviceTargetClass = require('@itcase/ui/hooks/useDeviceTargetClass');
13
13
  var useStyles = require('@itcase/ui/hooks/useStyles');
14
14
  var Choice = require('@itcase/ui/components/Choice');
15
+ var Code = require('@itcase/ui/components/Code');
15
16
  var DatePicker = require('@itcase/ui/components/DatePicker');
16
17
  var axios = require('axios');
17
18
  var reactDropzone = require('react-dropzone');
@@ -814,6 +815,22 @@ var ChoiceField = /*#__PURE__*/React__default.default.memo(function ChoiceField(
814
815
  }, function (_ref) {
815
816
  var input = _ref.input,
816
817
  meta = _ref.meta;
818
+ var activeOption = React.useMemo(function () {
819
+ var emptyOption = {
820
+ value: null,
821
+ label: null
822
+ };
823
+ if (input.value) {
824
+ var currentOption = options.find(function (option) {
825
+ return option.value === input.value;
826
+ });
827
+ return currentOption || emptyOption;
828
+ }
829
+ return emptyOption;
830
+ }, [input.value]);
831
+ var setActiveSegment = React.useCallback(function (option) {
832
+ change(name, option.value);
833
+ }, [change]);
817
834
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
818
835
  className: clsx__default.default('form-field_type_choice', 'form__item_type_choice', classNameGroupItem),
819
836
  inputName: input.name,
@@ -836,7 +853,8 @@ var ChoiceField = /*#__PURE__*/React__default.default.memo(function ChoiceField(
836
853
  isMultiple: isMultiple,
837
854
  isRequired: isRequired,
838
855
  placeholder: placeholder,
839
- onChange: change
856
+ active: activeOption,
857
+ setActiveSegment: setActiveSegment
840
858
  }, inputProps)));
841
859
  });
842
860
  });
@@ -894,6 +912,53 @@ CustomField.propTypes = {
894
912
  inputProps: PropTypes__default.default.object
895
913
  };
896
914
 
915
+ var CodeField = /*#__PURE__*/React__default.default.memo(function CodeField(props) {
916
+ var isRequired = props.isRequired,
917
+ name = props.name,
918
+ fieldProps = props.fieldProps,
919
+ inputProps = props.inputProps,
920
+ classNameGroupItem = props.classNameGroupItem,
921
+ hideMessage = props.hideMessage;
922
+ return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
923
+ name: name
924
+ }, function (_ref) {
925
+ var input = _ref.input,
926
+ meta = _ref.meta;
927
+ return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
928
+ className: clsx__default.default('form-field_type_code', 'form__item_type_code', classNameGroupItem),
929
+ fieldClassName: 'form-code',
930
+ inputName: input.name,
931
+ inputValue: input.value,
932
+ isRequired: isRequired,
933
+ metaActive: meta.active,
934
+ metaError: meta.error,
935
+ metaModifiedSinceLastSubmit: meta.modifiedSinceLastSubmit,
936
+ metaSubmitError: meta.submitError,
937
+ metaSubmitFailed: meta.submitFailed,
938
+ metaTouched: meta.touched,
939
+ metaValid: meta.valid,
940
+ hideMessage: hideMessage
941
+ }, fieldProps), /*#__PURE__*/React__default.default.createElement(Code.Code, Object.assign({
942
+ autoComplete: "nope",
943
+ name: input.name,
944
+ value: input.value,
945
+ onBlur: input.onBlur,
946
+ onChange: input.onChange,
947
+ onFocus: input.onFocus
948
+ }, inputProps)));
949
+ });
950
+ });
951
+ CodeField.defaultProps = {
952
+ inputProps: {},
953
+ fieldProps: {}
954
+ };
955
+ CodeField.propTypes = {
956
+ name: PropTypes__default.default.string.isRequired,
957
+ isRequired: PropTypes__default.default.bool,
958
+ fieldProps: PropTypes__default.default.object,
959
+ inputProps: PropTypes__default.default.object
960
+ };
961
+
897
962
  function DatePickerField(props) {
898
963
  var isRequired = props.isRequired,
899
964
  fieldProps = props.fieldProps,
@@ -2348,6 +2413,7 @@ var formTypes = {
2348
2413
  checkbox: 'checkbox',
2349
2414
  custom: 'custom',
2350
2415
  choice: 'choice',
2416
+ code: 'code',
2351
2417
  datePicker: 'datePicker',
2352
2418
  dateRangePicker: 'dateRangePicker',
2353
2419
  fileInput: 'fileInput',
@@ -2373,6 +2439,12 @@ function generateField(field, config, props) {
2373
2439
  key: config.key
2374
2440
  }, field, props));
2375
2441
  }
2442
+ case formTypes.code:
2443
+ {
2444
+ return /*#__PURE__*/React__default.default.createElement(CodeField, Object.assign({
2445
+ key: config.key
2446
+ }, field, props));
2447
+ }
2376
2448
  case formTypes["switch"]:
2377
2449
  {
2378
2450
  return /*#__PURE__*/React__default.default.createElement(SwitchField, Object.assign({
@@ -2718,6 +2790,7 @@ Object.defineProperty(exports, 'useFormState', {
2718
2790
  });
2719
2791
  exports.Checkbox = CheckboxField;
2720
2792
  exports.ChoiceField = ChoiceField;
2793
+ exports.CodeField = CodeField;
2721
2794
  exports.CustomField = CustomField;
2722
2795
  exports.DatePickerField = DatePickerField;
2723
2796
  exports.FieldWrapper = FieldWrapper;
@@ -11,6 +11,7 @@ import { Text } from '@itcase/ui/components/Text';
11
11
  import { useDeviceTargetClass } from '@itcase/ui/hooks/useDeviceTargetClass';
12
12
  import { useStyles } from '@itcase/ui/hooks/useStyles';
13
13
  import { Choice } from '@itcase/ui/components/Choice';
14
+ import { Code } from '@itcase/ui/components/Code';
14
15
  import { DatePickerInput } from '@itcase/ui/components/DatePicker';
15
16
  import axios from 'axios';
16
17
  import { useDropzone } from 'react-dropzone';
@@ -804,6 +805,22 @@ var ChoiceField = /*#__PURE__*/React.memo(function ChoiceField(props) {
804
805
  }, function (_ref) {
805
806
  var input = _ref.input,
806
807
  meta = _ref.meta;
808
+ var activeOption = useMemo(function () {
809
+ var emptyOption = {
810
+ value: null,
811
+ label: null
812
+ };
813
+ if (input.value) {
814
+ var currentOption = options.find(function (option) {
815
+ return option.value === input.value;
816
+ });
817
+ return currentOption || emptyOption;
818
+ }
819
+ return emptyOption;
820
+ }, [input.value]);
821
+ var setActiveSegment = useCallback(function (option) {
822
+ change(name, option.value);
823
+ }, [change]);
807
824
  return /*#__PURE__*/React.createElement(FieldWrapper, Object.assign({
808
825
  className: clsx('form-field_type_choice', 'form__item_type_choice', classNameGroupItem),
809
826
  inputName: input.name,
@@ -826,7 +843,8 @@ var ChoiceField = /*#__PURE__*/React.memo(function ChoiceField(props) {
826
843
  isMultiple: isMultiple,
827
844
  isRequired: isRequired,
828
845
  placeholder: placeholder,
829
- onChange: change
846
+ active: activeOption,
847
+ setActiveSegment: setActiveSegment
830
848
  }, inputProps)));
831
849
  });
832
850
  });
@@ -884,6 +902,53 @@ CustomField.propTypes = {
884
902
  inputProps: PropTypes.object
885
903
  };
886
904
 
905
+ var CodeField = /*#__PURE__*/React.memo(function CodeField(props) {
906
+ var isRequired = props.isRequired,
907
+ name = props.name,
908
+ fieldProps = props.fieldProps,
909
+ inputProps = props.inputProps,
910
+ classNameGroupItem = props.classNameGroupItem,
911
+ hideMessage = props.hideMessage;
912
+ return /*#__PURE__*/React.createElement(Field, {
913
+ name: name
914
+ }, function (_ref) {
915
+ var input = _ref.input,
916
+ meta = _ref.meta;
917
+ return /*#__PURE__*/React.createElement(FieldWrapper, Object.assign({
918
+ className: clsx('form-field_type_code', 'form__item_type_code', classNameGroupItem),
919
+ fieldClassName: 'form-code',
920
+ inputName: input.name,
921
+ inputValue: input.value,
922
+ isRequired: isRequired,
923
+ metaActive: meta.active,
924
+ metaError: meta.error,
925
+ metaModifiedSinceLastSubmit: meta.modifiedSinceLastSubmit,
926
+ metaSubmitError: meta.submitError,
927
+ metaSubmitFailed: meta.submitFailed,
928
+ metaTouched: meta.touched,
929
+ metaValid: meta.valid,
930
+ hideMessage: hideMessage
931
+ }, fieldProps), /*#__PURE__*/React.createElement(Code, Object.assign({
932
+ autoComplete: "nope",
933
+ name: input.name,
934
+ value: input.value,
935
+ onBlur: input.onBlur,
936
+ onChange: input.onChange,
937
+ onFocus: input.onFocus
938
+ }, inputProps)));
939
+ });
940
+ });
941
+ CodeField.defaultProps = {
942
+ inputProps: {},
943
+ fieldProps: {}
944
+ };
945
+ CodeField.propTypes = {
946
+ name: PropTypes.string.isRequired,
947
+ isRequired: PropTypes.bool,
948
+ fieldProps: PropTypes.object,
949
+ inputProps: PropTypes.object
950
+ };
951
+
887
952
  function DatePickerField(props) {
888
953
  var isRequired = props.isRequired,
889
954
  fieldProps = props.fieldProps,
@@ -2338,6 +2403,7 @@ var formTypes = {
2338
2403
  checkbox: 'checkbox',
2339
2404
  custom: 'custom',
2340
2405
  choice: 'choice',
2406
+ code: 'code',
2341
2407
  datePicker: 'datePicker',
2342
2408
  dateRangePicker: 'dateRangePicker',
2343
2409
  fileInput: 'fileInput',
@@ -2363,6 +2429,12 @@ function generateField(field, config, props) {
2363
2429
  key: config.key
2364
2430
  }, field, props));
2365
2431
  }
2432
+ case formTypes.code:
2433
+ {
2434
+ return /*#__PURE__*/React.createElement(CodeField, Object.assign({
2435
+ key: config.key
2436
+ }, field, props));
2437
+ }
2366
2438
  case formTypes["switch"]:
2367
2439
  {
2368
2440
  return /*#__PURE__*/React.createElement(SwitchField, Object.assign({
@@ -2694,4 +2766,4 @@ FinalForm.defaultProps = {
2694
2766
  disableFieldsAutoComplete: false
2695
2767
  };
2696
2768
 
2697
- export { CheckboxField as Checkbox, ChoiceField, CustomField, DatePickerField, FieldWrapper, FieldWrapperBase, FileInput, FinalForm, Group, InputField, RadioGroup, SegmentedField, SelectField, SwitchField as Switch, TextareaField as Textarea, addRequiredFieldsParamToSchema, emailValidation, focusOnError, focusOnErrorDecorator, formTypes, generateField, phoneValidation, sendFormDataToServer, setErrorsMutator, useYupValidationSchema };
2769
+ export { CheckboxField as Checkbox, ChoiceField, CodeField, CustomField, DatePickerField, FieldWrapper, FieldWrapperBase, FileInput, FinalForm, Group, InputField, RadioGroup, SegmentedField, SelectField, SwitchField as Switch, TextareaField as Textarea, addRequiredFieldsParamToSchema, emailValidation, focusOnError, focusOnErrorDecorator, formTypes, generateField, phoneValidation, sendFormDataToServer, setErrorsMutator, useYupValidationSchema };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itcase/forms",
3
- "version": "1.0.23",
3
+ "version": "1.0.25",
4
4
  "description": "Forms fields, inputs, etc.",
5
5
  "keywords": [
6
6
  "forms",
@@ -35,7 +35,7 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@itcase/common": "^1.1.6",
38
- "@itcase/ui": "^1.0.46",
38
+ "@itcase/ui": "^1.0.48",
39
39
  "axios": "^1.5.0",
40
40
  "clsx": "^2.0.0",
41
41
  "date-fns": "2.0.0-alpha.7",