@pisell/private-materials 3.0.126 → 3.0.128-gray
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/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +2 -2
- package/build/lowcode/render/default/view.js +8 -8
- package/build/lowcode/view.js +4 -4
- package/es/components/booking/components/TabProduct/index.js +63 -60
- package/es/components/booking/components/customSelect/index.d.ts +1 -1
- package/es/components/booking/forms/forms.d.ts +2 -2
- package/es/components/booking/forms/forms.js +61 -58
- package/es/components/booking/info/client/index.d.ts +4 -4
- package/es/components/booking/info/client/index.js +94 -90
- package/es/components/booking/info/clientVariant/vertical/index.js +5 -4
- package/es/components/booking/info/header/index.js +2 -2
- package/es/components/booking/info/index.js +1 -1
- package/es/components/booking/info/pet/index.d.ts +3 -3
- package/es/components/booking/info/pet/index.js +135 -131
- package/es/components/booking/info/service/addService/index.js +47 -45
- package/es/components/booking/info/service/addTimeModal/index.d.ts +2 -2
- package/es/components/booking/info/service/addTimeModal/index.js +218 -225
- package/es/components/booking/info/service/editService/index.js +194 -192
- package/es/components/booking/info/service/index.d.ts +2 -2
- package/es/components/booking/info/service/index.js +1 -1
- package/es/components/booking/locales.d.ts +6 -6
- package/es/components/booking/locales.js +6 -6
- package/es/components/eftposPay/store/index.d.ts +2 -2
- package/lib/components/booking/components/TabProduct/index.js +61 -58
- package/lib/components/booking/components/customSelect/index.d.ts +1 -1
- package/lib/components/booking/forms/forms.d.ts +2 -2
- package/lib/components/booking/forms/forms.js +90 -75
- package/lib/components/booking/info/client/index.d.ts +4 -4
- package/lib/components/booking/info/client/index.js +59 -48
- package/lib/components/booking/info/clientVariant/vertical/index.js +5 -4
- package/lib/components/booking/info/header/index.js +1 -1
- package/lib/components/booking/info/index.js +1 -1
- package/lib/components/booking/info/pet/index.d.ts +3 -3
- package/lib/components/booking/info/pet/index.js +113 -84
- package/lib/components/booking/info/service/addService/index.js +112 -99
- package/lib/components/booking/info/service/addTimeModal/index.d.ts +2 -2
- package/lib/components/booking/info/service/addTimeModal/index.js +154 -127
- package/lib/components/booking/info/service/editService/index.js +196 -171
- package/lib/components/booking/info/service/index.d.ts +2 -2
- package/lib/components/booking/info/service/index.js +1 -1
- package/lib/components/booking/locales.d.ts +6 -6
- package/lib/components/booking/locales.js +6 -6
- package/lib/components/eftposPay/store/index.d.ts +2 -2
- package/package.json +4 -4
|
@@ -5,11 +5,12 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
5
5
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
6
6
|
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
7
7
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
8
|
-
import React, { useEffect, useState, useRef } from "react";
|
|
8
|
+
import React, { useEffect, useState, useRef, useMemo } from "react";
|
|
9
9
|
import Tabs from "./tabs";
|
|
10
10
|
import Card from "./card";
|
|
11
11
|
import ProductItem from "./productItem";
|
|
12
12
|
import "./index.less";
|
|
13
|
+
import { useMemoizedFn } from "ahooks";
|
|
13
14
|
var io = null;
|
|
14
15
|
var TabProduct = function TabProduct(props) {
|
|
15
16
|
var list = props.list,
|
|
@@ -36,7 +37,7 @@ var TabProduct = function TabProduct(props) {
|
|
|
36
37
|
* @Author: chensheng.gu
|
|
37
38
|
* @Date: 2023-07-13 16:31
|
|
38
39
|
*/
|
|
39
|
-
var handleObserver = function
|
|
40
|
+
var handleObserver = useMemoizedFn(function () {
|
|
40
41
|
var _marginTop = 270;
|
|
41
42
|
var _marginBottom = window.innerHeight - 70 - 200 - 70;
|
|
42
43
|
var _rootMargin = "".concat(_marginTop * -1, "px 0px ").concat(_marginBottom * -1, "px 0px");
|
|
@@ -71,7 +72,7 @@ var TabProduct = function TabProduct(props) {
|
|
|
71
72
|
_iterator.f();
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
|
-
};
|
|
75
|
+
});
|
|
75
76
|
|
|
76
77
|
/**
|
|
77
78
|
* @title: 取消监听
|
|
@@ -80,7 +81,7 @@ var TabProduct = function TabProduct(props) {
|
|
|
80
81
|
* @Author: chensheng.gu
|
|
81
82
|
* @Date: 2023-07-13 16:31
|
|
82
83
|
*/
|
|
83
|
-
var handleUnobserver = function
|
|
84
|
+
var handleUnobserver = useMemoizedFn(function () {
|
|
84
85
|
if (list !== null && list !== void 0 && list.length && io) {
|
|
85
86
|
var _iterator2 = _createForOfIteratorHelper(list),
|
|
86
87
|
_step2;
|
|
@@ -98,65 +99,67 @@ var TabProduct = function TabProduct(props) {
|
|
|
98
99
|
_iterator2.f();
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
|
-
};
|
|
102
|
-
var onProductClick = function
|
|
102
|
+
});
|
|
103
|
+
var onProductClick = useMemoizedFn(function (productDetail, type) {
|
|
103
104
|
onChange === null || onChange === void 0 ? void 0 : onChange(productDetail, type);
|
|
104
|
-
};
|
|
105
|
-
return
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
className: "booking-tabs-wrap",
|
|
109
|
-
style: {
|
|
110
|
-
top: "100px"
|
|
111
|
-
}
|
|
112
|
-
}, /*#__PURE__*/React.createElement(Card, {
|
|
113
|
-
className: "booking-tabs",
|
|
114
|
-
id: "product-category"
|
|
115
|
-
}, /*#__PURE__*/React.createElement(Tabs, {
|
|
116
|
-
ref: tabsRef,
|
|
117
|
-
options: list,
|
|
118
|
-
rowKey: "id",
|
|
119
|
-
tab: current,
|
|
120
|
-
onChange: function onChange(e) {
|
|
121
|
-
var _document, _document2;
|
|
122
|
-
var categoryDom = document.querySelector("#product-category");
|
|
123
|
-
var top = 0;
|
|
124
|
-
if (categoryDom) {
|
|
125
|
-
top = categoryDom.offsetHeight + 16;
|
|
126
|
-
}
|
|
127
|
-
var dom = (_document = document) === null || _document === void 0 ? void 0 : _document.querySelector("#list-" + e);
|
|
128
|
-
var main = (_document2 = document) === null || _document2 === void 0 ? void 0 : _document2.querySelector(scrollDom || "");
|
|
129
|
-
if (dom && main) {
|
|
130
|
-
main.scrollTop = dom.offsetTop - top;
|
|
131
|
-
}
|
|
132
|
-
handleUnobserver();
|
|
133
|
-
setCurrent(e);
|
|
134
|
-
setTimeout(function () {
|
|
135
|
-
handleObserver();
|
|
136
|
-
}, 1000);
|
|
137
|
-
}
|
|
138
|
-
}))), /*#__PURE__*/React.createElement("div", {
|
|
139
|
-
className: "booking-category-list"
|
|
140
|
-
}, list.map(function (d, i) {
|
|
141
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
142
|
-
className: "booking-category-item",
|
|
143
|
-
id: "list-".concat(d.id),
|
|
144
|
-
key: i
|
|
105
|
+
});
|
|
106
|
+
return useMemo(function () {
|
|
107
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
108
|
+
className: "booking-tab-product"
|
|
145
109
|
}, /*#__PURE__*/React.createElement("div", {
|
|
146
|
-
className: "booking-
|
|
147
|
-
|
|
148
|
-
|
|
110
|
+
className: "booking-tabs-wrap",
|
|
111
|
+
style: {
|
|
112
|
+
top: "100px"
|
|
113
|
+
}
|
|
149
114
|
}, /*#__PURE__*/React.createElement(Card, {
|
|
150
|
-
className: "booking-
|
|
151
|
-
|
|
152
|
-
},
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
115
|
+
className: "booking-tabs",
|
|
116
|
+
id: "product-category"
|
|
117
|
+
}, /*#__PURE__*/React.createElement(Tabs, {
|
|
118
|
+
ref: tabsRef,
|
|
119
|
+
options: list,
|
|
120
|
+
rowKey: "id",
|
|
121
|
+
tab: current,
|
|
122
|
+
onChange: function onChange(e) {
|
|
123
|
+
var _document, _document2;
|
|
124
|
+
var categoryDom = document.querySelector("#product-category");
|
|
125
|
+
var top = 0;
|
|
126
|
+
if (categoryDom) {
|
|
127
|
+
top = categoryDom.offsetHeight + 16;
|
|
128
|
+
}
|
|
129
|
+
var dom = (_document = document) === null || _document === void 0 ? void 0 : _document.querySelector("#list-" + e);
|
|
130
|
+
var main = (_document2 = document) === null || _document2 === void 0 ? void 0 : _document2.querySelector(scrollDom || "");
|
|
131
|
+
if (dom && main) {
|
|
132
|
+
main.scrollTop = dom.offsetTop - top;
|
|
133
|
+
}
|
|
134
|
+
handleUnobserver();
|
|
135
|
+
setCurrent(e);
|
|
136
|
+
setTimeout(function () {
|
|
137
|
+
handleObserver();
|
|
138
|
+
}, 1000);
|
|
139
|
+
}
|
|
140
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
141
|
+
className: "booking-category-list"
|
|
142
|
+
}, list.map(function (d, i) {
|
|
143
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
144
|
+
className: "booking-category-item",
|
|
145
|
+
id: "list-".concat(d.id),
|
|
146
|
+
key: i
|
|
147
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
148
|
+
className: "booking-category-title"
|
|
149
|
+
}, d.name), /*#__PURE__*/React.createElement("div", {
|
|
150
|
+
className: "booking-product-list"
|
|
151
|
+
}, /*#__PURE__*/React.createElement(Card, {
|
|
152
|
+
className: "booking-card",
|
|
153
|
+
layout: 2
|
|
154
|
+
}, d.products.map(function (item) {
|
|
155
|
+
return /*#__PURE__*/React.createElement(ProductItem, {
|
|
156
|
+
key: item.id,
|
|
157
|
+
item: item,
|
|
158
|
+
onClick: onProductClick,
|
|
159
|
+
amountSymbol: amountSymbol
|
|
160
|
+
});
|
|
161
|
+
}))));
|
|
159
162
|
}))));
|
|
160
|
-
})
|
|
163
|
+
}, [list, current, amountSymbol]);
|
|
161
164
|
};
|
|
162
165
|
export default TabProduct;
|
|
@@ -31,7 +31,7 @@ interface CustomSelectProps {
|
|
|
31
31
|
closeCallback?: () => any;
|
|
32
32
|
autoFocus?: boolean;
|
|
33
33
|
showDropDown?: boolean;
|
|
34
|
-
handleOpenModal
|
|
34
|
+
handleOpenModal?: () => void;
|
|
35
35
|
}
|
|
36
36
|
declare const _default: React.ForwardRefExoticComponent<CustomSelectProps & React.RefAttributes<unknown>>;
|
|
37
37
|
export default _default;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import './index.less';
|
|
2
2
|
export interface InfoProps {
|
|
3
3
|
forms: any[];
|
|
4
4
|
value: any;
|
|
@@ -21,5 +21,5 @@ export interface InfoProps {
|
|
|
21
21
|
* @Author: zhiwei.Wang
|
|
22
22
|
* @Date: 2024-01-30 17:10
|
|
23
23
|
*/
|
|
24
|
-
declare const Forms:
|
|
24
|
+
declare const Forms: any;
|
|
25
25
|
export default Forms;
|
|
@@ -14,13 +14,14 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
|
|
|
14
14
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
15
15
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
16
16
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
17
|
-
import React from
|
|
17
|
+
import React, { useMemo } from 'react';
|
|
18
18
|
import { Provider } from "./model";
|
|
19
19
|
import Single from "./single";
|
|
20
|
-
import { locales } from
|
|
20
|
+
import { locales } from '@pisell/utils';
|
|
21
21
|
import { formatAddFormValues } from "./format";
|
|
22
22
|
import { isWalkIn } from "../utils";
|
|
23
23
|
import "./index.less";
|
|
24
|
+
import { useMemoizedFn } from 'ahooks';
|
|
24
25
|
/**
|
|
25
26
|
* @title: 表单模块
|
|
26
27
|
* @description:
|
|
@@ -45,7 +46,7 @@ var Forms = Provider(function (props) {
|
|
|
45
46
|
addButtonProps = props.addButtonProps;
|
|
46
47
|
|
|
47
48
|
// 新增数据
|
|
48
|
-
var onAction = /*#__PURE__*/function () {
|
|
49
|
+
var onAction = useMemoizedFn( /*#__PURE__*/function () {
|
|
49
50
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(formDataConfig, isAdd) {
|
|
50
51
|
var _data;
|
|
51
52
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
@@ -54,11 +55,11 @@ var Forms = Provider(function (props) {
|
|
|
54
55
|
_data = {
|
|
55
56
|
formDataConfig: _objectSpread({}, formDataConfig)
|
|
56
57
|
};
|
|
57
|
-
if (formDataConfig.data_range ===
|
|
58
|
+
if (formDataConfig.data_range === 'customer' && !isWalkIn(client === null || client === void 0 ? void 0 : client.id)) {
|
|
58
59
|
_data.customerId = client.id;
|
|
59
60
|
}
|
|
60
61
|
action({
|
|
61
|
-
type:
|
|
62
|
+
type: 'pisell1.goCustomFormAddData',
|
|
62
63
|
data: _data,
|
|
63
64
|
callback: function callback(res) {
|
|
64
65
|
if (isAdd) {
|
|
@@ -88,11 +89,11 @@ var Forms = Provider(function (props) {
|
|
|
88
89
|
}
|
|
89
90
|
}, _callee);
|
|
90
91
|
}));
|
|
91
|
-
return function
|
|
92
|
+
return function (_x, _x2) {
|
|
92
93
|
return _ref.apply(this, arguments);
|
|
93
94
|
};
|
|
94
|
-
}();
|
|
95
|
-
var onValueChange = function
|
|
95
|
+
}());
|
|
96
|
+
var onValueChange = useMemoizedFn(function (form, val) {
|
|
96
97
|
onChange({
|
|
97
98
|
values: _objectSpread(_objectSpread({}, value), {}, _defineProperty({}, form.form_id, formatAddFormValues({
|
|
98
99
|
clientId: client === null || client === void 0 ? void 0 : client.id,
|
|
@@ -104,23 +105,23 @@ var Forms = Provider(function (props) {
|
|
|
104
105
|
value: val
|
|
105
106
|
}
|
|
106
107
|
});
|
|
107
|
-
};
|
|
108
|
-
var _handleViewItem = function
|
|
108
|
+
});
|
|
109
|
+
var _handleViewItem = useMemoizedFn(function (props) {
|
|
109
110
|
var form = props.form,
|
|
110
111
|
record = props.record;
|
|
111
112
|
var _data = {
|
|
112
113
|
record: record,
|
|
113
114
|
formDataConfig: form
|
|
114
115
|
};
|
|
115
|
-
if (form.data_range ===
|
|
116
|
+
if (form.data_range === 'customer' && !isWalkIn(client === null || client === void 0 ? void 0 : client.id)) {
|
|
116
117
|
_data.customerId = client.id;
|
|
117
118
|
}
|
|
118
119
|
action({
|
|
119
|
-
type:
|
|
120
|
+
type: 'pisell1.goCustomFormDetail',
|
|
120
121
|
data: _data,
|
|
121
122
|
callback: function callback(res) {
|
|
122
123
|
var cur = _toConsumableArray(value[form.form_id] || []);
|
|
123
|
-
if (res.type ===
|
|
124
|
+
if (res.type === 'delete') {
|
|
124
125
|
cur = cur.filter(function (d) {
|
|
125
126
|
return d.form_record_id !== record.form_record_id;
|
|
126
127
|
});
|
|
@@ -145,52 +146,54 @@ var Forms = Provider(function (props) {
|
|
|
145
146
|
onValueChange(form, cur);
|
|
146
147
|
}
|
|
147
148
|
});
|
|
148
|
-
};
|
|
149
|
-
return
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
onAdd: function onAdd() {
|
|
173
|
-
onAction(d, true);
|
|
174
|
-
},
|
|
175
|
-
addButtonProps: _objectSpread({
|
|
176
|
-
loading: loading,
|
|
177
|
-
// 如果表单是客户数据, 并且未选择客户 则禁止选择表单
|
|
178
|
-
disabled: d.data_range === "customer" && isWalkIn(client === null || client === void 0 ? void 0 : client.id)
|
|
179
|
-
}, addButtonProps),
|
|
180
|
-
customSelectProps: _objectSpread({
|
|
181
|
-
handleViewItem: function handleViewItem(record) {
|
|
182
|
-
_handleViewItem({
|
|
183
|
-
form: d,
|
|
184
|
-
record: record
|
|
185
|
-
});
|
|
149
|
+
});
|
|
150
|
+
return useMemo(function () {
|
|
151
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, (forms || []).map(function (d) {
|
|
152
|
+
var _d$form;
|
|
153
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
154
|
+
className: "pisell-lowcode__booking-field-wrap",
|
|
155
|
+
style: {
|
|
156
|
+
padding: hideTitle ? 0 : '12px 0 0'
|
|
157
|
+
},
|
|
158
|
+
key: d.form_id
|
|
159
|
+
}, hideTitle ? null : /*#__PURE__*/React.createElement("div", {
|
|
160
|
+
className: "pisell-lowcode__booking-field-title"
|
|
161
|
+
}, d.form.title), /*#__PURE__*/React.createElement("div", {
|
|
162
|
+
className: "pisell-lowcode__booking-field-com"
|
|
163
|
+
}, /*#__PURE__*/React.createElement(Single, {
|
|
164
|
+
modalOpen: modalOpen,
|
|
165
|
+
form: d,
|
|
166
|
+
watch: {
|
|
167
|
+
value: value
|
|
168
|
+
},
|
|
169
|
+
mode: d.type,
|
|
170
|
+
value: value[d.form_id] || [],
|
|
171
|
+
onChange: function onChange(val) {
|
|
172
|
+
onValueChange(d, val);
|
|
186
173
|
},
|
|
187
|
-
|
|
188
|
-
onAction(d,
|
|
174
|
+
onAdd: function onAdd() {
|
|
175
|
+
onAction(d, true);
|
|
189
176
|
},
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
177
|
+
addButtonProps: _objectSpread({
|
|
178
|
+
loading: loading,
|
|
179
|
+
// 如果表单是客户数据, 并且未选择客户 则禁止选择表单
|
|
180
|
+
disabled: d.data_range === 'customer' && isWalkIn(client === null || client === void 0 ? void 0 : client.id)
|
|
181
|
+
}, addButtonProps),
|
|
182
|
+
customSelectProps: _objectSpread({
|
|
183
|
+
handleViewItem: function handleViewItem(record) {
|
|
184
|
+
_handleViewItem({
|
|
185
|
+
form: d,
|
|
186
|
+
record: record
|
|
187
|
+
});
|
|
188
|
+
},
|
|
189
|
+
handleCreateItem: function handleCreateItem() {
|
|
190
|
+
onAction(d, false);
|
|
191
|
+
},
|
|
192
|
+
createItemText: "".concat(locales.getText('pisell2.text.create-new'), " ").concat(((_d$form = d.form) === null || _d$form === void 0 ? void 0 : _d$form.title) || '-')
|
|
193
|
+
}, customSelectProps || {}),
|
|
194
|
+
optionRender: optionRender
|
|
195
|
+
})));
|
|
196
|
+
}));
|
|
197
|
+
}, [forms, hideTitle, modalOpen, value, loading, client === null || client === void 0 ? void 0 : client.id, addButtonProps, customSelectProps, optionRender]);
|
|
195
198
|
});
|
|
196
199
|
export default Forms;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import
|
|
3
|
-
declare const
|
|
4
|
-
export default
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './index.less';
|
|
3
|
+
declare const _default: React.MemoExoticComponent<() => React.JSX.Element>;
|
|
4
|
+
export default _default;
|