@abtnode/ux 1.7.26 → 1.8.1
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.
- package/lib/card-selector.js +28 -28
- package/lib/invitation/invitation-app.js +26 -15
- package/lib/invitation/invitation-passport.js +69 -57
- package/lib/invitation/invitation-receive.js +38 -34
- package/lib/invitation/invitation-user.js +23 -22
- package/lib/invitation/invitation.js +23 -21
- package/lib/issue-passport.js +54 -47
- package/lib/launch-blocklet/content-layout.js +11 -3
- package/lib/launch-blocklet/page-header.js +11 -7
- package/lib/layout/addon.js +29 -27
- package/lib/lost-passport.js +135 -110
- package/lib/nav-logo.js +63 -39
- package/lib/schema-form/color-input.js +123 -0
- package/lib/schema-form/common-prop-types.js +24 -0
- package/lib/schema-form/index.js +247 -0
- package/lib/schema-form/passport-input.js +82 -0
- package/lib/schema-form/required.js +19 -0
- package/lib/schema-form/text-input.js +87 -0
- package/lib/toast.js +17 -14
- package/lib/util/index.js +2 -1
- package/lib/wrap-locale.js +12 -8
- package/package.json +9 -7
package/lib/nav-logo.js
CHANGED
|
@@ -5,17 +5,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = LogoContainer;
|
|
7
7
|
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
9
|
|
|
12
10
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
11
|
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
|
|
14
14
|
const _excluded = ["logo", "name", "subname", "previousData"],
|
|
15
15
|
_excluded2 = ["logo"];
|
|
16
16
|
|
|
17
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
18
|
|
|
19
|
+
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; }
|
|
20
|
+
|
|
21
|
+
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; }
|
|
22
|
+
|
|
23
|
+
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; }
|
|
24
|
+
|
|
19
25
|
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; }
|
|
20
26
|
|
|
21
27
|
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; }
|
|
@@ -29,56 +35,72 @@ function LogoContainer(_ref) {
|
|
|
29
35
|
} = _ref,
|
|
30
36
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
31
37
|
|
|
32
|
-
let logoEle = /*#__PURE__*/
|
|
38
|
+
let logoEle = /*#__PURE__*/(0, _jsxRuntime.jsx)(LogoImg, {
|
|
33
39
|
logo: logo
|
|
34
40
|
});
|
|
35
|
-
|
|
36
41
|
let nameEle = name;
|
|
37
42
|
let subnameEle = subname;
|
|
38
43
|
|
|
39
44
|
if (previousData.logo) {
|
|
40
|
-
logoEle = /*#__PURE__*/
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
logoEle = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
46
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(LogoImg, {
|
|
47
|
+
logo: logo,
|
|
48
|
+
className: "left-fade-in-ele"
|
|
49
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(LogoImg, {
|
|
50
|
+
logo: previousData.logo,
|
|
51
|
+
className: "postion-abs left-fade-out-ele"
|
|
52
|
+
})]
|
|
53
|
+
});
|
|
47
54
|
}
|
|
48
55
|
|
|
49
56
|
if (previousData.name && previousData.name !== name) {
|
|
50
|
-
nameEle = /*#__PURE__*/
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
nameEle = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
58
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
59
|
+
className: "right-fade-in-ele",
|
|
60
|
+
style: {
|
|
61
|
+
display: 'inline-block'
|
|
62
|
+
},
|
|
63
|
+
children: name
|
|
64
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
65
|
+
className: "postion-abs right-fade-out-ele",
|
|
66
|
+
children: previousData.name
|
|
67
|
+
})]
|
|
68
|
+
});
|
|
58
69
|
}
|
|
59
70
|
|
|
60
71
|
if (previousData.subname && previousData.subname !== subname) {
|
|
61
|
-
subnameEle = /*#__PURE__*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
subnameEle = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
73
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
74
|
+
className: "right-fade-in-ele",
|
|
75
|
+
style: {
|
|
76
|
+
display: 'inline-block'
|
|
77
|
+
},
|
|
78
|
+
children: subname
|
|
79
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
80
|
+
className: "postion-abs right-fade-out-ele",
|
|
81
|
+
children: previousData.subname
|
|
82
|
+
})]
|
|
83
|
+
});
|
|
69
84
|
}
|
|
70
85
|
|
|
71
|
-
return /*#__PURE__*/
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
86
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Container, _objectSpread(_objectSpread({}, rest), {}, {
|
|
87
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
88
|
+
className: "logo-inner",
|
|
89
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
90
|
+
className: "logo-img-content",
|
|
91
|
+
children: logoEle
|
|
92
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
93
|
+
className: "logo-info ".concat(!name && !subname ? 'zero-left' : ''),
|
|
94
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
95
|
+
className: "logo-name",
|
|
96
|
+
children: nameEle
|
|
97
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
98
|
+
className: "logo-subname",
|
|
99
|
+
children: subnameEle
|
|
100
|
+
})]
|
|
101
|
+
})]
|
|
102
|
+
})
|
|
103
|
+
}));
|
|
82
104
|
}
|
|
83
105
|
|
|
84
106
|
LogoContainer.propTypes = {
|
|
@@ -103,7 +125,9 @@ function LogoImg(_ref2) {
|
|
|
103
125
|
} = _ref2,
|
|
104
126
|
rest = _objectWithoutProperties(_ref2, _excluded2);
|
|
105
127
|
|
|
106
|
-
return /*#__PURE__*/
|
|
128
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(LogoImgDiv, _objectSpread(_objectSpread({}, rest), {}, {
|
|
129
|
+
children: logo
|
|
130
|
+
}));
|
|
107
131
|
}
|
|
108
132
|
|
|
109
133
|
const LogoImgDiv = _styledComponents.default.div.withConfig({
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = ColorInput;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
11
|
+
|
|
12
|
+
var _Popover = _interopRequireDefault(require("@mui/material/Popover"));
|
|
13
|
+
|
|
14
|
+
var _reactColor = require("react-color");
|
|
15
|
+
|
|
16
|
+
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
17
|
+
|
|
18
|
+
var _commonPropTypes = _interopRequireDefault(require("./common-prop-types"));
|
|
19
|
+
|
|
20
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
function ColorInput(_ref) {
|
|
25
|
+
let {
|
|
26
|
+
editing,
|
|
27
|
+
value,
|
|
28
|
+
onChange
|
|
29
|
+
} = _ref;
|
|
30
|
+
const {
|
|
31
|
+
t
|
|
32
|
+
} = (0, _context.useLocaleContext)();
|
|
33
|
+
const [open, setOpen] = (0, _react.useState)(false);
|
|
34
|
+
const colorElm = (0, _react.useRef)();
|
|
35
|
+
const colorValue = (0, _react.useRef)(value); // auto open color picker when editing, should wait the useRef to be ready
|
|
36
|
+
|
|
37
|
+
(0, _react.useEffect)(() => {
|
|
38
|
+
let timer = null;
|
|
39
|
+
|
|
40
|
+
if (editing) {
|
|
41
|
+
timer = setTimeout(() => {
|
|
42
|
+
setOpen(true);
|
|
43
|
+
}, 50);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return () => {
|
|
47
|
+
clearTimeout(timer);
|
|
48
|
+
};
|
|
49
|
+
}, [editing]);
|
|
50
|
+
|
|
51
|
+
const onColorChange = color => {
|
|
52
|
+
colorValue.current = color;
|
|
53
|
+
onChange(color);
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const handleEnterKeyDown = () => {
|
|
57
|
+
setOpen(false);
|
|
58
|
+
onChange(colorValue.current);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const ReadView = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
62
|
+
className: "form-item-input slot",
|
|
63
|
+
px: 1,
|
|
64
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
65
|
+
display: "flex",
|
|
66
|
+
alignItems: "center",
|
|
67
|
+
children: [value, value !== 'auto' && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
68
|
+
style: {
|
|
69
|
+
marginLeft: 4,
|
|
70
|
+
backgroundColor: value,
|
|
71
|
+
width: '1em',
|
|
72
|
+
height: '1em',
|
|
73
|
+
borderRadius: '0.2em'
|
|
74
|
+
}
|
|
75
|
+
})]
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
const EditView = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
79
|
+
display: "flex",
|
|
80
|
+
flexGrow: 1,
|
|
81
|
+
alignItems: "center",
|
|
82
|
+
height: "40px",
|
|
83
|
+
onKeyDown: handleEnterKeyDown,
|
|
84
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
85
|
+
display: "flex",
|
|
86
|
+
alignItems: "center",
|
|
87
|
+
onClick: () => setOpen(true),
|
|
88
|
+
children: [t('config.customColor'), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
89
|
+
ref: colorElm,
|
|
90
|
+
style: {
|
|
91
|
+
flexShrink: 0,
|
|
92
|
+
marginLeft: '8px',
|
|
93
|
+
backgroundColor: value,
|
|
94
|
+
width: '32px',
|
|
95
|
+
height: '32px',
|
|
96
|
+
boxSizing: 'border-box',
|
|
97
|
+
borderRadius: '8px',
|
|
98
|
+
border: '1px solid #eee',
|
|
99
|
+
cursor: value === 'auto' ? 'default' : 'pointer'
|
|
100
|
+
}
|
|
101
|
+
})]
|
|
102
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
|
|
103
|
+
open: open,
|
|
104
|
+
anchorEl: colorElm.current,
|
|
105
|
+
onClose: () => setOpen(false),
|
|
106
|
+
anchorOrigin: {
|
|
107
|
+
vertical: 'bottom',
|
|
108
|
+
horizontal: 'center'
|
|
109
|
+
},
|
|
110
|
+
transformOrigin: {
|
|
111
|
+
vertical: 'top',
|
|
112
|
+
horizontal: 'center'
|
|
113
|
+
},
|
|
114
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactColor.ChromePicker, {
|
|
115
|
+
color: value,
|
|
116
|
+
onChange: c => onColorChange(c.hex)
|
|
117
|
+
})
|
|
118
|
+
})]
|
|
119
|
+
});
|
|
120
|
+
return editing ? EditView : ReadView;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
ColorInput.propTypes = _commonPropTypes.default;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
var _default = {
|
|
13
|
+
description: _propTypes.default.string,
|
|
14
|
+
editing: _propTypes.default.bool,
|
|
15
|
+
onChange: _propTypes.default.func,
|
|
16
|
+
required: _propTypes.default.bool,
|
|
17
|
+
// eslint-disable-next-line react/no-unused-prop-types
|
|
18
|
+
value: _propTypes.default.any,
|
|
19
|
+
// eslint-disable-next-line react/no-unused-prop-types
|
|
20
|
+
componentProps: _propTypes.default.object,
|
|
21
|
+
render: _propTypes.default.func,
|
|
22
|
+
renderFormItem: _propTypes.default.func
|
|
23
|
+
};
|
|
24
|
+
exports.default = _default;
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = SchemaForm;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
13
|
+
|
|
14
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
15
|
+
|
|
16
|
+
var _EditIcon = _interopRequireDefault(require("@arcblock/icons/lib/EditIcon"));
|
|
17
|
+
|
|
18
|
+
var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
|
|
19
|
+
|
|
20
|
+
var _Done = _interopRequireDefault(require("@mui/icons-material/Done"));
|
|
21
|
+
|
|
22
|
+
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
23
|
+
|
|
24
|
+
var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
|
|
25
|
+
|
|
26
|
+
var _colorInput = _interopRequireDefault(require("./color-input"));
|
|
27
|
+
|
|
28
|
+
var _textInput = _interopRequireDefault(require("./text-input"));
|
|
29
|
+
|
|
30
|
+
var _passportInput = _interopRequireDefault(require("./passport-input"));
|
|
31
|
+
|
|
32
|
+
var _required = _interopRequireDefault(require("./required"));
|
|
33
|
+
|
|
34
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
35
|
+
|
|
36
|
+
var _templateObject;
|
|
37
|
+
|
|
38
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
39
|
+
|
|
40
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
41
|
+
|
|
42
|
+
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; }
|
|
43
|
+
|
|
44
|
+
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; }
|
|
45
|
+
|
|
46
|
+
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; }
|
|
47
|
+
|
|
48
|
+
function getComponent(item, _ref) {
|
|
49
|
+
let {
|
|
50
|
+
editing = false
|
|
51
|
+
} = _ref;
|
|
52
|
+
const {
|
|
53
|
+
componentType = 'input',
|
|
54
|
+
render,
|
|
55
|
+
renderFormItem
|
|
56
|
+
} = item; // if provided renderItem and editing is true, use it
|
|
57
|
+
|
|
58
|
+
if (editing && renderFormItem) {
|
|
59
|
+
return renderFormItem;
|
|
60
|
+
} // if provided render and editing is false, use it
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
if (!editing && render) {
|
|
64
|
+
return render;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const componentMap = {
|
|
68
|
+
input: _textInput.default,
|
|
69
|
+
color: _colorInput.default,
|
|
70
|
+
passport: _passportInput.default
|
|
71
|
+
};
|
|
72
|
+
return componentMap[componentType === null || componentType === void 0 ? void 0 : componentType.toLowerCase()];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function SchemaForm(_ref2) {
|
|
76
|
+
let {
|
|
77
|
+
schema,
|
|
78
|
+
loading,
|
|
79
|
+
value,
|
|
80
|
+
defaultValue,
|
|
81
|
+
onChange,
|
|
82
|
+
style
|
|
83
|
+
} = _ref2;
|
|
84
|
+
const isControlled = Object.prototype.toString.call(value) === '[object Object]';
|
|
85
|
+
const [editingItem, setEditingItem] = (0, _react.useState)(null);
|
|
86
|
+
const [formValues, setFormValues] = (0, _react.useState)(isControlled ? value : defaultValue);
|
|
87
|
+
const editingItemInitialValue = (0, _react.useRef)();
|
|
88
|
+
|
|
89
|
+
function onFormItemChange(item, changeValue, action) {
|
|
90
|
+
const {
|
|
91
|
+
key
|
|
92
|
+
} = item;
|
|
93
|
+
const oldValue = formValues[key];
|
|
94
|
+
const isChanged = oldValue !== changeValue;
|
|
95
|
+
|
|
96
|
+
const newValues = _objectSpread(_objectSpread({}, formValues), {}, {
|
|
97
|
+
[key]: changeValue
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
if (isChanged) {
|
|
101
|
+
setFormValues(newValues);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
onChange({
|
|
105
|
+
[key]: changeValue
|
|
106
|
+
}, {
|
|
107
|
+
allValues: newValues,
|
|
108
|
+
action,
|
|
109
|
+
currentItem: item
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function onItemEditingStatusChange(item) {
|
|
114
|
+
if (item) {
|
|
115
|
+
editingItemInitialValue.current = formValues[item.key];
|
|
116
|
+
setEditingItem(item);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
editingItemInitialValue.current = null;
|
|
121
|
+
setEditingItem(null);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function getValue(item, _ref3) {
|
|
125
|
+
let {
|
|
126
|
+
editing = false
|
|
127
|
+
} = _ref3;
|
|
128
|
+
const {
|
|
129
|
+
key
|
|
130
|
+
} = item;
|
|
131
|
+
const currentValue = isControlled ? value[key] : formValues[key];
|
|
132
|
+
|
|
133
|
+
if (currentValue === '__encrypted__') {
|
|
134
|
+
if (!editing) {
|
|
135
|
+
return '******';
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return '';
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return currentValue;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(FormWrapper, {
|
|
145
|
+
className: "form",
|
|
146
|
+
style: style,
|
|
147
|
+
children: schema === null || schema === void 0 ? void 0 : schema.map(x => {
|
|
148
|
+
const {
|
|
149
|
+
key,
|
|
150
|
+
description,
|
|
151
|
+
required,
|
|
152
|
+
hidden = false,
|
|
153
|
+
componentProps = {}
|
|
154
|
+
} = x;
|
|
155
|
+
|
|
156
|
+
if (hidden) {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const editing = !!(editingItem && key === editingItem.key);
|
|
161
|
+
const currentValue = getValue(x, {
|
|
162
|
+
editing
|
|
163
|
+
}); // get component by componentType
|
|
164
|
+
|
|
165
|
+
const CurrentComponent = getComponent(x, {
|
|
166
|
+
editing
|
|
167
|
+
});
|
|
168
|
+
const renderComponentProps = {
|
|
169
|
+
inputProps: {
|
|
170
|
+
'data-cy': 'schema-form-item-component'
|
|
171
|
+
},
|
|
172
|
+
key,
|
|
173
|
+
description,
|
|
174
|
+
editing,
|
|
175
|
+
value: currentValue,
|
|
176
|
+
onChange: changeValue => onFormItemChange(x, changeValue, 'change'),
|
|
177
|
+
componentProps
|
|
178
|
+
};
|
|
179
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
180
|
+
className: "form-item",
|
|
181
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
182
|
+
className: "form-item-label",
|
|
183
|
+
style: {
|
|
184
|
+
color: required && !currentValue ? '#ff0000' : '#333'
|
|
185
|
+
},
|
|
186
|
+
children: [description, required && /*#__PURE__*/(0, _jsxRuntime.jsx)(_required.default, {})]
|
|
187
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
188
|
+
className: "form-item-body",
|
|
189
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
190
|
+
className: "form-item-input",
|
|
191
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CurrentComponent, _objectSpread({}, renderComponentProps))
|
|
192
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
193
|
+
className: "form-item-action",
|
|
194
|
+
children: editing ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
195
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
196
|
+
"data-cy": "schema-form-item-confirm",
|
|
197
|
+
onClick: () => {
|
|
198
|
+
onFormItemChange(x, currentValue, 'confirm');
|
|
199
|
+
onItemEditingStatusChange(null);
|
|
200
|
+
},
|
|
201
|
+
disabled: loading,
|
|
202
|
+
size: "large",
|
|
203
|
+
children: loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
|
|
204
|
+
size: 24
|
|
205
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Done.default, {})
|
|
206
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
207
|
+
"data-cy": "schema-form-item-cancel",
|
|
208
|
+
onClick: () => {
|
|
209
|
+
onFormItemChange(x, editingItemInitialValue.current, 'cancel');
|
|
210
|
+
onItemEditingStatusChange(null);
|
|
211
|
+
},
|
|
212
|
+
disabled: loading,
|
|
213
|
+
size: "large",
|
|
214
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close.default, {})
|
|
215
|
+
})]
|
|
216
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
217
|
+
"data-cy": "schema-form-item-edit",
|
|
218
|
+
onClick: () => {
|
|
219
|
+
onFormItemChange(x, formValues[key], 'edit');
|
|
220
|
+
onItemEditingStatusChange(x);
|
|
221
|
+
},
|
|
222
|
+
disabled: editingItem,
|
|
223
|
+
size: "large",
|
|
224
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_EditIcon.default, {})
|
|
225
|
+
})
|
|
226
|
+
})]
|
|
227
|
+
})]
|
|
228
|
+
}, key);
|
|
229
|
+
})
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
SchemaForm.propTypes = {
|
|
234
|
+
schema: _propTypes.default.array.isRequired,
|
|
235
|
+
loading: _propTypes.default.bool,
|
|
236
|
+
onChange: _propTypes.default.func.isRequired,
|
|
237
|
+
value: _propTypes.default.object,
|
|
238
|
+
defaultValue: _propTypes.default.object,
|
|
239
|
+
style: _propTypes.default.object
|
|
240
|
+
};
|
|
241
|
+
SchemaForm.defaultProps = {
|
|
242
|
+
loading: false,
|
|
243
|
+
value: undefined,
|
|
244
|
+
defaultValue: {},
|
|
245
|
+
style: {}
|
|
246
|
+
};
|
|
247
|
+
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\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'));
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = PassportInput;
|
|
7
|
+
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
|
|
10
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
11
|
+
|
|
12
|
+
var _createPassportSvg = _interopRequireDefault(require("@abtnode/auth/lib/util/create-passport-svg"));
|
|
13
|
+
|
|
14
|
+
var _passportColor = require("@abtnode/auth/lib/util/passport-color");
|
|
15
|
+
|
|
16
|
+
var _util = require("@blocklet/meta/lib/util");
|
|
17
|
+
|
|
18
|
+
var _colorInput = _interopRequireDefault(require("./color-input"));
|
|
19
|
+
|
|
20
|
+
var _commonPropTypes = _interopRequireDefault(require("./common-prop-types"));
|
|
21
|
+
|
|
22
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
+
|
|
24
|
+
const _excluded = ["editing", "value", "onChange", "componentProps"];
|
|
25
|
+
|
|
26
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
|
+
|
|
28
|
+
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; }
|
|
29
|
+
|
|
30
|
+
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; }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
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; }
|
|
35
|
+
|
|
36
|
+
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; }
|
|
37
|
+
|
|
38
|
+
function PassportInput(_ref) {
|
|
39
|
+
let {
|
|
40
|
+
editing,
|
|
41
|
+
value,
|
|
42
|
+
onChange,
|
|
43
|
+
componentProps
|
|
44
|
+
} = _ref,
|
|
45
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
46
|
+
|
|
47
|
+
const {
|
|
48
|
+
blocklet
|
|
49
|
+
} = componentProps;
|
|
50
|
+
const color = value === 'auto' ? (0, _passportColor.getPassportColorFromDid)(blocklet.appDid) : value;
|
|
51
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
52
|
+
display: "flex",
|
|
53
|
+
alignItems: "center",
|
|
54
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
|
|
55
|
+
style: {
|
|
56
|
+
width: 96,
|
|
57
|
+
marginRight: 12
|
|
58
|
+
},
|
|
59
|
+
alt: "",
|
|
60
|
+
src: (0, _createPassportSvg.default)({
|
|
61
|
+
title: 'Owner',
|
|
62
|
+
issuer: (0, _util.getDisplayName)(blocklet),
|
|
63
|
+
issuerDid: blocklet.appDid,
|
|
64
|
+
ownerName: 'Your Name',
|
|
65
|
+
isDataUrl: true,
|
|
66
|
+
preferredColor: value || 'auto'
|
|
67
|
+
})
|
|
68
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_colorInput.default, _objectSpread(_objectSpread({}, rest), {}, {
|
|
69
|
+
editing: editing,
|
|
70
|
+
value: editing ? color : value,
|
|
71
|
+
onChange: onChange,
|
|
72
|
+
componentProps: componentProps
|
|
73
|
+
}))]
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
PassportInput.propTypes = _objectSpread(_objectSpread({}, _commonPropTypes.default), {}, {
|
|
78
|
+
componentProps: _propTypes.default.shape({
|
|
79
|
+
blocklet: _propTypes.default.object.isRequired
|
|
80
|
+
}).isRequired
|
|
81
|
+
});
|
|
82
|
+
PassportInput.defaultProps = {};
|
|
@@ -0,0 +1,19 @@
|
|
|
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 _templateObject;
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
15
|
+
|
|
16
|
+
const Required = _styled.default.span(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n color: ", ";\n &::before {\n content: '*';\n }\n"])), props => props.theme.palette.error.main);
|
|
17
|
+
|
|
18
|
+
var _default = Required;
|
|
19
|
+
exports.default = _default;
|