@abtnode/ux 1.8.21 → 1.8.23

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,176 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = FormTextInput;
7
+
8
+ var _react = require("react");
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
13
+
14
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
15
+
16
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
17
+
18
+ var _EditIcon = _interopRequireDefault(require("@arcblock/icons/lib/EditIcon"));
19
+
20
+ var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
21
+
22
+ var _Done = _interopRequireDefault(require("@mui/icons-material/Done"));
23
+
24
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
25
+
26
+ var _required = _interopRequireDefault(require("./required"));
27
+
28
+ var _formWrapper = _interopRequireDefault(require("./form-wrapper"));
29
+
30
+ var _jsxRuntime = require("react/jsx-runtime");
31
+
32
+ const _excluded = ["label", "disabled", "required", "initialValue", "onChange", "placeholder", "style", "onSubmit"];
33
+
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+
36
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
+
38
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
+
40
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
41
+
42
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
43
+
44
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
45
+
46
+ function FormTextInput(_ref) {
47
+ let {
48
+ label,
49
+ disabled,
50
+ required,
51
+ initialValue,
52
+ onChange,
53
+ placeholder,
54
+ style,
55
+ onSubmit
56
+ } = _ref,
57
+ rest = _objectWithoutProperties(_ref, _excluded);
58
+
59
+ const [editing, setEditing] = (0, _react.useState)(false);
60
+ const [loading, setLoading] = (0, _react.useState)(false);
61
+ const [defaultValue, setDefaultValue] = (0, _react.useState)(initialValue);
62
+ const [value, setValue] = (0, _react.useState)(defaultValue);
63
+
64
+ const handleSubmit = async () => {
65
+ setLoading(true);
66
+
67
+ try {
68
+ await onSubmit(value);
69
+ setDefaultValue(value);
70
+ } catch (err) {
71
+ setValue(defaultValue);
72
+ } finally {
73
+ setLoading(false);
74
+ setEditing(false);
75
+ }
76
+ };
77
+
78
+ const onInputChange = changeValue => {
79
+ setValue(changeValue);
80
+ onChange(changeValue);
81
+ }; // enter keydown
82
+
83
+
84
+ const handleKeydown = e => {
85
+ if (e.key === 'Enter') {
86
+ handleSubmit();
87
+ }
88
+ };
89
+
90
+ const input = editing ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, _objectSpread({
91
+ style: {
92
+ flex: 1
93
+ },
94
+ fullWidth: true,
95
+ value: value,
96
+ onChange: e => {
97
+ onInputChange(e.target.value);
98
+ },
99
+ autoFocus: true,
100
+ size: "small",
101
+ variant: "outlined",
102
+ placeholder: placeholder,
103
+ onKeyDown: handleKeydown,
104
+ disabled: disabled
105
+ }, rest)) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
106
+ px: 1,
107
+ className: "form-item-input slot",
108
+ children: value
109
+ });
110
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_formWrapper.default, {
111
+ className: "form",
112
+ style: style,
113
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
114
+ className: "form-item",
115
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
116
+ className: "form-item-label",
117
+ children: [label, required && /*#__PURE__*/(0, _jsxRuntime.jsx)(_required.default, {})]
118
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
119
+ className: "form-item-body",
120
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
121
+ className: "form-item-input",
122
+ children: input
123
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
124
+ className: "form-item-action",
125
+ children: editing ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
126
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
127
+ "data-cy": "schema-form-item-confirm",
128
+ onClick: handleSubmit,
129
+ disabled: disabled || loading,
130
+ size: "large",
131
+ children: loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
132
+ size: 24
133
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Done.default, {})
134
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
135
+ "data-cy": "schema-form-item-cancel",
136
+ onClick: () => {
137
+ setValue(defaultValue);
138
+ setEditing(false);
139
+ },
140
+ disabled: disabled || loading,
141
+ size: "large",
142
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close.default, {})
143
+ })]
144
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
145
+ "data-cy": "schema-form-item-edit",
146
+ onClick: () => setEditing(true),
147
+ disabled: disabled,
148
+ size: "large",
149
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_EditIcon.default, {})
150
+ })
151
+ })]
152
+ })]
153
+ })
154
+ });
155
+ }
156
+
157
+ FormTextInput.propTypes = {
158
+ style: _propTypes.default.object,
159
+ onSubmit: _propTypes.default.func,
160
+ onChange: _propTypes.default.func,
161
+ label: _propTypes.default.string,
162
+ initialValue: _propTypes.default.string,
163
+ placeholder: _propTypes.default.string,
164
+ required: _propTypes.default.bool,
165
+ disabled: _propTypes.default.bool
166
+ };
167
+ FormTextInput.defaultProps = {
168
+ style: {},
169
+ onSubmit: () => {},
170
+ onChange: () => {},
171
+ label: '',
172
+ initialValue: '',
173
+ placeholder: '',
174
+ required: false,
175
+ disabled: false
176
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
9
+
10
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
11
+
12
+ var _templateObject;
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
17
+
18
+ var _default = (0, _styled.default)(_Box.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 100%;\n flex-grow: 1;\n overflow-y: auto;\n ", " {\n width: 100%;\n flex-shrink: 0;\n padding: 0 24px;\n transform: translate(0, 0);\n /* max-height: 60vh; */\n }\n\n .form-item {\n width: 100%;\n margin-bottom: 24px;\n position: relative;\n ", " {\n flex-wrap: wrap;\n justify-content: space-between;\n width: 100%;\n flex-shrink: 0;\n }\n }\n\n .form-item-body {\n display: flex;\n align-items: center;\n width: 100%;\n margin-top: 4px;\n }\n\n .form-item-label {\n line-height: 1.2;\n font-size: 14px;\n color: #888;\n font-weight: bold;\n\n ", " {\n text-align: left;\n width: auto;\n flex-grow: 1;\n }\n }\n\n .form-item-input {\n flex-grow: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &.slot {\n height: 40px;\n line-height: 40px;\n background: #f8f8f8;\n font-size: 16px;\n }\n }\n\n .form-item-action {\n // width: 100px;\n text-align: left;\n margin-left: 12px;\n flex-shrink: 0;\n ", " {\n width: auto;\n margin-left: 0px;\n }\n .MuiIconButton-root {\n padding: 8px;\n svg {\n fill: #888;\n }\n &.Mui-disabled {\n opacity: 0.4;\n }\n }\n }\n"])), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.down('md'));
19
+
20
+ exports.default = _default;
File without changes
@@ -29,7 +29,9 @@ var _textInput = _interopRequireDefault(require("./text-input"));
29
29
 
30
30
  var _passportInput = _interopRequireDefault(require("./passport-input"));
31
31
 
32
- var _required = _interopRequireDefault(require("./required"));
32
+ var _required = _interopRequireDefault(require("../form/required"));
33
+
34
+ var _formWrapper = _interopRequireDefault(require("../form/form-wrapper"));
33
35
 
34
36
  var _jsxRuntime = require("react/jsx-runtime");
35
37
 
@@ -149,7 +151,7 @@ function SchemaForm(_ref2) {
149
151
  return currentValue;
150
152
  }
151
153
 
152
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(FormWrapper, {
154
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledFormWrapper, {
153
155
  className: "form",
154
156
  style: style,
155
157
  children: schema === null || schema === void 0 ? void 0 : schema.map(x => {
@@ -254,4 +256,4 @@ SchemaForm.defaultProps = {
254
256
  style: {},
255
257
  disabled: false
256
258
  };
257
- const FormWrapper = (0, _styled.default)(_Box.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 80%;\n flex-grow: 1;\n overflow-y: auto;\n ", " {\n width: 100%;\n flex-shrink: 0;\n padding: 0 24px;\n transform: translate(0, 0);\n /* max-height: 60vh; */\n }\n\n .form-item {\n width: 100%;\n margin-bottom: 24px;\n position: relative;\n ", " {\n flex-wrap: wrap;\n justify-content: space-between;\n width: 100%;\n flex-shrink: 0;\n }\n }\n\n .form-item-body {\n display: flex;\n align-items: center;\n width: 100%;\n margin-top: 4px;\n }\n\n .form-item-label {\n line-height: 1.2;\n font-size: 14px;\n color: #888;\n font-weight: bold;\n\n ", " {\n text-align: left;\n width: auto;\n flex-grow: 1;\n }\n }\n\n .form-item-input {\n flex-grow: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &.slot {\n height: 40px;\n line-height: 40px;\n background: #f8f8f8;\n font-size: 16px;\n }\n }\n\n .form-item-action {\n // width: 100px;\n text-align: left;\n margin-left: 12px;\n flex-shrink: 0;\n ", " {\n width: auto;\n margin-left: 0px;\n }\n .MuiIconButton-root {\n padding: 8px;\n svg {\n fill: #888;\n }\n &.Mui-disabled {\n opacity: 0.4;\n }\n }\n }\n"])), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.down('md'));
259
+ const StyledFormWrapper = (0, _styled.default)(_formWrapper.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 80%;\n"])));
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.8.21",
6
+ "version": "1.8.23",
7
7
  "description": "UX components shared across abtnode packages",
8
8
  "main": "lib/index.js",
9
9
  "files": [
@@ -21,12 +21,12 @@
21
21
  "author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
- "@abtnode/auth": "1.8.21",
25
- "@abtnode/constant": "1.8.21",
26
- "@arcblock/did-connect": "^2.4.23",
27
- "@arcblock/icons": "^2.4.23",
28
- "@arcblock/ux": "^2.4.23",
29
- "@blocklet/meta": "1.8.21",
24
+ "@abtnode/auth": "1.8.23",
25
+ "@abtnode/constant": "1.8.23",
26
+ "@arcblock/did-connect": "^2.4.28",
27
+ "@arcblock/icons": "^2.4.28",
28
+ "@arcblock/ux": "^2.4.28",
29
+ "@blocklet/meta": "1.8.23",
30
30
  "@emotion/react": "^11.10.0",
31
31
  "@emotion/styled": "^11.10.0",
32
32
  "@mui/icons-material": "^5.8.4",
@@ -50,5 +50,5 @@
50
50
  "@babel/preset-react": "^7.18.6",
51
51
  "babel-plugin-inline-react-svg": "^1.1.2"
52
52
  },
53
- "gitHead": "f990cddd5ef18ece7ada5d7573b8e0652d74abdc"
53
+ "gitHead": "539a32437cf0d01d4cf12afd0dd8276716467527"
54
54
  }