@widergy/energy-ui 3.22.4 → 3.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/UTActionCard/README.md +2 -2
  3. package/dist/components/UTActionCard/components/AdditionalMessage/index.js +3 -1
  4. package/dist/components/UTActionCard/components/BottomActions/index.js +5 -3
  5. package/dist/components/UTActionCard/components/BottomActions/styles.module.scss +4 -0
  6. package/dist/components/UTActionCard/components/Header/constants.js +14 -1
  7. package/dist/components/UTActionCard/components/Header/index.js +5 -3
  8. package/dist/components/UTActionCard/components/Header/styles.module.scss +6 -8
  9. package/dist/components/UTActionCard/components/HeaderActions/index.js +9 -6
  10. package/dist/components/UTActionCard/components/HeaderActions/utils.js +26 -15
  11. package/dist/components/UTActionCard/index.js +7 -9
  12. package/dist/components/UTFieldLabel/constants.js +7 -0
  13. package/dist/components/UTFieldLabel/index.js +43 -0
  14. package/dist/components/UTFieldLabel/styles.module.scss +5 -0
  15. package/dist/components/UTIcon/styles.module.scss +0 -1
  16. package/dist/components/UTLabel/theme.js +24 -8
  17. package/dist/components/UTTextArea/index.js +11 -87
  18. package/dist/components/UTTextArea/versions/V0/index.js +102 -0
  19. package/dist/components/UTTextArea/{theme.js → versions/V0/theme.js} +1 -1
  20. package/dist/components/UTTextArea/versions/V1/README.md +33 -0
  21. package/dist/components/UTTextArea/versions/V1/index.js +18 -0
  22. package/dist/components/UTTextInput/index.js +15 -200
  23. package/dist/components/UTTextInput/versions/V0/index.js +211 -0
  24. package/dist/components/UTTextInput/{styles.module.scss → versions/V0/styles.module.scss} +1 -1
  25. package/dist/components/UTTextInput/{theme.js → versions/V0/theme.js} +1 -1
  26. package/dist/components/UTTextInput/versions/V1/README.md +85 -0
  27. package/dist/components/UTTextInput/versions/V1/components/ActionAdornment/index.js +31 -0
  28. package/dist/components/UTTextInput/versions/V1/components/IconAdornment/constants.js +8 -0
  29. package/dist/components/UTTextInput/versions/V1/components/IconAdornment/index.js +48 -0
  30. package/dist/components/UTTextInput/versions/V1/components/IconAdornment/utils.js +17 -0
  31. package/dist/components/UTTextInput/versions/V1/components/PrefixAdornment/index.js +24 -0
  32. package/dist/components/UTTextInput/versions/V1/components/SuffixAdornment/index.js +22 -0
  33. package/dist/components/UTTextInput/versions/V1/components/TooltipAdornment/index.js +26 -0
  34. package/dist/components/UTTextInput/versions/V1/index.js +177 -0
  35. package/dist/components/UTTextInput/versions/V1/styles.module.scss +29 -0
  36. package/dist/components/UTTextInput/versions/V1/theme.js +94 -0
  37. package/dist/components/UTValidation/README.md +68 -0
  38. package/dist/components/UTValidation/constants.js +27 -0
  39. package/dist/components/UTValidation/index.js +86 -0
  40. package/dist/components/UTValidation/styles.module.scss +33 -0
  41. package/dist/components/UTValidation/theme.js +25 -0
  42. package/dist/components/UTValidation/utils.js +23 -0
  43. package/dist/index.js +7 -0
  44. package/package.json +1 -1
  45. package/dist/components/UTActionCard/components/HeaderActions/constants.js +0 -7
  46. /package/dist/components/UTTextArea/{constants.js → versions/V0/constants.js} +0 -0
  47. /package/dist/components/UTTextArea/{styles.module.scss → versions/V0/styles.module.scss} +0 -0
  48. /package/dist/components/UTTextInput/{constants.js → versions/V0/constants.js} +0 -0
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = require("prop-types");
9
+ var _normalize = require("@widergy/web-utils/lib/normalize");
10
+ var _HelpOutline = _interopRequireDefault(require("@material-ui/icons/HelpOutline"));
11
+ var _UTTooltip = _interopRequireDefault(require("../../../UTTooltip"));
12
+ var _WithTheme = _interopRequireDefault(require("../../../WithTheme"));
13
+ var _UTLabel = _interopRequireDefault(require("../../../UTLabel"));
14
+ var _formTypes = require("../../../../types/formTypes");
15
+ var _constants = require("./constants");
16
+ var _theme = require("./theme");
17
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
18
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
20
+ const UTTextArea = _ref => {
21
+ let {
22
+ classes,
23
+ classNames = {},
24
+ disabled,
25
+ field,
26
+ HelpIcon,
27
+ inputProps = {},
28
+ onBlur,
29
+ onChange,
30
+ onFocus,
31
+ placeholder,
32
+ title = '',
33
+ tooltip,
34
+ value
35
+ } = _ref;
36
+ const {
37
+ container,
38
+ icon,
39
+ textarea,
40
+ label,
41
+ textAreaContainer
42
+ } = classNames;
43
+ const {
44
+ character_count_limit: characterCountLimit
45
+ } = (field === null || field === void 0 ? void 0 : field.configuration) || {};
46
+ const handleOnChange = _ref2 => {
47
+ let {
48
+ target
49
+ } = _ref2;
50
+ return onChange(characterCountLimit ? (0, _normalize.maxLength)(characterCountLimit)(target.value) : target.value);
51
+ };
52
+ return /*#__PURE__*/_react.default.createElement("div", {
53
+ className: container
54
+ }, /*#__PURE__*/_react.default.createElement("div", {
55
+ className: _stylesModule.default.titleContainer
56
+ }, /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
57
+ className: "".concat(label, " ").concat(_stylesModule.default.label),
58
+ withMarkdown: true
59
+ }, title)), /*#__PURE__*/_react.default.createElement("div", {
60
+ className: "".concat(_stylesModule.default.textAreaContainer, " ").concat(textAreaContainer)
61
+ }, /*#__PURE__*/_react.default.createElement("div", {
62
+ className: _stylesModule.default.componentWrapper
63
+ }, /*#__PURE__*/_react.default.createElement("textarea", _extends({}, inputProps, {
64
+ className: "".concat(_stylesModule.default.textarea, " ").concat(textarea, " ").concat(classes.textarea),
65
+ onChange: handleOnChange,
66
+ onBlur: onBlur,
67
+ onFocus: onFocus,
68
+ value: value,
69
+ disabled: disabled,
70
+ placeholder: placeholder
71
+ })), characterCountLimit && /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
72
+ className: _stylesModule.default.characterCount,
73
+ colorTheme: value.length === characterCountLimit ? 'error' : value.length >= characterCountLimit * _constants.LIMIT_WARNING_FACTOR ? 'warning' : 'dark'
74
+ }, "".concat(value.length, "/").concat(characterCountLimit))), tooltip && /*#__PURE__*/_react.default.createElement(_UTTooltip.default, {
75
+ content: tooltip,
76
+ tippyProps: _constants.tippyProps
77
+ }, /*#__PURE__*/_react.default.createElement("div", null, HelpIcon || /*#__PURE__*/_react.default.createElement(_HelpOutline.default, {
78
+ className: "".concat(icon, " ").concat(classes.icon)
79
+ })))));
80
+ };
81
+ UTTextArea.propTypes = {
82
+ classes: (0, _propTypes.objectOf)(_propTypes.string),
83
+ classNames: (0, _propTypes.shape)({
84
+ container: _propTypes.string,
85
+ icon: _propTypes.string,
86
+ label: _propTypes.string,
87
+ textarea: _propTypes.string,
88
+ textAreaContainer: _propTypes.string
89
+ }),
90
+ disabled: _propTypes.bool,
91
+ field: _formTypes.fieldType,
92
+ HelpIcon: _propTypes.elementType,
93
+ inputProps: _formTypes.inputPropTypes,
94
+ onBlur: _propTypes.func,
95
+ onChange: _propTypes.func,
96
+ onFocus: _propTypes.func,
97
+ placeholder: _propTypes.string,
98
+ title: _propTypes.string,
99
+ tooltip: _propTypes.string,
100
+ value: _propTypes.string
101
+ };
102
+ var _default = exports.default = (0, _WithTheme.default)(_theme.retrieveStyle)(UTTextArea);
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.retrieveStyle = void 0;
7
- var _colorsModule = _interopRequireDefault(require("../../scss/variables/colors.module.scss"));
7
+ var _colorsModule = _interopRequireDefault(require("../../../../scss/variables/colors.module.scss"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
9
  const retrieveStyle = _ref => {
10
10
  var _theme$UTTextArea, _theme$UTTextArea2, _theme$UTTextArea3, _theme$UTTextArea4, _theme$Fonts, _theme$UTTextArea5, _theme$UTTextArea6, _theme$UTTextArea7, _theme$UTTextArea8, _theme$UTTextArea9, _theme$UTTextArea10, _theme$UTTextArea11, _theme$UTTextArea12, _theme$UTTextArea13, _theme$UTTextArea14, _theme$UTTextArea15, _theme$UTTextArea16, _theme$UTTextArea17, _theme$UTTextArea18, _theme$UTTextArea19, _theme$UTTextArea20;
@@ -0,0 +1,33 @@
1
+ # UTTextArea
2
+
3
+ ## Description
4
+
5
+ `UTTextArea` is a multi-line text input component that extends `UTTextInput`. It is pre-configured to handle multiple rows of text and automatically displays the character count.
6
+
7
+ ## Props
8
+
9
+ `UTTextArea` inherits all the props from `UTTextInput` and predefines some of them for convenience.
10
+
11
+ | Name | Type | Default | Description |
12
+ | ------------------ | ------ | ------- | ----------------------------------------------------------------- |
13
+ | maxRows | number | 4 | The number of rows the text area will display. |
14
+ | showCharacterCount | bool | true | Whether to display the character count. Always `true` by default. |
15
+ | ... | ... | ... | Inherits all other props from `UTTextInput`. |
16
+
17
+ ## Usage
18
+
19
+ ### Basic Example
20
+
21
+ ```javascript
22
+ <UTTextArea placeholder="Enter your text here..." />
23
+ ```
24
+
25
+ ### Example with Custom Rows
26
+
27
+ ```javascript
28
+ <UTTextArea maxRows={6} placeholder="Enter a longer text here..." />
29
+ ```
30
+
31
+ ## Notes
32
+
33
+ For more detailed information on inherited props, refer to the documentation for `UTTextInput`.
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _V = require("../../../UTTextInput/versions/V1");
9
+ var _UTTextInput = _interopRequireDefault(require("../../../UTTextInput"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
12
+ const UTTextArea = props => /*#__PURE__*/_react.default.createElement(_UTTextInput.default, _extends({
13
+ showCharacterCount: true,
14
+ maxRows: 4,
15
+ version: "V1"
16
+ }, props));
17
+ UTTextArea.propTypes = _V.propTypes;
18
+ var _default = exports.default = UTTextArea;
@@ -4,208 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = _interopRequireDefault(require("react"));
8
8
  var _propTypes = require("prop-types");
9
- var _Visibility = _interopRequireDefault(require("@material-ui/icons/Visibility"));
10
- var _VisibilityOff = _interopRequireDefault(require("@material-ui/icons/VisibilityOff"));
11
- var _HelpOutline = _interopRequireDefault(require("@material-ui/icons/HelpOutline"));
12
- var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
13
- var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
14
- var _form = require("@widergy/web-utils/lib/form");
15
- var _WithTheme = _interopRequireDefault(require("../WithTheme"));
16
- var _UTTooltip = _interopRequireDefault(require("../UTTooltip"));
17
- var _formTypes = require("../../types/formTypes");
18
- var _UTButton = _interopRequireDefault(require("../UTButton"));
19
- var _UTLabel = _interopRequireDefault(require("../UTLabel"));
20
- var _constants = require("./constants");
21
- var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
22
- var _theme = require("./theme");
9
+ var _V = _interopRequireDefault(require("./versions/V0"));
10
+ var _V2 = _interopRequireDefault(require("./versions/V1"));
23
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
24
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
27
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
28
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
29
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
30
- const preventDefault = event => {
31
- if (event.key === 'Enter') {
32
- event.preventDefault();
33
- }
12
+ const UTTextInput = _ref => {
13
+ let {
14
+ version = 'V0',
15
+ ...props
16
+ } = _ref;
17
+ const Component = {
18
+ V0: _V.default,
19
+ V1: _V2.default
20
+ }[version];
21
+ return /*#__PURE__*/_react.default.createElement(Component, props);
34
22
  };
35
- class UTTextInput extends _react.PureComponent {
36
- constructor(props) {
37
- super(props);
38
- _defineProperty(this, "handleClickShowPassword", () => {
39
- this.setState(prevState => ({
40
- visible: !prevState.visible
41
- }));
42
- });
43
- this.state = {
44
- visible: false
45
- };
46
- }
47
- render() {
48
- const {
49
- adornmentInside,
50
- autofocus,
51
- bigInput,
52
- captionLabel,
53
- classes,
54
- containerClassName,
55
- disabled,
56
- field,
57
- id,
58
- input,
59
- inputClassName,
60
- inputObjectKey,
61
- label,
62
- labelRootClassName,
63
- meta,
64
- onChangeText,
65
- PasswordInvisibleIcon,
66
- PasswordVisibleIcon,
67
- placeholder,
68
- preventEnterSubmit,
69
- preventFocus,
70
- tippyProps,
71
- tooltip,
72
- type,
73
- variant,
74
- ...others
75
- } = this.props;
76
- const handleChange = event => {
77
- if (preventFocus) event.preventDefault();
78
- input.onChange(onChangeText(event.target.value));
79
- };
80
- const handleClick = event => {
81
- if (preventFocus) {
82
- event.preventDefault();
83
- event.target.blur();
84
- }
85
- };
86
- const {
87
- icon: Icon,
88
- outsideIcon,
89
- adornment,
90
- helperText
91
- } = (field === null || field === void 0 ? void 0 : field.configuration) || {};
92
-
93
- // TODO. These props were forwarded to the inner dom element and they were
94
- // causing errors and warnings. I quit them from the "..." spread to TextField.
95
- // Deeper analysis should be done when refactoring the component to match
96
- // design requirements.
97
- const {
98
- base,
99
- selectedOptionsIds,
100
- retrieveStyle: rs,
101
- retrieveMuiTheme: rmt,
102
- Component,
103
- muiTheme,
104
- ...textFieldPropsToForward
105
- } = others;
106
- const endAction = type === _constants.INPUT_TYPES.PASSWORD ? /*#__PURE__*/_react.default.createElement(_UTButton.default, {
107
- Icon: this.state.visible ? PasswordVisibleIcon : PasswordInvisibleIcon,
108
- onClick: this.handleClickShowPassword,
109
- variant: "text"
110
- }) : adornment;
111
- const value = inputObjectKey ? input.value[inputObjectKey] : input.value;
112
- const errorMessage = (0, _form.shouldShowErrors)(meta) && meta.error || captionLabel || '';
113
- const fieldId = id || field !== null && field !== void 0 && field.id ? "".concat(id || field.id) : undefined;
114
- const TextInput = /*#__PURE__*/_react.default.createElement(_TextField.default, _extends({
115
- id: fieldId,
116
- placeholder: placeholder,
117
- variant: variant,
118
- label: Icon ? /*#__PURE__*/_react.default.createElement("div", {
119
- className: classes.labelContainer
120
- }, /*#__PURE__*/_react.default.createElement(Icon, {
121
- className: classes.labelIcon
122
- }), /*#__PURE__*/_react.default.createElement("div", null, label)) : label,
123
- onKeyPress: preventEnterSubmit ? preventDefault : undefined,
124
- error: (0, _form.shouldShowErrors)(meta),
125
- FormHelperTextProps: {
126
- component: 'div'
127
- },
128
- helperText: errorMessage || helperText ? /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
129
- className: _stylesModule.default.helperText,
130
- colorTheme: errorMessage ? 'error' : 'gray',
131
- variant: "small",
132
- withMarkdown: true
133
- }, errorMessage || helperText) : undefined,
134
- disabled: disabled,
135
- onChange: handleChange,
136
- onClick: handleClick,
137
- value: value,
138
- fullWidth: true,
139
- autoFocus: autofocus,
140
- margin: "none",
141
- autoComplete: "off",
142
- InputProps: {
143
- id: fieldId,
144
- endAdornment: endAction && /*#__PURE__*/_react.default.createElement(_InputAdornment.default, {
145
- position: "end",
146
- className: "".concat(adornmentInside && _stylesModule.default.adornmentInside)
147
- }, endAction),
148
- type: type === _constants.INPUT_TYPES.PASSWORD ? !this.state.visible ? _constants.INPUT_TYPES.PASSWORD : _constants.INPUT_TYPES.TEXT : type || _constants.INPUT_TYPES.TEXT,
149
- classes: {
150
- input: "\n ".concat(bigInput && classes.bigInput, "\n ").concat(type === _constants.INPUT_TYPES.NUMBER && _stylesModule.default.numberType, "\n ").concat(inputClassName, "\n ")
151
- }
152
- },
153
- InputLabelProps: {
154
- classes: {
155
- root: labelRootClassName
156
- },
157
- htmlFor: fieldId
158
- }
159
- }, textFieldPropsToForward));
160
- return /*#__PURE__*/_react.default.createElement("div", {
161
- className: "".concat(classes.container, " ").concat(containerClassName, " ").concat(tooltip && _stylesModule.default.containerWithTooltip)
162
- }, tooltip ? /*#__PURE__*/_react.default.createElement(_react.Fragment, null, TextInput, /*#__PURE__*/_react.default.createElement(_UTTooltip.default, {
163
- tippyProps: tippyProps,
164
- content: tooltip
165
- }, /*#__PURE__*/_react.default.createElement("span", {
166
- className: _stylesModule.default.tooltipIconContainer
167
- }, /*#__PURE__*/_react.default.createElement(_HelpOutline.default, {
168
- className: "".concat(classes.tooltipIcon, " ").concat(_stylesModule.default.tooltipIcon)
169
- })))) : /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/(0, _react.isValidElement)(outsideIcon) && /*#__PURE__*/_react.default.createElement("div", {
170
- className: _stylesModule.default.iconContainer
171
- }, outsideIcon), TextInput));
172
- }
173
- }
174
23
  UTTextInput.propTypes = {
175
- adornmentInside: _propTypes.bool,
176
- autofocus: _propTypes.bool,
177
- bigInput: _propTypes.bool,
178
- captionLabel: _propTypes.string,
179
- classes: (0, _propTypes.objectOf)(_propTypes.string),
180
- containerClassName: _propTypes.string,
181
- disabled: _propTypes.bool,
182
- field: _propTypes.object,
183
- id: _propTypes.string,
184
- input: _formTypes.inputPropTypes.isRequired,
185
- inputClassName: _propTypes.string,
186
- inputObjectKey: _propTypes.string,
187
- label: _propTypes.string,
188
- labelRootClassName: _propTypes.string,
189
- meta: _formTypes.metaPropTypes,
190
- onChangeText: _propTypes.func,
191
- PasswordInvisibleIcon: _propTypes.elementType,
192
- PasswordVisibleIcon: _propTypes.elementType,
193
- placeholder: _propTypes.string,
194
- preventEnterSubmit: _propTypes.bool,
195
- preventFocus: _propTypes.bool,
196
- tippyProps: _propTypes.object,
197
- tooltip: _propTypes.string,
198
- type: _propTypes.string,
199
- variant: _propTypes.string
200
- };
201
- UTTextInput.defaultProps = {
202
- adornmentInside: false,
203
- autofocus: false,
204
- classes: {},
205
- meta: {},
206
- onChangeText: val => val,
207
- PasswordInvisibleIcon: _VisibilityOff.default,
208
- PasswordVisibleIcon: _Visibility.default,
209
- preventEnterSubmit: false
24
+ version: _propTypes.string
210
25
  };
211
- var _default = exports.default = (0, _WithTheme.default)(_theme.retrieveStyle, _theme.retrieveMuiTheme)(UTTextInput);
26
+ var _default = exports.default = UTTextInput;
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = require("prop-types");
9
+ var _Visibility = _interopRequireDefault(require("@material-ui/icons/Visibility"));
10
+ var _VisibilityOff = _interopRequireDefault(require("@material-ui/icons/VisibilityOff"));
11
+ var _HelpOutline = _interopRequireDefault(require("@material-ui/icons/HelpOutline"));
12
+ var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
13
+ var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
14
+ var _form = require("@widergy/web-utils/lib/form");
15
+ var _WithTheme = _interopRequireDefault(require("../../../WithTheme"));
16
+ var _UTTooltip = _interopRequireDefault(require("../../../UTTooltip"));
17
+ var _formTypes = require("../../../../types/formTypes");
18
+ var _UTButton = _interopRequireDefault(require("../../../UTButton"));
19
+ var _UTLabel = _interopRequireDefault(require("../../../UTLabel"));
20
+ var _constants = require("./constants");
21
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
22
+ var _theme = require("./theme");
23
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
24
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
27
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
28
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
29
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
30
+ const preventDefault = event => {
31
+ if (event.key === 'Enter') {
32
+ event.preventDefault();
33
+ }
34
+ };
35
+ class UTTextInput extends _react.PureComponent {
36
+ constructor(props) {
37
+ super(props);
38
+ _defineProperty(this, "handleClickShowPassword", () => {
39
+ this.setState(prevState => ({
40
+ visible: !prevState.visible
41
+ }));
42
+ });
43
+ this.state = {
44
+ visible: false
45
+ };
46
+ }
47
+ render() {
48
+ const {
49
+ adornmentInside,
50
+ autofocus,
51
+ bigInput,
52
+ captionLabel,
53
+ classes,
54
+ containerClassName,
55
+ disabled,
56
+ field,
57
+ id,
58
+ input,
59
+ inputClassName,
60
+ inputObjectKey,
61
+ label,
62
+ labelRootClassName,
63
+ meta,
64
+ onChangeText,
65
+ PasswordInvisibleIcon,
66
+ PasswordVisibleIcon,
67
+ placeholder,
68
+ preventEnterSubmit,
69
+ preventFocus,
70
+ tippyProps,
71
+ tooltip,
72
+ type,
73
+ variant,
74
+ ...others
75
+ } = this.props;
76
+ const handleChange = event => {
77
+ if (preventFocus) event.preventDefault();
78
+ input.onChange(onChangeText(event.target.value));
79
+ };
80
+ const handleClick = event => {
81
+ if (preventFocus) {
82
+ event.preventDefault();
83
+ event.target.blur();
84
+ }
85
+ };
86
+ const {
87
+ icon: Icon,
88
+ outsideIcon,
89
+ adornment,
90
+ helperText
91
+ } = (field === null || field === void 0 ? void 0 : field.configuration) || {};
92
+
93
+ // TODO. These props were forwarded to the inner dom element and they were
94
+ // causing errors and warnings. I quit them from the "..." spread to TextField.
95
+ // Deeper analysis should be done when refactoring the component to match
96
+ // design requirements.
97
+ const {
98
+ base,
99
+ selectedOptionsIds,
100
+ retrieveStyle: rs,
101
+ retrieveMuiTheme: rmt,
102
+ Component,
103
+ muiTheme,
104
+ ...textFieldPropsToForward
105
+ } = others;
106
+ const endAction = type === _constants.INPUT_TYPES.PASSWORD ? /*#__PURE__*/_react.default.createElement(_UTButton.default, {
107
+ Icon: this.state.visible ? PasswordVisibleIcon : PasswordInvisibleIcon,
108
+ onClick: this.handleClickShowPassword,
109
+ variant: "text"
110
+ }) : adornment;
111
+ const value = inputObjectKey ? input.value[inputObjectKey] : input.value;
112
+ const errorMessage = (0, _form.shouldShowErrors)(meta) && meta.error || captionLabel || '';
113
+ const fieldId = id || field !== null && field !== void 0 && field.id ? "".concat(id || field.id) : undefined;
114
+ const TextInput = /*#__PURE__*/_react.default.createElement(_TextField.default, _extends({
115
+ id: fieldId,
116
+ placeholder: placeholder,
117
+ variant: variant,
118
+ label: Icon ? /*#__PURE__*/_react.default.createElement("div", {
119
+ className: classes.labelContainer
120
+ }, /*#__PURE__*/_react.default.createElement(Icon, {
121
+ className: classes.labelIcon
122
+ }), /*#__PURE__*/_react.default.createElement("div", null, label)) : label,
123
+ onKeyPress: preventEnterSubmit ? preventDefault : undefined,
124
+ error: (0, _form.shouldShowErrors)(meta),
125
+ FormHelperTextProps: {
126
+ component: 'div'
127
+ },
128
+ helperText: errorMessage || helperText ? /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
129
+ className: _stylesModule.default.helperText,
130
+ colorTheme: errorMessage ? 'error' : 'gray',
131
+ variant: "small",
132
+ withMarkdown: true
133
+ }, errorMessage || helperText) : undefined,
134
+ disabled: disabled,
135
+ onChange: handleChange,
136
+ onClick: handleClick,
137
+ value: value,
138
+ fullWidth: true,
139
+ autoFocus: autofocus,
140
+ margin: "none",
141
+ autoComplete: "off",
142
+ InputProps: {
143
+ id: fieldId,
144
+ endAdornment: endAction && /*#__PURE__*/_react.default.createElement(_InputAdornment.default, {
145
+ position: "end",
146
+ className: "".concat(adornmentInside && _stylesModule.default.adornmentInside)
147
+ }, endAction),
148
+ type: type === _constants.INPUT_TYPES.PASSWORD ? !this.state.visible ? _constants.INPUT_TYPES.PASSWORD : _constants.INPUT_TYPES.TEXT : type || _constants.INPUT_TYPES.TEXT,
149
+ classes: {
150
+ input: "\n ".concat(bigInput && classes.bigInput, "\n ").concat(type === _constants.INPUT_TYPES.NUMBER && _stylesModule.default.numberType, "\n ").concat(inputClassName, "\n ")
151
+ }
152
+ },
153
+ InputLabelProps: {
154
+ classes: {
155
+ root: labelRootClassName
156
+ },
157
+ htmlFor: fieldId
158
+ }
159
+ }, textFieldPropsToForward));
160
+ return /*#__PURE__*/_react.default.createElement("div", {
161
+ className: "".concat(classes.container, " ").concat(containerClassName, " ").concat(tooltip && _stylesModule.default.containerWithTooltip)
162
+ }, tooltip ? /*#__PURE__*/_react.default.createElement(_react.Fragment, null, TextInput, /*#__PURE__*/_react.default.createElement(_UTTooltip.default, {
163
+ tippyProps: tippyProps,
164
+ content: tooltip
165
+ }, /*#__PURE__*/_react.default.createElement("span", {
166
+ className: _stylesModule.default.tooltipIconContainer
167
+ }, /*#__PURE__*/_react.default.createElement(_HelpOutline.default, {
168
+ className: "".concat(classes.tooltipIcon, " ").concat(_stylesModule.default.tooltipIcon)
169
+ })))) : /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/(0, _react.isValidElement)(outsideIcon) && /*#__PURE__*/_react.default.createElement("div", {
170
+ className: _stylesModule.default.iconContainer
171
+ }, outsideIcon), TextInput));
172
+ }
173
+ }
174
+ UTTextInput.propTypes = {
175
+ adornmentInside: _propTypes.bool,
176
+ autofocus: _propTypes.bool,
177
+ bigInput: _propTypes.bool,
178
+ captionLabel: _propTypes.string,
179
+ classes: (0, _propTypes.objectOf)(_propTypes.string),
180
+ containerClassName: _propTypes.string,
181
+ disabled: _propTypes.bool,
182
+ field: _propTypes.object,
183
+ id: _propTypes.string,
184
+ input: _formTypes.inputPropTypes.isRequired,
185
+ inputClassName: _propTypes.string,
186
+ inputObjectKey: _propTypes.string,
187
+ label: _propTypes.string,
188
+ labelRootClassName: _propTypes.string,
189
+ meta: _formTypes.metaPropTypes,
190
+ onChangeText: _propTypes.func,
191
+ PasswordInvisibleIcon: _propTypes.elementType,
192
+ PasswordVisibleIcon: _propTypes.elementType,
193
+ placeholder: _propTypes.string,
194
+ preventEnterSubmit: _propTypes.bool,
195
+ preventFocus: _propTypes.bool,
196
+ tippyProps: _propTypes.object,
197
+ tooltip: _propTypes.string,
198
+ type: _propTypes.string,
199
+ variant: _propTypes.string
200
+ };
201
+ UTTextInput.defaultProps = {
202
+ adornmentInside: false,
203
+ autofocus: false,
204
+ classes: {},
205
+ meta: {},
206
+ onChangeText: val => val,
207
+ PasswordInvisibleIcon: _VisibilityOff.default,
208
+ PasswordVisibleIcon: _Visibility.default,
209
+ preventEnterSubmit: false
210
+ };
211
+ var _default = exports.default = (0, _WithTheme.default)(_theme.retrieveStyle, _theme.retrieveMuiTheme)(UTTextInput);
@@ -1,5 +1,5 @@
1
1
  // sass-lint:disable no-vendor-prefixes
2
- @import '../../scss/variables/colors.module.scss';
2
+ @import '../../../../scss/variables/colors.module.scss';
3
3
 
4
4
  .iconContainer {
5
5
  align-items: center;
@@ -7,7 +7,7 @@ exports.retrieveStyle = exports.retrieveMuiTheme = void 0;
7
7
  var _seamlessImmutable = require("seamless-immutable");
8
8
  var _styles = require("@material-ui/core/styles");
9
9
  var _merge = _interopRequireDefault(require("lodash/merge"));
10
- var _colorsModule = _interopRequireDefault(require("../../scss/variables/colors.module.scss"));
10
+ var _colorsModule = _interopRequireDefault(require("../../../../scss/variables/colors.module.scss"));
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  const retrieveStyle = _ref => {
13
13
  let {