acud 0.0.64 → 0.0.65

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,179 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var React = _interopRequireWildcard(require("react"));
17
+
18
+ var _FilledError = _interopRequireDefault(require("acud-icon/lib/icons/FilledError"));
19
+
20
+ var _OutlinedClose = _interopRequireDefault(require("acud-icon/lib/icons/OutlinedClose"));
21
+
22
+ var _FilledSuccess = _interopRequireDefault(require("acud-icon/lib/icons/FilledSuccess"));
23
+
24
+ var _FilledWarn = _interopRequireDefault(require("acud-icon/lib/icons/FilledWarn"));
25
+
26
+ var _FilledInfo = _interopRequireDefault(require("acud-icon/lib/icons/FilledInfo"));
27
+
28
+ var _classnames = _interopRequireDefault(require("classnames"));
29
+
30
+ var _configProvider = require("../config-provider");
31
+
32
+ var _button = _interopRequireDefault(require("../button"));
33
+
34
+ var _Modal = _interopRequireDefault(require("./Modal"));
35
+
36
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
+
38
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
+
40
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
41
+ var t = {};
42
+
43
+ for (var p in s) {
44
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
45
+ }
46
+
47
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
48
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
49
+ }
50
+ return t;
51
+ };
52
+
53
+ var DialogType = {
54
+ success: {
55
+ className: 'sucess',
56
+ icon: /*#__PURE__*/React.createElement(_FilledSuccess["default"], {
57
+ color: "@S6"
58
+ })
59
+ },
60
+ warning: {
61
+ className: 'warning',
62
+ icon: /*#__PURE__*/React.createElement(_FilledWarn["default"], {
63
+ color: "@W6"
64
+ })
65
+ },
66
+ confirm: {
67
+ className: 'confirm',
68
+ icon: /*#__PURE__*/React.createElement(_FilledWarn["default"], {
69
+ color: "@W6"
70
+ })
71
+ },
72
+ info: {
73
+ className: 'info',
74
+ icon: /*#__PURE__*/React.createElement(_FilledInfo["default"], {
75
+ color: "@B6"
76
+ })
77
+ },
78
+ error: {
79
+ className: 'error',
80
+ icon: /*#__PURE__*/React.createElement(_FilledError["default"], {
81
+ color: "@E6"
82
+ })
83
+ }
84
+ };
85
+
86
+ var DialogBox = function DialogBox(props) {
87
+ var _React$useContext = React.useContext(_configProvider.ConfigContext),
88
+ getPopupContainer = _React$useContext.getPopupContainer,
89
+ getPrefixCls = _React$useContext.getPrefixCls;
90
+
91
+ var prefixCls = getPrefixCls('modal-dialogbox');
92
+ var closeIconToRender = /*#__PURE__*/React.createElement("span", {
93
+ className: "".concat(prefixCls, "-close-x")
94
+ }, /*#__PURE__*/React.createElement(_OutlinedClose["default"], {
95
+ className: "".concat(prefixCls, "-close-icon")
96
+ }));
97
+
98
+ var visible = props.visible,
99
+ className = props.className,
100
+ title = props.title,
101
+ content = props.content,
102
+ type = props.type,
103
+ cancelBtn = props.cancelBtn,
104
+ okText = props.okText,
105
+ confirmLoading = props.confirmLoading,
106
+ onOk = props.onOk,
107
+ onClose = props.onClose,
108
+ restProps = __rest(props, ["visible", "className", "title", "content", "type", "cancelBtn", "okText", "confirmLoading", "onOk", "onClose"]);
109
+
110
+ var _React$useState = React.useState(false),
111
+ _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
112
+ loading = _React$useState2[0],
113
+ toggleLoading = _React$useState2[1];
114
+
115
+ var okBtnLoading = React.useMemo(function () {
116
+ if (typeof confirmLoading === 'boolean') {
117
+ return confirmLoading;
118
+ }
119
+
120
+ return loading;
121
+ }, [confirmLoading, loading]);
122
+ var handleOk = React.useCallback(function (e) {
123
+ var okResult = onOk === null || onOk === void 0 ? void 0 : onOk(e);
124
+
125
+ if (okResult && typeof okResult.then === 'function') {
126
+ toggleLoading(true);
127
+ okResult.then(function () {
128
+ console.log('then: close');
129
+ toggleLoading(false);
130
+ onClose === null || onClose === void 0 ? void 0 : onClose.apply(void 0, arguments);
131
+ }, function (e) {
132
+ console.error(e);
133
+ toggleLoading(false);
134
+ });
135
+ } else {
136
+ onClose === null || onClose === void 0 ? void 0 : onClose(e);
137
+ }
138
+ }, [onOk, onClose]);
139
+ var handleCancel = React.useCallback(function () {
140
+ onClose === null || onClose === void 0 ? void 0 : onClose({
141
+ triggerCancel: true
142
+ });
143
+ }, [onClose]);
144
+ var titleNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
145
+ className: "".concat(prefixCls, "-icon")
146
+ }, DialogType[type].icon), /*#__PURE__*/React.createElement("div", {
147
+ className: "".concat(prefixCls, "-title")
148
+ }, title));
149
+ var footer = React.useMemo(function () {
150
+ if (!cancelBtn) {
151
+ return /*#__PURE__*/React.createElement(_button["default"], {
152
+ type: "primary",
153
+ loading: okBtnLoading,
154
+ onClick: handleOk
155
+ }, okText);
156
+ }
157
+ }, [okText, cancelBtn, okBtnLoading, handleOk]);
158
+ return /*#__PURE__*/React.createElement(_Modal["default"], (0, _extends2["default"])({}, restProps, {
159
+ confirmLoading: okBtnLoading,
160
+ footer: footer,
161
+ title: titleNode,
162
+ className: (0, _classnames["default"])(className, "".concat(prefixCls), "".concat(prefixCls, "-").concat(type)),
163
+ getContainer: getPopupContainer,
164
+ visible: visible,
165
+ closeIcon: closeIconToRender,
166
+ onCancel: handleCancel,
167
+ onOk: handleOk,
168
+ okText: okText
169
+ }), /*#__PURE__*/React.createElement("div", {
170
+ className: "".concat(prefixCls, "-content")
171
+ }, content));
172
+ };
173
+
174
+ DialogBox.defaultProps = {
175
+ visible: true,
176
+ type: 'info'
177
+ };
178
+ var _default = DialogBox;
179
+ exports["default"] = _default;
@@ -0,0 +1,17 @@
1
+ import { ModalFuncProps } from './DialogBox';
2
+ export declare function destroyAll(): void;
3
+ export declare function confirm(config: ModalFuncProps): {
4
+ destroy: (...args: any[]) => void;
5
+ };
6
+ export declare function success(config: ModalFuncProps): {
7
+ destroy: (...args: any[]) => void;
8
+ };
9
+ export declare function info(config: ModalFuncProps): {
10
+ destroy: (...args: any[]) => void;
11
+ };
12
+ export declare function warning(config: ModalFuncProps): {
13
+ destroy: (...args: any[]) => void;
14
+ };
15
+ export declare function error(config: ModalFuncProps): {
16
+ destroy: (...args: any[]) => void;
17
+ };
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.confirm = confirm;
9
+ exports.destroyAll = destroyAll;
10
+ exports.error = error;
11
+ exports.info = info;
12
+ exports.success = success;
13
+ exports.warning = warning;
14
+
15
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
16
+
17
+ var _react = _interopRequireDefault(require("react"));
18
+
19
+ var _reactDom = require("react-dom");
20
+
21
+ var _DialogBox = _interopRequireDefault(require("./DialogBox"));
22
+
23
+ var destroyFns = [];
24
+
25
+ function renderDialogBox(config) {
26
+ var currentConfig = (0, _extends2["default"])((0, _extends2["default"])({}, config), {
27
+ visible: true,
28
+ onClose: close
29
+ });
30
+ var container = document.createDocumentFragment();
31
+
32
+ function render(dialogConfig) {
33
+ setTimeout(function () {
34
+ (0, _reactDom.render)( /*#__PURE__*/_react["default"].createElement(_DialogBox["default"], dialogConfig), container);
35
+ });
36
+ }
37
+
38
+ function destroy() {
39
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
40
+ args[_key] = arguments[_key];
41
+ }
42
+
43
+ var triggerCancel = args.some(function (param) {
44
+ return param && param.triggerCancel;
45
+ });
46
+
47
+ if (config.onCancel && triggerCancel) {
48
+ // @ts-ignore
49
+ config.onCancel.apply(config, args);
50
+ }
51
+
52
+ for (var i = 0; i < destroyFns.length; i++) {
53
+ var fn = destroyFns[i];
54
+
55
+ if (fn === close) {
56
+ destroyFns.splice(i, 1);
57
+ break;
58
+ }
59
+ }
60
+
61
+ (0, _reactDom.unmountComponentAtNode)(container);
62
+ }
63
+
64
+ function close() {
65
+ var _this = this;
66
+
67
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
68
+ args[_key2] = arguments[_key2];
69
+ }
70
+
71
+ render((0, _extends2["default"])((0, _extends2["default"])({}, currentConfig), {
72
+ visible: false,
73
+ afterClose: function afterClose() {
74
+ if (typeof config.afterClose === 'function') {
75
+ config.afterClose();
76
+ }
77
+
78
+ destroy.apply(_this, args);
79
+ }
80
+ }));
81
+ }
82
+
83
+ render(currentConfig);
84
+ destroyFns.push(close);
85
+ return {
86
+ destroy: close
87
+ };
88
+ }
89
+
90
+ function destroyAll() {
91
+ while (destroyFns.length) {
92
+ var close = destroyFns.pop();
93
+
94
+ if (close) {
95
+ close();
96
+ }
97
+ }
98
+ }
99
+
100
+ function confirm(config) {
101
+ return renderDialogBox((0, _extends2["default"])((0, _extends2["default"])({}, config), {
102
+ type: 'confirm',
103
+ cancelBtn: true
104
+ }));
105
+ }
106
+
107
+ function success(config) {
108
+ var _a;
109
+
110
+ return renderDialogBox((0, _extends2["default"])((0, _extends2["default"])({}, config), {
111
+ type: 'success',
112
+ cancelBtn: false,
113
+ okText: (_a = config.okText) !== null && _a !== void 0 ? _a : '关闭'
114
+ }));
115
+ }
116
+
117
+ function info(config) {
118
+ var _a;
119
+
120
+ return renderDialogBox((0, _extends2["default"])((0, _extends2["default"])({}, config), {
121
+ type: 'info',
122
+ cancelBtn: false,
123
+ okText: (_a = config.okText) !== null && _a !== void 0 ? _a : '确定'
124
+ }));
125
+ }
126
+
127
+ function warning(config) {
128
+ var _a;
129
+
130
+ return renderDialogBox((0, _extends2["default"])((0, _extends2["default"])({}, config), {
131
+ type: 'warning',
132
+ cancelBtn: false,
133
+ okText: (_a = config.okText) !== null && _a !== void 0 ? _a : '关闭'
134
+ }));
135
+ }
136
+
137
+ function error(config) {
138
+ var _a;
139
+
140
+ return renderDialogBox((0, _extends2["default"])((0, _extends2["default"])({}, config), {
141
+ type: 'error',
142
+ cancelBtn: false,
143
+ okText: (_a = config.okText) !== null && _a !== void 0 ? _a : '重试'
144
+ }));
145
+ }
@@ -1,2 +1,11 @@
1
- import Modal from './Modal';
2
- export default Modal;
1
+ /// <reference types="react" />
2
+ import { confirm, success, info, error, warning, destroyAll } from './dialog';
3
+ declare const _default: import("react").FC<import("./Modal").ModalProps> & {
4
+ confirm: typeof confirm;
5
+ success: typeof success;
6
+ info: typeof info;
7
+ error: typeof error;
8
+ warning: typeof warning;
9
+ destroyAll: typeof destroyAll;
10
+ };
11
+ export default _default;
@@ -7,7 +7,19 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
10
12
  var _Modal = _interopRequireDefault(require("./Modal"));
11
13
 
12
- var _default = _Modal["default"];
14
+ var _dialog = require("./dialog");
15
+
16
+ var _default = (0, _extends2["default"])(_Modal["default"], {
17
+ confirm: _dialog.confirm,
18
+ success: _dialog.success,
19
+ info: _dialog.info,
20
+ error: _dialog.error,
21
+ warning: _dialog.warning,
22
+ destroyAll: _dialog.destroyAll
23
+ });
24
+
13
25
  exports["default"] = _default;
@@ -19,7 +19,6 @@
19
19
  transform: translate(-50%, -50%);
20
20
  width: auto;
21
21
  max-width: calc(100vw - 32px);
22
- padding-bottom: 24px;
23
22
  }
24
23
  .acud-modal.zoom-enter,
25
24
  .acud-modal.zoom-appear {
@@ -111,7 +110,7 @@
111
110
  }
112
111
  .acud-modal-close-x {
113
112
  display: block;
114
- margin-top: 28px;
113
+ margin-top: 27px;
115
114
  font-size: 16px;
116
115
  text-align: center;
117
116
  text-transform: none;
@@ -125,8 +124,8 @@
125
124
  font-weight: 900;
126
125
  }
127
126
  .acud-modal-title {
128
- font-size: 16px;
129
- line-height: 24px;
127
+ font-size: 14px;
128
+ line-height: 22px;
130
129
  word-wrap: break-word;
131
130
  }
132
131
  .acud-modal-body {
@@ -143,6 +142,9 @@
143
142
  background: #FFFFFF;
144
143
  text-align: right;
145
144
  flex: none;
145
+ display: flex;
146
+ align-items: center;
147
+ justify-content: flex-end;
146
148
  }
147
149
  .acud-modal-footer .acud-btn {
148
150
  margin: 0;
@@ -150,3 +152,37 @@
150
152
  .acud-modal-footer .acud-btn + .acud-btn {
151
153
  margin-left: 16px;
152
154
  }
155
+ .acud-modal-dialogbox {
156
+ width: 400px;
157
+ height: auto;
158
+ min-height: 184px;
159
+ }
160
+ .acud-modal-dialogbox-icon {
161
+ height: 100%;
162
+ margin-right: 12px;
163
+ float: left;
164
+ display: flex;
165
+ align-items: center;
166
+ padding-top: 2px;
167
+ }
168
+ .acud-modal-dialogbox .acud-modal-title .acudicon {
169
+ font-size: 20px;
170
+ }
171
+ .acud-modal-dialogbox-content {
172
+ padding-left: 32px;
173
+ }
174
+ .acud-modal-dialogbox-warning .acud-modal-dialogbox-icon {
175
+ color: #FF9326;
176
+ }
177
+ .acud-modal-dialogbox-info .acud-modal-dialogbox-icon {
178
+ color: #2468F2;
179
+ }
180
+ .acud-modal-dialogbox-success .acud-modal-dialogbox-icon {
181
+ color: #30BF13;
182
+ }
183
+ .acud-modal-dialogbox-error .acud-modal-dialogbox-icon {
184
+ color: #F33E3E;
185
+ }
186
+ .acud-modal-dialogbox-confirm .acud-modal-dialogbox-icon {
187
+ color: #FF9326;
188
+ }
@@ -3,6 +3,7 @@
3
3
  @import './mixin';
4
4
 
5
5
  @modal-prefix-cls: ~'@{acud-prefix}-modal';
6
+ @dialogbox-prefix: ~'@{modal-prefix-cls}-dialogbox';
6
7
 
7
8
  .@{modal-prefix-cls} {
8
9
  .reset-component();
@@ -16,7 +17,6 @@
16
17
  transform: translate(-50%, -50%);
17
18
  width: auto;
18
19
  max-width: calc(100vw - 32px);
19
- padding-bottom: 24px;
20
20
 
21
21
  &-sm {
22
22
  .modal-size-config(sm);
@@ -114,6 +114,10 @@
114
114
  background: @modal-footer-bg-color;
115
115
  text-align: right;
116
116
  flex: none;
117
+ // TODO: 暂时解决 confirmLoading 时按钮对齐问题
118
+ display: flex;
119
+ align-items: center;
120
+ justify-content: flex-end;
117
121
 
118
122
  .@{acud-prefix}-btn {
119
123
  margin: 0;
@@ -123,3 +127,58 @@
123
127
  }
124
128
  }
125
129
  }
130
+
131
+ .@{dialogbox-prefix} {
132
+ width: @P * 100;
133
+ height: auto;
134
+ min-height: @P * 46;
135
+
136
+ &-icon {
137
+ height: 100%;
138
+ margin-right: @P * 3;
139
+ float: left;
140
+ // TODO: 没找到更好的居中办法
141
+ display: flex;
142
+ align-items: center;
143
+ padding-top: 2px;
144
+ }
145
+
146
+ .@{modal-prefix-cls}-title {
147
+ .acudicon {
148
+ font-size: @T6;
149
+ }
150
+ }
151
+
152
+ &-content {
153
+ padding-left: @P * 3 + @T6;
154
+ }
155
+ }
156
+
157
+ .@{dialogbox-prefix}-warning {
158
+ .@{dialogbox-prefix}-icon {
159
+ color: @W6;
160
+ }
161
+ }
162
+
163
+ .@{dialogbox-prefix}-info {
164
+ .@{dialogbox-prefix}-icon {
165
+ color: @B6;
166
+ }
167
+ }
168
+
169
+ .@{dialogbox-prefix}-success {
170
+ .@{dialogbox-prefix}-icon {
171
+ color: @S6;
172
+ }
173
+ }
174
+ .@{dialogbox-prefix}-error {
175
+ .@{dialogbox-prefix}-icon {
176
+ color: @E6;
177
+ }
178
+ }
179
+
180
+ .@{dialogbox-prefix}-confirm {
181
+ .@{dialogbox-prefix}-icon {
182
+ color: @W6;
183
+ }
184
+ }
@@ -29,10 +29,10 @@
29
29
  @modal-content-bg-color: @G11;
30
30
 
31
31
  // Header
32
- @modal-heading-height: 6*@P;
32
+ @modal-heading-height: 22px;
33
33
  @modal-heading-bg-color: @G10;
34
34
  @modal-heading-padding: 6*@P 6*@P 0;
35
- @modal-heading-font-size: @T4;
35
+ @modal-heading-font-size: @T3;
36
36
  @modal-heading-font-weight: 500;
37
37
  @modal-heading-color: @G2;
38
38
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "acud",
3
- "version": "0.0.64",
3
+ "version": "0.0.65",
4
4
  "description": "acg react 组件库",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",