@vtx/components 2.3.1 → 2.4.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.
- package/CHANGELOG.md +62 -0
- package/lib/vtx-combogrid/Combogrid.js +13 -7
- package/lib/vtx-combogrid/Combogrid.js.map +1 -1
- package/lib/vtx-combogrid/index.js +14 -2
- package/lib/vtx-combogrid/index.js.map +1 -1
- package/lib/vtx-form-layout/FormItem.js +7 -2
- package/lib/vtx-form-layout/FormItem.js.map +1 -1
- package/lib/vtx-form-layout/index.js +5 -2
- package/lib/vtx-form-layout/index.js.map +1 -1
- package/lib/vtx-form-layout/style/index.css +3 -0
- package/lib/vtx-form-layout/style/index.less +3 -0
- package/lib/vtx-image/Image.js +4 -2
- package/lib/vtx-image/Image.js.map +1 -1
- package/lib/vtx-input/useLength.js +1 -1
- package/lib/vtx-input/useLength.js.map +1 -1
- package/lib/vtx-select/index.js +9 -6
- package/lib/vtx-select/index.js.map +1 -1
- package/lib/vtx-signature/index.js +124 -0
- package/lib/vtx-signature/index.js.map +1 -0
- package/lib/vtx-signature/style/css.js +8 -0
- package/lib/vtx-signature/style/css.js.map +1 -0
- package/lib/vtx-signature/style/index.css +35 -0
- package/lib/vtx-signature/style/index.js +8 -0
- package/lib/vtx-signature/style/index.js.map +1 -0
- package/lib/vtx-signature/style/index.less +32 -0
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,60 @@
|
|
|
1
|
+
# [2.4.0](https://git.cloudhw.cn:3443/front-end/react-components/compare/2.3.4...2.4.0) (2021-09-18)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### ✨ Features
|
|
5
|
+
|
|
6
|
+
* 新增VtxSignature签名组件 ([9019271](https://git.cloudhw.cn:3443/front-end/react-components/commit/9019271)) by: **gongjinhua**
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## [2.3.4](https://git.cloudhw.cn:3443/front-end/react-components/compare/2.3.3...2.3.4) (2021-09-16)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### ✨ Features
|
|
14
|
+
|
|
15
|
+
* 数据表格下拉框VtxCombogrid支持主动触发刷新接口数据 ([3c48177](https://git.cloudhw.cn:3443/front-end/react-components/commit/3c48177)) by: **gongjinhua**
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### 🎫 Chores
|
|
19
|
+
|
|
20
|
+
* release v2.3.4 ([8822b97](https://git.cloudhw.cn:3443/front-end/react-components/commit/8822b97)) by: **gongjinhua**
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### 🐛 Bug Fixes
|
|
24
|
+
|
|
25
|
+
* 文本域VtxInput.TextArea修复设置默认值为null或undefined时已输入数显示错误的问题 ([4b5d294](https://git.cloudhw.cn:3443/front-end/react-components/commit/4b5d294)) by: **gongjinhua**
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
## [2.3.3](https://git.cloudhw.cn:3443/front-end/react-components/compare/2.3.2...2.3.3) (2021-09-08)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### ✨ Features
|
|
33
|
+
|
|
34
|
+
* 图片VtxImage支持同时设置缩略图和原图 ([3e19661](https://git.cloudhw.cn:3443/front-end/react-components/commit/3e19661)) by: **yemu**
|
|
35
|
+
* 表单布局VtxFormLayout支持设置mode="view" ([e6b8e50](https://git.cloudhw.cn:3443/front-end/react-components/commit/e6b8e50)) by: **yemu**
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
### 🎫 Chores
|
|
39
|
+
|
|
40
|
+
* release v2.3.3 ([1a64610](https://git.cloudhw.cn:3443/front-end/react-components/commit/1a64610)) by: **yemu**
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## [2.3.2](https://git.cloudhw.cn:3443/front-end/react-components/compare/2.3.1...2.3.2) (2021-08-12)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### 🎫 Chores
|
|
48
|
+
|
|
49
|
+
* release v2.3.2 ([4a10be0](https://git.cloudhw.cn:3443/front-end/react-components/commit/4a10be0)) by: **yemu**
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### 🐛 Bug Fixes
|
|
53
|
+
|
|
54
|
+
* 修复VtxSelect选择器在VtxSearch显示不全的问题 ([024cdf6](https://git.cloudhw.cn:3443/front-end/react-components/commit/024cdf6)) by: **yemu**
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
1
58
|
## [2.3.1](https://git.cloudhw.cn:3443/front-end/react-components/compare/2.3.0...2.3.1) (2021-08-11)
|
|
2
59
|
|
|
3
60
|
|
|
@@ -7,6 +64,11 @@
|
|
|
7
64
|
* 选择器VtxSelect设置getPopupContainer为本身父级DIV ([187ec27](https://git.cloudhw.cn:3443/front-end/react-components/commit/187ec27)) by: **yemu**
|
|
8
65
|
|
|
9
66
|
|
|
67
|
+
### 🎫 Chores
|
|
68
|
+
|
|
69
|
+
* release v2.3.1 ([672dbaf](https://git.cloudhw.cn:3443/front-end/react-components/commit/672dbaf)) by: **yemu**
|
|
70
|
+
|
|
71
|
+
|
|
10
72
|
### 🐛 Bug Fixes
|
|
11
73
|
|
|
12
74
|
* 上传VtxUpload修复设置viewMode时删除按钮仍存在的问题 ([3e78948](https://git.cloudhw.cn:3443/front-end/react-components/commit/3e78948)) by: **yemu**
|
|
@@ -53,7 +53,7 @@ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(
|
|
|
53
53
|
|
|
54
54
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
55
55
|
|
|
56
|
-
function VtxCombogrid(props) {
|
|
56
|
+
function VtxCombogrid(props, ref) {
|
|
57
57
|
var _useState = (0, _react.useState)(false),
|
|
58
58
|
_useState2 = _slicedToArray(_useState, 2),
|
|
59
59
|
more = _useState2[0],
|
|
@@ -148,9 +148,15 @@ function VtxCombogrid(props) {
|
|
|
148
148
|
if (multiple && selectedRowKeys.length) {
|
|
149
149
|
clearSelectedRow();
|
|
150
150
|
}
|
|
151
|
-
}; //
|
|
151
|
+
}; // 暴露给父组件使用
|
|
152
152
|
|
|
153
153
|
|
|
154
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
|
155
|
+
return {
|
|
156
|
+
clear: clear
|
|
157
|
+
};
|
|
158
|
+
}); // 查询条件是否超过2个,超过2个默认隐藏
|
|
159
|
+
|
|
154
160
|
var formLen = searchForms.length;
|
|
155
161
|
var isMore = formLen > 2;
|
|
156
162
|
var moreSearchForm = [];
|
|
@@ -178,7 +184,8 @@ function VtxCombogrid(props) {
|
|
|
178
184
|
};
|
|
179
185
|
|
|
180
186
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
181
|
-
className: "".concat(prefixCls, "-popover")
|
|
187
|
+
className: "".concat(prefixCls, "-popover"),
|
|
188
|
+
ref: ref
|
|
182
189
|
}, formLen > 0 && /*#__PURE__*/_react["default"].createElement(_row["default"], {
|
|
183
190
|
gutter: 8
|
|
184
191
|
}, /*#__PURE__*/_react["default"].createElement(_col["default"], {
|
|
@@ -213,6 +220,9 @@ function VtxCombogrid(props) {
|
|
|
213
220
|
}, newTableProps, rest))));
|
|
214
221
|
}
|
|
215
222
|
|
|
223
|
+
var _default = _form["default"].create()( /*#__PURE__*/_react["default"].forwardRef(VtxCombogrid));
|
|
224
|
+
|
|
225
|
+
exports["default"] = _default;
|
|
216
226
|
VtxCombogrid.propTypes = {
|
|
217
227
|
prefixCls: _propTypes["default"].string,
|
|
218
228
|
getTableData: _propTypes["default"].func.isRequired,
|
|
@@ -227,8 +237,4 @@ VtxCombogrid.propTypes = {
|
|
|
227
237
|
spread: _propTypes["default"].bool,
|
|
228
238
|
defaultSelectedRowKeys: _propTypes["default"].array
|
|
229
239
|
};
|
|
230
|
-
|
|
231
|
-
var _default = _form["default"].create()(VtxCombogrid);
|
|
232
|
-
|
|
233
|
-
exports["default"] = _default;
|
|
234
240
|
//# sourceMappingURL=Combogrid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-combogrid/Combogrid.jsx"],"names":["VtxCombogrid","props","more","setMore","prefixCls","setPopoverVisible","multiple","onChange","getTableData","columns","searchForms","form","selectedRowKeys","setSelectedRowKeys","spread","rest","getFieldDecorator","defaultPageSize","tableProps","search","submit","reset","pagination","current","pageSize","clearSelectedRow","newTableProps","startIndex","size","headFootHeight","showSizeChanger","onRow","record","onClick","rowSelection","selectedRows","query","length","clear","formLen","isMore","moreSearchForm","slice","renderFormItem","field","name","label","render","span","map","item","idx","propTypes","PropTypes","string","func","isRequired","array","object","bool","defaultSelectedRowKeys","Form","create"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport Form from 'antd/es/form';\nimport Row from 'antd/es/row';\nimport Col from 'antd/es/col';\nimport Button from 'antd/es/button';\nimport useAntdTable from 'ahooks/es/useAntdTable';\nimport PropTypes from 'prop-types';\nimport VtxDatagrid from '../vtx-datagrid';\n\nfunction VtxCombogrid(props) {\n const [more, setMore] = useState(false);\n const {\n prefixCls,\n setPopoverVisible,\n multiple,\n onChange,\n getTableData,\n columns,\n searchForms = [],\n form,\n selectedRowKeys,\n setSelectedRowKeys,\n spread,\n ...rest\n } = props;\n const { getFieldDecorator } = form;\n\n const { tableProps, search } = useAntdTable(getTableData, {\n defaultPageSize: 10,\n form,\n });\n const { submit, reset } = search;\n\n // 表格\n const { pagination } = tableProps;\n const { current, pageSize } = pagination;\n\n const clearSelectedRow = () => {\n onChange && onChange([]);\n setSelectedRowKeys([]);\n };\n\n let newTableProps = {\n ...tableProps,\n columns,\n startIndex: (current - 1) * pageSize + 1,\n size: 'small',\n headFootHeight: 95,\n pagination: {\n ...pagination,\n showSizeChanger: false,\n onChange() {\n if (!spread) {\n clearSelectedRow();\n }\n },\n },\n onRow: record => {\n if (multiple) {\n return {};\n }\n return {\n onClick: () => {\n onChange && onChange([record]);\n setPopoverVisible(false);\n },\n };\n },\n };\n\n if (multiple) {\n newTableProps = {\n ...newTableProps,\n rowSelection: {\n selectedRowKeys,\n onChange(selectedRowKeys, selectedRows) {\n setSelectedRowKeys(selectedRowKeys);\n onChange && onChange(selectedRows);\n },\n },\n };\n }\n\n // 查询和清空会重置selectedRowKeys,因此也需清空文本中的value值\n const query = () => {\n submit();\n if (multiple && selectedRowKeys.length) {\n clearSelectedRow();\n }\n };\n const clear = () => {\n reset();\n if (multiple && selectedRowKeys.length) {\n clearSelectedRow();\n }\n };\n\n // 查询条件是否超过2个,超过2个默认隐藏\n const formLen = searchForms.length;\n const isMore = formLen > 2;\n let moreSearchForm = [];\n if (isMore) {\n moreSearchForm = searchForms.slice(2);\n }\n\n const renderFormItem = field => {\n const { name, label, render } = field;\n return (\n <Col span={12} key={name}>\n <Form.Item label={label} labelCol={{ span: 8 }} wrapperCol={{ span: 16 }}>\n {getFieldDecorator(name)(render && render(form))}\n </Form.Item>\n </Col>\n );\n };\n\n return (\n <div className={`${prefixCls}-popover`}>\n {formLen > 0 && (\n <Row gutter={8}>\n <Col span={18}>\n <Row>\n {searchForms.map((item, idx) => {\n if (idx < 2) {\n return renderFormItem(item);\n }\n })}\n </Row>\n {more && (\n <Row>\n {moreSearchForm.map(item => {\n return renderFormItem(item);\n })}\n </Row>\n )}\n </Col>\n <Col span={6} className={`${prefixCls}-btns`}>\n <Button onClick={query} type=\"primary\" size=\"small\">\n 查询\n </Button>\n <Button onClick={clear} size=\"small\">\n 清空\n </Button>\n {isMore && (\n <Button\n icon=\"more\"\n size=\"small\"\n title=\"更多\"\n onClick={() => setMore(!more)}\n />\n )}\n </Col>\n </Row>\n )}\n <div className={`${prefixCls}-main`}>\n <VtxDatagrid toolbar={false} {...newTableProps} {...rest} />\n </div>\n </div>\n );\n}\n\nVtxCombogrid.propTypes = {\n prefixCls: PropTypes.string,\n getTableData: PropTypes.func.isRequired,\n columns: PropTypes.array,\n searchForms: PropTypes.array,\n form: PropTypes.object,\n multiple: PropTypes.bool,\n onChange: PropTypes.func,\n setPopoverVisible: PropTypes.func,\n selectedRowKeys: PropTypes.array,\n setSelectedRowKeys: PropTypes.func,\n spread: PropTypes.bool,\n defaultSelectedRowKeys: PropTypes.array,\n};\n\nexport default Form.create()(VtxCombogrid);\n"],"file":"Combogrid.js"}
|
|
1
|
+
{"version":3,"sources":["vtx-combogrid/Combogrid.jsx"],"names":["VtxCombogrid","props","ref","more","setMore","prefixCls","setPopoverVisible","multiple","onChange","getTableData","columns","searchForms","form","selectedRowKeys","setSelectedRowKeys","spread","rest","getFieldDecorator","defaultPageSize","tableProps","search","submit","reset","pagination","current","pageSize","clearSelectedRow","newTableProps","startIndex","size","headFootHeight","showSizeChanger","onRow","record","onClick","rowSelection","selectedRows","query","length","clear","formLen","isMore","moreSearchForm","slice","renderFormItem","field","name","label","render","span","map","item","idx","Form","create","React","forwardRef","propTypes","PropTypes","string","func","isRequired","array","object","bool","defaultSelectedRowKeys"],"mappings":"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","sourcesContent":["import React, { useState, useImperativeHandle } from 'react';\nimport Form from 'antd/es/form';\nimport Row from 'antd/es/row';\nimport Col from 'antd/es/col';\nimport Button from 'antd/es/button';\nimport useAntdTable from 'ahooks/es/useAntdTable';\nimport PropTypes from 'prop-types';\nimport VtxDatagrid from '../vtx-datagrid';\n\nfunction VtxCombogrid(props, ref) {\n const [more, setMore] = useState(false);\n const {\n prefixCls,\n setPopoverVisible,\n multiple,\n onChange,\n getTableData,\n columns,\n searchForms = [],\n form,\n selectedRowKeys,\n setSelectedRowKeys,\n spread,\n ...rest\n } = props;\n const { getFieldDecorator } = form;\n\n const { tableProps, search } = useAntdTable(getTableData, {\n defaultPageSize: 10,\n form,\n });\n const { submit, reset } = search;\n\n // 表格\n const { pagination } = tableProps;\n const { current, pageSize } = pagination;\n\n const clearSelectedRow = () => {\n onChange && onChange([]);\n setSelectedRowKeys([]);\n };\n\n let newTableProps = {\n ...tableProps,\n columns,\n startIndex: (current - 1) * pageSize + 1,\n size: 'small',\n headFootHeight: 95,\n pagination: {\n ...pagination,\n showSizeChanger: false,\n onChange() {\n if (!spread) {\n clearSelectedRow();\n }\n },\n },\n onRow: record => {\n if (multiple) {\n return {};\n }\n return {\n onClick: () => {\n onChange && onChange([record]);\n setPopoverVisible(false);\n },\n };\n },\n };\n\n if (multiple) {\n newTableProps = {\n ...newTableProps,\n rowSelection: {\n selectedRowKeys,\n onChange(selectedRowKeys, selectedRows) {\n setSelectedRowKeys(selectedRowKeys);\n onChange && onChange(selectedRows);\n },\n },\n };\n }\n\n // 查询和清空会重置selectedRowKeys,因此也需清空文本中的value值\n const query = () => {\n submit();\n if (multiple && selectedRowKeys.length) {\n clearSelectedRow();\n }\n };\n const clear = () => {\n reset();\n if (multiple && selectedRowKeys.length) {\n clearSelectedRow();\n }\n };\n\n // 暴露给父组件使用\n useImperativeHandle(ref, () => ({\n clear,\n }));\n\n // 查询条件是否超过2个,超过2个默认隐藏\n const formLen = searchForms.length;\n const isMore = formLen > 2;\n let moreSearchForm = [];\n if (isMore) {\n moreSearchForm = searchForms.slice(2);\n }\n\n const renderFormItem = field => {\n const { name, label, render } = field;\n return (\n <Col span={12} key={name}>\n <Form.Item label={label} labelCol={{ span: 8 }} wrapperCol={{ span: 16 }}>\n {getFieldDecorator(name)(render && render(form))}\n </Form.Item>\n </Col>\n );\n };\n\n return (\n <div className={`${prefixCls}-popover`} ref={ref}>\n {formLen > 0 && (\n <Row gutter={8}>\n <Col span={18}>\n <Row>\n {searchForms.map((item, idx) => {\n if (idx < 2) {\n return renderFormItem(item);\n }\n })}\n </Row>\n {more && (\n <Row>\n {moreSearchForm.map(item => {\n return renderFormItem(item);\n })}\n </Row>\n )}\n </Col>\n <Col span={6} className={`${prefixCls}-btns`}>\n <Button onClick={query} type=\"primary\" size=\"small\">\n 查询\n </Button>\n <Button onClick={clear} size=\"small\">\n 清空\n </Button>\n {isMore && (\n <Button\n icon=\"more\"\n size=\"small\"\n title=\"更多\"\n onClick={() => setMore(!more)}\n />\n )}\n </Col>\n </Row>\n )}\n <div className={`${prefixCls}-main`}>\n <VtxDatagrid toolbar={false} {...newTableProps} {...rest} />\n </div>\n </div>\n );\n}\n\nexport default Form.create()(React.forwardRef(VtxCombogrid));\n\nVtxCombogrid.propTypes = {\n prefixCls: PropTypes.string,\n getTableData: PropTypes.func.isRequired,\n columns: PropTypes.array,\n searchForms: PropTypes.array,\n form: PropTypes.object,\n multiple: PropTypes.bool,\n onChange: PropTypes.func,\n setPopoverVisible: PropTypes.func,\n selectedRowKeys: PropTypes.array,\n setSelectedRowKeys: PropTypes.func,\n spread: PropTypes.bool,\n defaultSelectedRowKeys: PropTypes.array,\n};\n"],"file":"Combogrid.js"}
|
|
@@ -54,6 +54,8 @@ function VtxCombogrid(props, ref) {
|
|
|
54
54
|
visible = _useState4[0],
|
|
55
55
|
setVisible = _useState4[1];
|
|
56
56
|
|
|
57
|
+
var comboRef = (0, _react.useRef)();
|
|
58
|
+
|
|
57
59
|
var className = props.className,
|
|
58
60
|
style = props.style,
|
|
59
61
|
placeholder = props.placeholder,
|
|
@@ -68,14 +70,24 @@ function VtxCombogrid(props, ref) {
|
|
|
68
70
|
|
|
69
71
|
(0, _react.useEffect)(function () {
|
|
70
72
|
setSelectedRowKeys(defaultSelectedRowKeys);
|
|
71
|
-
}, [defaultSelectedRowKeys.join(',')]);
|
|
73
|
+
}, [defaultSelectedRowKeys.join(',')]); // 暴露给父组件使用
|
|
74
|
+
|
|
75
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
|
76
|
+
return {
|
|
77
|
+
// 重置
|
|
78
|
+
reset: function reset() {
|
|
79
|
+
comboRef.current && comboRef.current.clear();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
});
|
|
72
83
|
return /*#__PURE__*/_react["default"].createElement(_popover["default"], {
|
|
73
84
|
content: /*#__PURE__*/_react["default"].createElement(_Combogrid["default"], _extends({}, rest, {
|
|
74
85
|
selectedRowKeys: selectedRowKeys,
|
|
75
86
|
defaultSelectedRowKeys: defaultSelectedRowKeys,
|
|
76
87
|
setSelectedRowKeys: setSelectedRowKeys,
|
|
77
88
|
setPopoverVisible: setVisible,
|
|
78
|
-
prefixCls: prefixCls
|
|
89
|
+
prefixCls: prefixCls,
|
|
90
|
+
wrappedComponentRef: comboRef
|
|
79
91
|
})),
|
|
80
92
|
placement: "bottomLeft",
|
|
81
93
|
trigger: "click",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-combogrid/index.jsx"],"names":["VtxCombogrid","props","ref","selectedRowKeys","setSelectedRowKeys","visible","setVisible","className","style","placeholder","prefixCls","value","allowClear","defaultSelectedRowKeys","rest","join","e","target","onChange","React","forwardRef","propTypes","PropTypes","string","bool","object","array"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAASA,YAAT,CAAsBC,KAAtB,EAA6BC,GAA7B,EAAkC;AAAA,kBACgB,qBAAS,YAAM;AACzD,WAAO,EAAP;AACH,GAF6C,CADhB;AAAA;AAAA,MACvBC,eADuB;AAAA,MACNC,kBADM;;AAAA,mBAIA,qBAAS,KAAT,CAJA;AAAA;AAAA,MAIvBC,OAJuB;AAAA,MAIdC,UAJc;;
|
|
1
|
+
{"version":3,"sources":["vtx-combogrid/index.jsx"],"names":["VtxCombogrid","props","ref","selectedRowKeys","setSelectedRowKeys","visible","setVisible","comboRef","className","style","placeholder","prefixCls","value","allowClear","defaultSelectedRowKeys","rest","join","reset","current","clear","e","target","onChange","React","forwardRef","propTypes","PropTypes","string","bool","object","array"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef, useImperativeHandle } from 'react';\n\nimport Input from 'antd/es/input';\nimport Popover from 'antd/es/popover';\nimport PropTypes from 'prop-types';\nimport Combogrid from './Combogrid';\n\nfunction VtxCombogrid(props, ref) {\n const [selectedRowKeys, setSelectedRowKeys] = useState(() => {\n return [];\n });\n const [visible, setVisible] = useState(false);\n const comboRef = useRef();\n const {\n className,\n style,\n placeholder,\n prefixCls = 'vtx-combogrid',\n value,\n allowClear = true,\n selectedRowKeys: defaultSelectedRowKeys = [],\n ...rest\n } = props;\n\n useEffect(() => {\n setSelectedRowKeys(defaultSelectedRowKeys);\n }, [defaultSelectedRowKeys.join(',')]);\n\n // 暴露给父组件使用\n useImperativeHandle(ref, () => ({\n // 重置\n reset() {\n comboRef.current && comboRef.current.clear();\n },\n }));\n\n return (\n <Popover\n content={\n <Combogrid\n {...rest}\n selectedRowKeys={selectedRowKeys}\n defaultSelectedRowKeys={defaultSelectedRowKeys}\n setSelectedRowKeys={setSelectedRowKeys}\n setPopoverVisible={setVisible}\n prefixCls={prefixCls}\n wrappedComponentRef={comboRef}\n />\n }\n placement=\"bottomLeft\"\n trigger=\"click\"\n visible={visible}\n onVisibleChange={visible => setVisible(visible)}\n overlayClassName={`${prefixCls}-dropdown`}\n >\n <Input\n ref={ref}\n value={value}\n allowClear={allowClear}\n onClick={() => setVisible(true)}\n onChange={e => {\n // 只对清空产生值的变化做处理\n if (!e.target.value) {\n rest.onChange && rest.onChange();\n setSelectedRowKeys([]);\n }\n }}\n className={className}\n style={style}\n placeholder={placeholder}\n />\n </Popover>\n );\n}\n\nexport default React.forwardRef(VtxCombogrid);\n\nVtxCombogrid.propTypes = {\n prefixCls: PropTypes.string,\n placeholder: PropTypes.string,\n value: PropTypes.string,\n allowClear: PropTypes.bool,\n className: PropTypes.string,\n style: PropTypes.object,\n selectedRowKeys: PropTypes.array,\n};\n"],"file":"index.js"}
|
|
@@ -19,6 +19,8 @@ var _icon = _interopRequireDefault(require("antd/es/icon"));
|
|
|
19
19
|
|
|
20
20
|
var _tooltip = _interopRequireDefault(require("antd/es/tooltip"));
|
|
21
21
|
|
|
22
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
23
|
+
|
|
22
24
|
var _context = require("./context");
|
|
23
25
|
|
|
24
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -45,7 +47,8 @@ function FormItem(props) {
|
|
|
45
47
|
|
|
46
48
|
var _useContext = (0, _react.useContext)(_context.StoreCtx),
|
|
47
49
|
labelColSpan = _useContext.labelColSpan,
|
|
48
|
-
cols = _useContext.cols
|
|
50
|
+
cols = _useContext.cols,
|
|
51
|
+
mode = _useContext.mode;
|
|
49
52
|
|
|
50
53
|
var labelRender = label;
|
|
51
54
|
|
|
@@ -62,7 +65,9 @@ function FormItem(props) {
|
|
|
62
65
|
return /*#__PURE__*/_react["default"].createElement(_col["default"], {
|
|
63
66
|
span: SPAN * weights / cols
|
|
64
67
|
}, /*#__PURE__*/_react["default"].createElement(_form["default"].Item, _extends({
|
|
65
|
-
className: "vtx-form-item
|
|
68
|
+
className: (0, _classnames["default"])('vtx-form-item', {
|
|
69
|
+
'vtx-form-item--view': mode === 'view'
|
|
70
|
+
}),
|
|
66
71
|
labelCol: {
|
|
67
72
|
span: conversionLabelColSpan
|
|
68
73
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-form-layout/FormItem.jsx"],"names":["SPAN","FormItem","props","weights","tip","label","rest","StoreCtx","labelColSpan","cols","labelRender","conversionLabelColSpan","wrapperColSpan","span","children","propTypes","PropTypes","number","node","oneOfType","string"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEA;AACA,IAAMA,IAAI,GAAG,EAAb;;AAEe,SAASC,QAAT,CAAkBC,KAAlB,EAAyB;AAAA,uBACSA,KADT,CAC5BC,OAD4B;AAAA,MAC5BA,OAD4B,+BAClB,CADkB;AAAA,MACfC,GADe,GACSF,KADT,CACfE,GADe;AAAA,MACVC,KADU,GACSH,KADT,CACVG,KADU;AAAA,MACAC,IADA,4BACSJ,KADT;;AAAA,
|
|
1
|
+
{"version":3,"sources":["vtx-form-layout/FormItem.jsx"],"names":["SPAN","FormItem","props","weights","tip","label","rest","StoreCtx","labelColSpan","cols","mode","labelRender","conversionLabelColSpan","wrapperColSpan","span","children","propTypes","PropTypes","number","node","oneOfType","string"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEA;AACA,IAAMA,IAAI,GAAG,EAAb;;AAEe,SAASC,QAAT,CAAkBC,KAAlB,EAAyB;AAAA,uBACSA,KADT,CAC5BC,OAD4B;AAAA,MAC5BA,OAD4B,+BAClB,CADkB;AAAA,MACfC,GADe,GACSF,KADT,CACfE,GADe;AAAA,MACVC,KADU,GACSH,KADT,CACVG,KADU;AAAA,MACAC,IADA,4BACSJ,KADT;;AAAA,oBAEC,uBAAWK,iBAAX,CAFD;AAAA,MAE5BC,YAF4B,eAE5BA,YAF4B;AAAA,MAEdC,IAFc,eAEdA,IAFc;AAAA,MAERC,IAFQ,eAERA,IAFQ;;AAIpC,MAAIC,WAAW,GAAGN,KAAlB;;AACA,MAAID,GAAJ,EAAS;AACLO,IAAAA,WAAW,gBACP,8CACKN,KADL,uBAEI,gCAAC,mBAAD;AAAS,MAAA,KAAK,EAAED;AAAhB,oBACI,gCAAC,gBAAD;AAAM,MAAA,IAAI,EAAC;AAAX,MADJ,CAFJ,CADJ;AAQH;;AAED,MAAMQ,sBAAsB,GAAGJ,YAAY,GAAGL,OAA9C;AACA,MAAMU,cAAc,GAAGb,IAAI,GAAGY,sBAA9B;AACA,sBACI,gCAAC,eAAD;AAAK,IAAA,IAAI,EAAGZ,IAAI,GAAGG,OAAR,GAAmBM;AAA9B,kBACI,gCAAC,gBAAD,CAAM,IAAN;AACI,IAAA,SAAS,EAAE,4BAAW,eAAX,EAA4B;AAAE,6BAAuBC,IAAI,KAAK;AAAlC,KAA5B,CADf;AAEI,IAAA,QAAQ,EAAE;AAAEI,MAAAA,IAAI,EAAEF;AAAR,KAFd;AAGI,IAAA,UAAU,EAAE;AAAEE,MAAAA,IAAI,EAAED;AAAR,KAHhB;AAII,IAAA,KAAK,EAAEF;AAJX,KAKQL,IALR,GAOKJ,KAAK,CAACa,QAPX,CADJ,CADJ;AAaH;;AAEDd,QAAQ,CAACe,SAAT,GAAqB;AACjBb,EAAAA,OAAO,EAAEc,sBAAUC,MADF;AAEjBH,EAAAA,QAAQ,EAAEE,sBAAUE,IAFH;AAGjBf,EAAAA,GAAG,EAAEa,sBAAUG,SAAV,CAAoB,CAACH,sBAAUI,MAAX,EAAmBJ,sBAAUE,IAA7B,CAApB,CAHY;AAIjBd,EAAAA,KAAK,EAAEY,sBAAUG,SAAV,CAAoB,CAACH,sBAAUI,MAAX,EAAmBJ,sBAAUE,IAA7B,CAApB;AAJU,CAArB","sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Form from 'antd/es/form';\nimport Col from 'antd/es/col';\nimport Icon from 'antd/es/icon';\nimport Tooltip from 'antd/es/tooltip';\nimport classnames from 'classnames';\nimport { StoreCtx } from './context';\n\n// 24 栅格\nconst SPAN = 24;\n\nexport default function FormItem(props) {\n const { weights = 1, tip, label, ...rest } = props;\n const { labelColSpan, cols, mode } = useContext(StoreCtx);\n\n let labelRender = label;\n if (tip) {\n labelRender = (\n <span>\n {label} \n <Tooltip title={tip}>\n <Icon type=\"question-circle-o\" />\n </Tooltip>\n </span>\n );\n }\n\n const conversionLabelColSpan = labelColSpan / weights;\n const wrapperColSpan = SPAN - conversionLabelColSpan;\n return (\n <Col span={(SPAN * weights) / cols}>\n <Form.Item\n className={classnames('vtx-form-item', { 'vtx-form-item--view': mode === 'view' })}\n labelCol={{ span: conversionLabelColSpan }}\n wrapperCol={{ span: wrapperColSpan }}\n label={labelRender}\n {...rest}\n >\n {props.children}\n </Form.Item>\n </Col>\n );\n}\n\nFormItem.propTypes = {\n weights: PropTypes.number,\n children: PropTypes.node,\n tip: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n};\n"],"file":"FormItem.js"}
|
|
@@ -21,10 +21,12 @@ function VtxFormLayout(props) {
|
|
|
21
21
|
var _props$cols = props.cols,
|
|
22
22
|
cols = _props$cols === void 0 ? 2 : _props$cols,
|
|
23
23
|
_props$labelColSpan = props.labelColSpan,
|
|
24
|
-
labelColSpan = _props$labelColSpan === void 0 ? 8 : _props$labelColSpan
|
|
24
|
+
labelColSpan = _props$labelColSpan === void 0 ? 8 : _props$labelColSpan,
|
|
25
|
+
mode = props.mode;
|
|
25
26
|
var store = {
|
|
26
27
|
cols: cols,
|
|
27
|
-
labelColSpan: labelColSpan
|
|
28
|
+
labelColSpan: labelColSpan,
|
|
29
|
+
mode: mode
|
|
28
30
|
};
|
|
29
31
|
return /*#__PURE__*/_react["default"].createElement(_context.StoreCtx.Provider, {
|
|
30
32
|
value: store
|
|
@@ -34,6 +36,7 @@ function VtxFormLayout(props) {
|
|
|
34
36
|
VtxFormLayout.propTypes = {
|
|
35
37
|
cols: _propTypes["default"].number,
|
|
36
38
|
labelColSpan: _propTypes["default"].number,
|
|
39
|
+
mode: _propTypes["default"].oneOf(['view']),
|
|
37
40
|
children: _propTypes["default"].node
|
|
38
41
|
};
|
|
39
42
|
VtxFormLayout.Row = _row["default"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-form-layout/index.jsx"],"names":["VtxFormLayout","props","cols","labelColSpan","store","children","propTypes","PropTypes","number","node","Row","FormItem"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,SAASA,aAAT,CAAuBC,KAAvB,EAA8B;AAAA,
|
|
1
|
+
{"version":3,"sources":["vtx-form-layout/index.jsx"],"names":["VtxFormLayout","props","cols","labelColSpan","mode","store","children","propTypes","PropTypes","number","oneOf","node","Row","FormItem"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,SAASA,aAAT,CAAuBC,KAAvB,EAA8B;AAAA,oBACmBA,KADnB,CAClBC,IADkB;AAAA,MAClBA,IADkB,4BACX,CADW;AAAA,4BACmBD,KADnB,CACRE,YADQ;AAAA,MACRA,YADQ,oCACO,CADP;AAAA,MACUC,IADV,GACmBH,KADnB,CACUG,IADV;AAE1B,MAAMC,KAAK,GAAG;AACVH,IAAAA,IAAI,EAAJA,IADU;AAEVC,IAAAA,YAAY,EAAZA,YAFU;AAGVC,IAAAA,IAAI,EAAJA;AAHU,GAAd;AAKA,sBAAO,gCAAC,iBAAD,CAAU,QAAV;AAAmB,IAAA,KAAK,EAAEC;AAA1B,KAAkCJ,KAAK,CAACK,QAAxC,CAAP;AACH;;AAEDN,aAAa,CAACO,SAAd,GAA0B;AACtBL,EAAAA,IAAI,EAAEM,sBAAUC,MADM;AAEtBN,EAAAA,YAAY,EAAEK,sBAAUC,MAFF;AAGtBL,EAAAA,IAAI,EAAEI,sBAAUE,KAAV,CAAgB,CAAC,MAAD,CAAhB,CAHgB;AAItBJ,EAAAA,QAAQ,EAAEE,sBAAUG;AAJE,CAA1B;AAOAX,aAAa,CAACY,GAAd,GAAoBA,eAApB;AACAZ,aAAa,CAACa,QAAd,GAAyBA,oBAAzB;eAEeb,a","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Row from 'antd/es/row';\nimport { StoreCtx } from './context';\nimport FormItem from './FormItem';\n\nfunction VtxFormLayout(props) {\n const { cols = 2, labelColSpan = 8, mode } = props;\n const store = {\n cols,\n labelColSpan,\n mode,\n };\n return <StoreCtx.Provider value={store}>{props.children}</StoreCtx.Provider>;\n}\n\nVtxFormLayout.propTypes = {\n cols: PropTypes.number,\n labelColSpan: PropTypes.number,\n mode: PropTypes.oneOf(['view']),\n children: PropTypes.node,\n};\n\nVtxFormLayout.Row = Row;\nVtxFormLayout.FormItem = FormItem;\n\nexport default VtxFormLayout;\n"],"file":"index.js"}
|
package/lib/vtx-image/Image.js
CHANGED
|
@@ -81,6 +81,7 @@ function VtxImage(props) {
|
|
|
81
81
|
className = props.className,
|
|
82
82
|
style = props.style,
|
|
83
83
|
src = props.src,
|
|
84
|
+
thumb = props.thumb,
|
|
84
85
|
alt = props.alt,
|
|
85
86
|
_props$emptyImageSrc = props.emptyImageSrc,
|
|
86
87
|
emptyImageSrc = _props$emptyImageSrc === void 0 ? defaultEmptyImageSrc : _props$emptyImageSrc,
|
|
@@ -114,7 +115,7 @@ function VtxImage(props) {
|
|
|
114
115
|
}, [src]); // 图片props属性
|
|
115
116
|
|
|
116
117
|
var imgProps = {
|
|
117
|
-
src: src,
|
|
118
|
+
src: thumb || src,
|
|
118
119
|
className: className,
|
|
119
120
|
style: style,
|
|
120
121
|
alt: alt,
|
|
@@ -187,7 +188,7 @@ function VtxImage(props) {
|
|
|
187
188
|
}
|
|
188
189
|
}
|
|
189
190
|
|
|
190
|
-
var imgRender = /*#__PURE__*/_react["default"].createElement("img", imgProps); //
|
|
191
|
+
var imgRender = /*#__PURE__*/_react["default"].createElement("img", imgProps); // 缩放
|
|
191
192
|
|
|
192
193
|
|
|
193
194
|
if (src && !isError && aspectFit) {
|
|
@@ -213,6 +214,7 @@ VtxImage.propTypes = {
|
|
|
213
214
|
style: _propTypes["default"].object,
|
|
214
215
|
preview: _propTypes["default"].bool,
|
|
215
216
|
src: _propTypes["default"].string,
|
|
217
|
+
thumb: _propTypes["default"].string,
|
|
216
218
|
alt: _propTypes["default"].string,
|
|
217
219
|
emptyImageSrc: _propTypes["default"].string,
|
|
218
220
|
errorImageSrc: _propTypes["default"].string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-image/Image.jsx"],"names":["defaultEmptyImageSrc","defaultErrorImageSrc","defaultEmptyText","defaultErrorText","uuid","VtxImage","props","React","useState","currentId","isError","isEmptyImageError","isErrorImageError","viewerVisible","visible","photo","undefined","state","setState","prefixCls","preview","className","style","src","alt","emptyImageSrc","errorImageSrc","emptyText","errorText","onClick","aspectFit","context","isPreviewGroup","setCurrent","setGroupShowPreview","setShowPreview","registerImage","id","imgProps","onError","imgRender","propTypes","PropTypes","string","object","bool","func","setImageConfig","options","PreviewGroup","VtxImagePreview","Preview"],"mappings":"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","sourcesContent":["import React, { useEffect, useContext } from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Preview from './Preview';\nimport PreviewGroup, { context } from './PreviewGroup';\nimport useSet from '../_util/useSet';\n\nlet defaultEmptyImageSrc = '';\nlet defaultErrorImageSrc = '';\nlet defaultEmptyText = '暂无图片';\nlet defaultErrorText = '图片出错';\n\nlet uuid = 0;\n\nfunction VtxImage(props) {\n const [currentId] = React.useState(() => {\n uuid += 1;\n return uuid;\n });\n\n const [state, setState] = useSet({\n isError: false, // 图片是否加载失败\n isEmptyImageError: false, // 空白图片是否加载失败\n isErrorImageError: false, // 报错图片是否加载失败\n viewerVisible: false, // 是否查看\n visible: false,\n photo: undefined,\n });\n const { isError, isEmptyImageError, isErrorImageError, visible, photo } = state;\n\n const {\n prefixCls = 'vtx-image',\n preview = true,\n className,\n style,\n src,\n alt,\n emptyImageSrc = defaultEmptyImageSrc,\n errorImageSrc = defaultErrorImageSrc,\n emptyText = defaultEmptyText,\n errorText = defaultErrorText,\n onClick,\n aspectFit,\n } = props;\n\n const {\n isPreviewGroup,\n setCurrent,\n setShowPreview: setGroupShowPreview,\n registerImage,\n } = useContext(context);\n\n useEffect(() => {\n setState({\n isError: false,\n });\n if (isPreviewGroup && preview) {\n registerImage({ id: currentId, src, alt });\n }\n }, [src]);\n\n // 图片props属性\n let imgProps = {\n src,\n className,\n style,\n alt,\n onClick: () => {\n if (!src || isError) {\n return null;\n }\n onClick && onClick();\n if (preview) {\n if (isPreviewGroup) {\n setCurrent(currentId);\n setGroupShowPreview(true);\n } else {\n setState({\n visible: true,\n photo: {\n src,\n alt,\n },\n });\n }\n }\n },\n onError: () => {\n setState({\n isError: true,\n });\n },\n };\n\n // 无图片\n if (!src) {\n //有替代图片\n if (emptyImageSrc && !isEmptyImageError) {\n imgProps.src = emptyImageSrc;\n imgProps.onError = () => {\n setState({ isEmptyImageError: true });\n };\n } else {\n // 没有替代图片或替代图片无法加载\n return (\n <div className={`${prefixCls}-nodata`} style={style}>\n <p>{emptyText}</p>\n </div>\n );\n }\n }\n\n // 图片出错\n if (isError) {\n if (errorImageSrc && !isErrorImageError) {\n imgProps['data-error-img'] = src;\n imgProps.src = errorImageSrc;\n imgProps.onError = () => {\n setState({ isErrorImageError: true });\n };\n } else {\n // 无法加载报错图片\n return (\n <div className={`${prefixCls}-error`} data-error-img={src} style={style}>\n <p>{errorText}</p>\n </div>\n );\n }\n }\n\n let imgRender = <img {...imgProps} />;\n // 缩略图\n if (src && !isError && aspectFit) {\n imgRender = (\n <div\n className={classnames(`${prefixCls}-aspectFit`, {\n [`${prefixCls}-preview`]: preview,\n })}\n >\n <img {...imgProps} />\n </div>\n );\n }\n return (\n <>\n {imgRender}\n {!isPreviewGroup && preview && (\n <Preview\n visible={visible}\n photo={photo}\n onClose={() => setState({ visible: false })}\n />\n )}\n </>\n );\n}\n\nVtxImage.propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n preview: PropTypes.bool,\n src: PropTypes.string,\n alt: PropTypes.string,\n emptyImageSrc: PropTypes.string,\n errorImageSrc: PropTypes.string,\n emptyText: PropTypes.string,\n errorText: PropTypes.string,\n onClick: PropTypes.func,\n aspectFit: PropTypes.bool,\n};\n\nVtxImage.setImageConfig = setImageConfig;\n\nfunction setImageConfig(options) {\n const { emptyImageSrc, errorImageSrc, emptyText, errorText } = options;\n\n if (emptyImageSrc !== undefined) {\n defaultEmptyImageSrc = emptyImageSrc;\n }\n if (errorImageSrc !== undefined) {\n defaultErrorImageSrc = errorImageSrc;\n }\n if (emptyText !== undefined) {\n defaultEmptyText = emptyText;\n }\n if (errorText !== undefined) {\n defaultErrorText = errorText;\n }\n}\n\nVtxImage.PreviewGroup = PreviewGroup;\nVtxImage.VtxImagePreview = Preview;\n\nexport default VtxImage;\n"],"file":"Image.js"}
|
|
1
|
+
{"version":3,"sources":["vtx-image/Image.jsx"],"names":["defaultEmptyImageSrc","defaultErrorImageSrc","defaultEmptyText","defaultErrorText","uuid","VtxImage","props","React","useState","currentId","isError","isEmptyImageError","isErrorImageError","viewerVisible","visible","photo","undefined","state","setState","prefixCls","preview","className","style","src","thumb","alt","emptyImageSrc","errorImageSrc","emptyText","errorText","onClick","aspectFit","context","isPreviewGroup","setCurrent","setGroupShowPreview","setShowPreview","registerImage","id","imgProps","onError","imgRender","propTypes","PropTypes","string","object","bool","func","setImageConfig","options","PreviewGroup","VtxImagePreview","Preview"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAIA,oBAAoB,GAAG,EAA3B;AACA,IAAIC,oBAAoB,GAAG,EAA3B;AACA,IAAIC,gBAAgB,GAAG,MAAvB;AACA,IAAIC,gBAAgB,GAAG,MAAvB;AAEA,IAAIC,IAAI,GAAG,CAAX;;AAEA,SAASC,QAAT,CAAkBC,KAAlB,EAAyB;AAAA,wBACDC,kBAAMC,QAAN,CAAe,YAAM;AACrCJ,IAAAA,IAAI,IAAI,CAAR;AACA,WAAOA,IAAP;AACH,GAHmB,CADC;AAAA;AAAA,MACdK,SADc;;AAAA,gBAMK,yBAAO;AAC7BC,IAAAA,OAAO,EAAE,KADoB;AACb;AAChBC,IAAAA,iBAAiB,EAAE,KAFU;AAEH;AAC1BC,IAAAA,iBAAiB,EAAE,KAHU;AAGH;AAC1BC,IAAAA,aAAa,EAAE,KAJc;AAIP;AACtBC,IAAAA,OAAO,EAAE,KALoB;AAM7BC,IAAAA,KAAK,EAAEC;AANsB,GAAP,CANL;AAAA;AAAA,MAMdC,KANc;AAAA,MAMPC,QANO;;AAAA,MAcbR,OAda,GAcqDO,KAdrD,CAcbP,OAda;AAAA,MAcJC,iBAdI,GAcqDM,KAdrD,CAcJN,iBAdI;AAAA,MAceC,iBAdf,GAcqDK,KAdrD,CAceL,iBAdf;AAAA,MAckCE,OAdlC,GAcqDG,KAdrD,CAckCH,OAdlC;AAAA,MAc2CC,KAd3C,GAcqDE,KAdrD,CAc2CF,KAd3C;AAAA,yBA8BjBT,KA9BiB,CAiBjBa,SAjBiB;AAAA,MAiBjBA,SAjBiB,iCAiBL,WAjBK;AAAA,uBA8BjBb,KA9BiB,CAkBjBc,OAlBiB;AAAA,MAkBjBA,OAlBiB,+BAkBP,IAlBO;AAAA,MAmBjBC,SAnBiB,GA8BjBf,KA9BiB,CAmBjBe,SAnBiB;AAAA,MAoBjBC,KApBiB,GA8BjBhB,KA9BiB,CAoBjBgB,KApBiB;AAAA,MAqBjBC,GArBiB,GA8BjBjB,KA9BiB,CAqBjBiB,GArBiB;AAAA,MAsBjBC,KAtBiB,GA8BjBlB,KA9BiB,CAsBjBkB,KAtBiB;AAAA,MAuBjBC,GAvBiB,GA8BjBnB,KA9BiB,CAuBjBmB,GAvBiB;AAAA,6BA8BjBnB,KA9BiB,CAwBjBoB,aAxBiB;AAAA,MAwBjBA,aAxBiB,qCAwBD1B,oBAxBC;AAAA,6BA8BjBM,KA9BiB,CAyBjBqB,aAzBiB;AAAA,MAyBjBA,aAzBiB,qCAyBD1B,oBAzBC;AAAA,yBA8BjBK,KA9BiB,CA0BjBsB,SA1BiB;AAAA,MA0BjBA,SA1BiB,iCA0BL1B,gBA1BK;AAAA,yBA8BjBI,KA9BiB,CA2BjBuB,SA3BiB;AAAA,MA2BjBA,SA3BiB,iCA2BL1B,gBA3BK;AAAA,MA4BjB2B,QA5BiB,GA8BjBxB,KA9BiB,CA4BjBwB,OA5BiB;AAAA,MA6BjBC,SA7BiB,GA8BjBzB,KA9BiB,CA6BjByB,SA7BiB;;AAAA,oBAqCjB,uBAAWC,qBAAX,CArCiB;AAAA,MAiCjBC,cAjCiB,eAiCjBA,cAjCiB;AAAA,MAkCjBC,UAlCiB,eAkCjBA,UAlCiB;AAAA,MAmCDC,mBAnCC,eAmCjBC,cAnCiB;AAAA,MAoCjBC,aApCiB,eAoCjBA,aApCiB;;AAuCrB,wBAAU,YAAM;AACZnB,IAAAA,QAAQ,CAAC;AACLR,MAAAA,OAAO,EAAE;AADJ,KAAD,CAAR;;AAGA,QAAIuB,cAAc,IAAIb,OAAtB,EAA+B;AAC3BiB,MAAAA,aAAa,CAAC;AAAEC,QAAAA,EAAE,EAAE7B,SAAN;AAAiBc,QAAAA,GAAG,EAAHA,GAAjB;AAAsBE,QAAAA,GAAG,EAAHA;AAAtB,OAAD,CAAb;AACH;AACJ,GAPD,EAOG,CAACF,GAAD,CAPH,EAvCqB,CAgDrB;;AACA,MAAIgB,QAAQ,GAAG;AACXhB,IAAAA,GAAG,EAAEC,KAAK,IAAID,GADH;AAEXF,IAAAA,SAAS,EAATA,SAFW;AAGXC,IAAAA,KAAK,EAALA,KAHW;AAIXG,IAAAA,GAAG,EAAHA,GAJW;AAKXK,IAAAA,OAAO,EAAE,mBAAM;AACX,UAAI,CAACP,GAAD,IAAQb,OAAZ,EAAqB;AACjB,eAAO,IAAP;AACH;;AACDoB,MAAAA,QAAO,IAAIA,QAAO,EAAlB;;AACA,UAAIV,OAAJ,EAAa;AACT,YAAIa,cAAJ,EAAoB;AAChBC,UAAAA,UAAU,CAACzB,SAAD,CAAV;AACA0B,UAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACH,SAHD,MAGO;AACHjB,UAAAA,QAAQ,CAAC;AACLJ,YAAAA,OAAO,EAAE,IADJ;AAELC,YAAAA,KAAK,EAAE;AACHQ,cAAAA,GAAG,EAAHA,GADG;AAEHE,cAAAA,GAAG,EAAHA;AAFG;AAFF,WAAD,CAAR;AAOH;AACJ;AACJ,KAxBU;AAyBXe,IAAAA,OAAO,EAAE,mBAAM;AACXtB,MAAAA,QAAQ,CAAC;AACLR,QAAAA,OAAO,EAAE;AADJ,OAAD,CAAR;AAGH;AA7BU,GAAf,CAjDqB,CAiFrB;;AACA,MAAI,CAACa,GAAL,EAAU;AACN;AACA,QAAIG,aAAa,IAAI,CAACf,iBAAtB,EAAyC;AACrC4B,MAAAA,QAAQ,CAAChB,GAAT,GAAeG,aAAf;;AACAa,MAAAA,QAAQ,CAACC,OAAT,GAAmB,YAAM;AACrBtB,QAAAA,QAAQ,CAAC;AAAEP,UAAAA,iBAAiB,EAAE;AAArB,SAAD,CAAR;AACH,OAFD;AAGH,KALD,MAKO;AACH;AACA,0BACI;AAAK,QAAA,SAAS,YAAKQ,SAAL,YAAd;AAAuC,QAAA,KAAK,EAAEG;AAA9C,sBACI,2CAAIM,SAAJ,CADJ,CADJ;AAKH;AACJ,GAjGoB,CAmGrB;;;AACA,MAAIlB,OAAJ,EAAa;AACT,QAAIiB,aAAa,IAAI,CAACf,iBAAtB,EAAyC;AACrC2B,MAAAA,QAAQ,CAAC,gBAAD,CAAR,GAA6BhB,GAA7B;AACAgB,MAAAA,QAAQ,CAAChB,GAAT,GAAeI,aAAf;;AACAY,MAAAA,QAAQ,CAACC,OAAT,GAAmB,YAAM;AACrBtB,QAAAA,QAAQ,CAAC;AAAEN,UAAAA,iBAAiB,EAAE;AAArB,SAAD,CAAR;AACH,OAFD;AAGH,KAND,MAMO;AACH;AACA,0BACI;AAAK,QAAA,SAAS,YAAKO,SAAL,WAAd;AAAsC,0BAAgBI,GAAtD;AAA2D,QAAA,KAAK,EAAED;AAAlE,sBACI,2CAAIO,SAAJ,CADJ,CADJ;AAKH;AACJ;;AAED,MAAIY,SAAS,gBAAG,uCAASF,QAAT,CAAhB,CArHqB,CAsHrB;;;AACA,MAAIhB,GAAG,IAAI,CAACb,OAAR,IAAmBqB,SAAvB,EAAkC;AAC9BU,IAAAA,SAAS,gBACL;AACI,MAAA,SAAS,EAAE,uCAActB,SAAd,+CACHA,SADG,eACmBC,OADnB;AADf,oBAKI,uCAASmB,QAAT,CALJ,CADJ;AASH;;AACD,sBACI,kEACKE,SADL,EAEK,CAACR,cAAD,IAAmBb,OAAnB,iBACG,gCAAC,mBAAD;AACI,IAAA,OAAO,EAAEN,OADb;AAEI,IAAA,KAAK,EAAEC,KAFX;AAGI,IAAA,OAAO,EAAE;AAAA,aAAMG,QAAQ,CAAC;AAAEJ,QAAAA,OAAO,EAAE;AAAX,OAAD,CAAd;AAAA;AAHb,IAHR,CADJ;AAYH;;AAEDT,QAAQ,CAACqC,SAAT,GAAqB;AACjBvB,EAAAA,SAAS,EAAEwB,sBAAUC,MADJ;AAEjBvB,EAAAA,SAAS,EAAEsB,sBAAUC,MAFJ;AAGjBtB,EAAAA,KAAK,EAAEqB,sBAAUE,MAHA;AAIjBzB,EAAAA,OAAO,EAAEuB,sBAAUG,IAJF;AAKjBvB,EAAAA,GAAG,EAAEoB,sBAAUC,MALE;AAMjBpB,EAAAA,KAAK,EAAEmB,sBAAUC,MANA;AAOjBnB,EAAAA,GAAG,EAAEkB,sBAAUC,MAPE;AAQjBlB,EAAAA,aAAa,EAAEiB,sBAAUC,MARR;AASjBjB,EAAAA,aAAa,EAAEgB,sBAAUC,MATR;AAUjBhB,EAAAA,SAAS,EAAEe,sBAAUC,MAVJ;AAWjBf,EAAAA,SAAS,EAAEc,sBAAUC,MAXJ;AAYjBd,EAAAA,OAAO,EAAEa,sBAAUI,IAZF;AAajBhB,EAAAA,SAAS,EAAEY,sBAAUG;AAbJ,CAArB;AAgBAzC,QAAQ,CAAC2C,cAAT,GAA0BA,cAA1B;;AAEA,SAASA,cAAT,CAAwBC,OAAxB,EAAiC;AAAA,MACrBvB,aADqB,GACkCuB,OADlC,CACrBvB,aADqB;AAAA,MACNC,aADM,GACkCsB,OADlC,CACNtB,aADM;AAAA,MACSC,SADT,GACkCqB,OADlC,CACSrB,SADT;AAAA,MACoBC,SADpB,GACkCoB,OADlC,CACoBpB,SADpB;;AAG7B,MAAIH,aAAa,KAAKV,SAAtB,EAAiC;AAC7BhB,IAAAA,oBAAoB,GAAG0B,aAAvB;AACH;;AACD,MAAIC,aAAa,KAAKX,SAAtB,EAAiC;AAC7Bf,IAAAA,oBAAoB,GAAG0B,aAAvB;AACH;;AACD,MAAIC,SAAS,KAAKZ,SAAlB,EAA6B;AACzBd,IAAAA,gBAAgB,GAAG0B,SAAnB;AACH;;AACD,MAAIC,SAAS,KAAKb,SAAlB,EAA6B;AACzBb,IAAAA,gBAAgB,GAAG0B,SAAnB;AACH;AACJ;;AAEDxB,QAAQ,CAAC6C,YAAT,GAAwBA,wBAAxB;AACA7C,QAAQ,CAAC8C,eAAT,GAA2BC,mBAA3B;eAEe/C,Q","sourcesContent":["import React, { useEffect, useContext } from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Preview from './Preview';\nimport PreviewGroup, { context } from './PreviewGroup';\nimport useSet from '../_util/useSet';\n\nlet defaultEmptyImageSrc = '';\nlet defaultErrorImageSrc = '';\nlet defaultEmptyText = '暂无图片';\nlet defaultErrorText = '图片出错';\n\nlet uuid = 0;\n\nfunction VtxImage(props) {\n const [currentId] = React.useState(() => {\n uuid += 1;\n return uuid;\n });\n\n const [state, setState] = useSet({\n isError: false, // 图片是否加载失败\n isEmptyImageError: false, // 空白图片是否加载失败\n isErrorImageError: false, // 报错图片是否加载失败\n viewerVisible: false, // 是否查看\n visible: false,\n photo: undefined,\n });\n const { isError, isEmptyImageError, isErrorImageError, visible, photo } = state;\n\n const {\n prefixCls = 'vtx-image',\n preview = true,\n className,\n style,\n src,\n thumb,\n alt,\n emptyImageSrc = defaultEmptyImageSrc,\n errorImageSrc = defaultErrorImageSrc,\n emptyText = defaultEmptyText,\n errorText = defaultErrorText,\n onClick,\n aspectFit,\n } = props;\n\n const {\n isPreviewGroup,\n setCurrent,\n setShowPreview: setGroupShowPreview,\n registerImage,\n } = useContext(context);\n\n useEffect(() => {\n setState({\n isError: false,\n });\n if (isPreviewGroup && preview) {\n registerImage({ id: currentId, src, alt });\n }\n }, [src]);\n\n // 图片props属性\n let imgProps = {\n src: thumb || src,\n className,\n style,\n alt,\n onClick: () => {\n if (!src || isError) {\n return null;\n }\n onClick && onClick();\n if (preview) {\n if (isPreviewGroup) {\n setCurrent(currentId);\n setGroupShowPreview(true);\n } else {\n setState({\n visible: true,\n photo: {\n src,\n alt,\n },\n });\n }\n }\n },\n onError: () => {\n setState({\n isError: true,\n });\n },\n };\n\n // 无图片\n if (!src) {\n //有替代图片\n if (emptyImageSrc && !isEmptyImageError) {\n imgProps.src = emptyImageSrc;\n imgProps.onError = () => {\n setState({ isEmptyImageError: true });\n };\n } else {\n // 没有替代图片或替代图片无法加载\n return (\n <div className={`${prefixCls}-nodata`} style={style}>\n <p>{emptyText}</p>\n </div>\n );\n }\n }\n\n // 图片出错\n if (isError) {\n if (errorImageSrc && !isErrorImageError) {\n imgProps['data-error-img'] = src;\n imgProps.src = errorImageSrc;\n imgProps.onError = () => {\n setState({ isErrorImageError: true });\n };\n } else {\n // 无法加载报错图片\n return (\n <div className={`${prefixCls}-error`} data-error-img={src} style={style}>\n <p>{errorText}</p>\n </div>\n );\n }\n }\n\n let imgRender = <img {...imgProps} />;\n // 缩放\n if (src && !isError && aspectFit) {\n imgRender = (\n <div\n className={classnames(`${prefixCls}-aspectFit`, {\n [`${prefixCls}-preview`]: preview,\n })}\n >\n <img {...imgProps} />\n </div>\n );\n }\n return (\n <>\n {imgRender}\n {!isPreviewGroup && preview && (\n <Preview\n visible={visible}\n photo={photo}\n onClose={() => setState({ visible: false })}\n />\n )}\n </>\n );\n}\n\nVtxImage.propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n preview: PropTypes.bool,\n src: PropTypes.string,\n thumb: PropTypes.string,\n alt: PropTypes.string,\n emptyImageSrc: PropTypes.string,\n errorImageSrc: PropTypes.string,\n emptyText: PropTypes.string,\n errorText: PropTypes.string,\n onClick: PropTypes.func,\n aspectFit: PropTypes.bool,\n};\n\nVtxImage.setImageConfig = setImageConfig;\n\nfunction setImageConfig(options) {\n const { emptyImageSrc, errorImageSrc, emptyText, errorText } = options;\n\n if (emptyImageSrc !== undefined) {\n defaultEmptyImageSrc = emptyImageSrc;\n }\n if (errorImageSrc !== undefined) {\n defaultErrorImageSrc = errorImageSrc;\n }\n if (emptyText !== undefined) {\n defaultEmptyText = emptyText;\n }\n if (errorText !== undefined) {\n defaultErrorText = errorText;\n }\n}\n\nVtxImage.PreviewGroup = PreviewGroup;\nVtxImage.VtxImagePreview = Preview;\n\nexport default VtxImage;\n"],"file":"Image.js"}
|
|
@@ -31,7 +31,7 @@ var useLength = function useLength() {
|
|
|
31
31
|
setLen = _useState2[1];
|
|
32
32
|
|
|
33
33
|
(0, _react.useEffect)(function () {
|
|
34
|
-
showCount && setLen(String(val).length);
|
|
34
|
+
showCount && setLen(String(val !== null && val !== void 0 ? val : '').length);
|
|
35
35
|
}, [val]);
|
|
36
36
|
return len;
|
|
37
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-input/useLength.js"],"names":["useLength","val","showCount","len","setLen","String","length"],"mappings":";;;;;;;AAAA;;;;;;;;;;;;;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,GAAkC;AAAA,MAAjCC,GAAiC,uEAA3B,EAA2B;;AAAA,iFAAP,EAAO;AAAA,MAArBC,SAAqB,QAArBA,SAAqB;;AAAA,kBAC1B,qBAAS,CAAT,CAD0B;AAAA;AAAA,MACzCC,GADyC;AAAA,MACpCC,MADoC;;AAEhD,wBAAU,YAAM;AACZF,IAAAA,SAAS,IAAIE,MAAM,CAACC,MAAM,CAACJ,GAAD,CAAN,
|
|
1
|
+
{"version":3,"sources":["vtx-input/useLength.js"],"names":["useLength","val","showCount","len","setLen","String","length"],"mappings":";;;;;;;AAAA;;;;;;;;;;;;;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,GAAkC;AAAA,MAAjCC,GAAiC,uEAA3B,EAA2B;;AAAA,iFAAP,EAAO;AAAA,MAArBC,SAAqB,QAArBA,SAAqB;;AAAA,kBAC1B,qBAAS,CAAT,CAD0B;AAAA;AAAA,MACzCC,GADyC;AAAA,MACpCC,MADoC;;AAEhD,wBAAU,YAAM;AACZF,IAAAA,SAAS,IAAIE,MAAM,CAACC,MAAM,CAACJ,GAAD,aAACA,GAAD,cAACA,GAAD,GAAQ,EAAR,CAAN,CAAkBK,MAAnB,CAAnB;AACH,GAFD,EAEG,CAACL,GAAD,CAFH;AAGA,SAAOE,GAAP;AACH,CAND;;eAQeH,S","sourcesContent":["import { useState, useEffect } from 'react';\n\nconst useLength = (val = '', { showCount } = {}) => {\n const [len, setLen] = useState(0);\n useEffect(() => {\n showCount && setLen(String(val ?? '').length);\n }, [val]);\n return len;\n};\n\nexport default useLength;\n"],"file":"useLength.js"}
|
package/lib/vtx-select/index.js
CHANGED
|
@@ -88,7 +88,9 @@ var VtxSelect = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
88
88
|
showAll = _props$showAll === void 0 ? true : _props$showAll,
|
|
89
89
|
selectStyle = props.selectStyle,
|
|
90
90
|
_props$selectAll = props.selectAll,
|
|
91
|
-
selectAll = _props$selectAll === void 0 ? true : _props$selectAll
|
|
91
|
+
selectAll = _props$selectAll === void 0 ? true : _props$selectAll,
|
|
92
|
+
_props$defaultBindBod = props.defaultBindBodyToPopupContainer,
|
|
93
|
+
defaultBindBodyToPopupContainer = _props$defaultBindBod === void 0 ? true : _props$defaultBindBod;
|
|
92
94
|
(0, _react.useLayoutEffect)(function () {
|
|
93
95
|
mode === 'multiple' && setPopWidth(elRef.current.clientWidth);
|
|
94
96
|
}, [(_elRef$current = elRef.current) === null || _elRef$current === void 0 ? void 0 : _elRef$current.clientWidth]);
|
|
@@ -181,14 +183,14 @@ var VtxSelect = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
181
183
|
paddingRight: (mode == 'multiple' || mode == 'tags') && showAll ? 32 : 0
|
|
182
184
|
})
|
|
183
185
|
}, /*#__PURE__*/_react["default"].createElement(_select["default"], _extends({
|
|
184
|
-
ref: ref
|
|
186
|
+
ref: ref,
|
|
187
|
+
getPopupContainer: function getPopupContainer(triggerNode) {
|
|
188
|
+
return defaultBindBodyToPopupContainer ? document.body : triggerNode;
|
|
189
|
+
}
|
|
185
190
|
}, newProps, {
|
|
186
191
|
style: _objectSpread({
|
|
187
192
|
width: '100%'
|
|
188
|
-
}, selectStyle)
|
|
189
|
-
getPopupContainer: function getPopupContainer() {
|
|
190
|
-
return document.getElementById(elId.current);
|
|
191
|
-
}
|
|
193
|
+
}, selectStyle)
|
|
192
194
|
}), props.children), (mode == 'multiple' || mode == 'tags') && showAll ? /*#__PURE__*/_react["default"].createElement(_popover["default"], {
|
|
193
195
|
content: getContent(),
|
|
194
196
|
placement: "bottomRight",
|
|
@@ -227,6 +229,7 @@ VtxSelect.propTypes = {
|
|
|
227
229
|
style: _propTypes["default"].object,
|
|
228
230
|
selectStyle: _propTypes["default"].object,
|
|
229
231
|
onChange: _propTypes["default"].func,
|
|
232
|
+
defaultBindBodyToPopupContainer: _propTypes["default"].bool,
|
|
230
233
|
maxTagCount: _propTypes["default"].number,
|
|
231
234
|
maxTagTextLength: _propTypes["default"].number,
|
|
232
235
|
maxTagPlaceholder: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].node]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-select/index.jsx"],"names":["VtxSelect","props","ref","popWidth","setPopWidth","elRef","elId","Date","now","value","mode","size","onChange","maxTagCount","maxTagTextLength","maxTagPlaceholder","showAll","selectStyle","selectAll","current","clientWidth","newChildren","children","Array","isArray","getContent","length","map","item","index","name","getChildren","margin","e","preventDefault","valueClone","splice","options","filter","ite","includes","substring","Empty","PRESENTED_IMAGE_SIMPLE","newProps","showSearch","optionFilterProp","placeholder","dropdownRender","menu","valueLength","target","checked","keys","key","style","paddingRight","width","document","getElementById","list","i","Option","Select","OptGroup","propTypes","PropTypes","oneOfType","string","array","number","object","func","node","bool"],"mappings":"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","sourcesContent":["import React, { useState, useLayoutEffect, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Select from 'antd/es/select';\nimport Tag from 'antd/es/tag';\nimport Button from 'antd/es/button';\nimport Empty from 'antd/es/empty';\nimport Popover from 'antd/es/popover';\nimport Tooltip from 'antd/es/tooltip';\nimport Checkbox from 'antd/es/checkbox';\nimport Divider from 'antd/es/divider';\n\nconst VtxSelect = forwardRef((props, ref) => {\n const [popWidth, setPopWidth] = useState(0);\n const elRef = useRef();\n const elId = useRef(`vtx-select-${Date.now()}`);\n\n const {\n value,\n mode,\n size = 'default', //同步button大小\n onChange,\n maxTagCount = 2,\n maxTagTextLength = 5,\n maxTagPlaceholder = '...',\n showAll = true, //是否显示全部选项\n selectStyle,\n selectAll = true,\n } = props;\n\n useLayoutEffect(() => {\n mode === 'multiple' && setPopWidth(elRef.current.clientWidth);\n }, [elRef.current?.clientWidth]);\n\n const newChildren = props.children\n ? Array.isArray(props.children)\n ? props.children\n : [props.children]\n : [];\n\n const getContent = () => (\n <div className=\"vtx-all-list\">\n {Array.isArray(value) && value.length ? (\n value.map((item, index) => {\n let name = getChildren(newChildren, item);\n return (\n <Tag\n style={{ margin: '4px' }}\n key={index}\n closable\n onClose={e => {\n e.preventDefault();\n let valueClone = [...value];\n valueClone.splice(index, 1);\n let options = newChildren.filter(ite =>\n valueClone.includes(ite.props.value),\n );\n onChange(valueClone, options);\n }}\n >\n <Tooltip title={name}>\n {name.length > maxTagTextLength\n ? `${name.substring(0, maxTagTextLength)}...`\n : name}\n </Tooltip>\n </Tag>\n );\n })\n ) : (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />\n )}\n </div>\n );\n\n let newProps = {\n showSearch: true,\n optionFilterProp: 'children',\n placeholder: '请选择',\n ...props,\n };\n\n if (mode === 'multiple') {\n newProps = {\n ...newProps,\n maxTagCount: maxTagCount,\n maxTagTextLength: maxTagTextLength,\n maxTagPlaceholder: maxTagPlaceholder,\n };\n if (selectAll) {\n newProps = {\n ...newProps,\n dropdownRender: menu => {\n const valueLength = Array.isArray(value) && value.length ? value.length : 0;\n return (\n <div>\n <div\n className=\"vtx-multi-select-all\"\n onMouseDown={e => e.preventDefault()}\n >\n <Checkbox\n indeterminate={valueLength && valueLength < newChildren.length}\n checked={valueLength && valueLength === newChildren.length}\n onChange={e => {\n if (e.target.checked) {\n const keys = newChildren.map(item => item.key);\n onChange && onChange(keys, newChildren);\n } else {\n onChange && onChange([], []);\n }\n }}\n >\n 全选\n </Checkbox>\n </div>\n <Divider style={{ margin: '4px 0' }} />\n {menu}\n </div>\n );\n },\n };\n }\n }\n\n return (\n <div\n className={classnames({\n 'vtx-select': mode !== 'multiple',\n 'vtx-multi-select': mode == 'multiple' || mode == 'tags',\n })}\n id={elId.current}\n ref={elRef}\n style={{\n ...props.style,\n paddingRight: (mode == 'multiple' || mode == 'tags') && showAll ? 32 : 0,\n }}\n >\n <Select\n ref={ref}\n {...newProps}\n style={{ width: '100%', ...selectStyle }}\n getPopupContainer={() => document.getElementById(elId.current)}\n >\n {props.children}\n </Select>\n {(mode == 'multiple' || mode == 'tags') && showAll ? (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n trigger=\"click\"\n overlayStyle={{ width: popWidth }}\n >\n <Button className=\"vtx-select-count\" icon=\"more\" size={size} />\n </Popover>\n ) : null}\n </div>\n );\n});\n\nfunction getChildren(list = [], value) {\n let name = '';\n for (let i = 0; i < list.length; i++) {\n if (list[i].key === value) {\n name = list[i].props.children;\n break;\n }\n }\n return name;\n}\n\nVtxSelect.Option = Select.Option;\nVtxSelect.OptGroup = Select.OptGroup;\n\nVtxSelect.propTypes = {\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array,\n PropTypes.number,\n PropTypes.object,\n ]),\n mode: PropTypes.string,\n size: PropTypes.string,\n style: PropTypes.object,\n selectStyle: PropTypes.object,\n onChange: PropTypes.func,\n maxTagCount: PropTypes.number,\n maxTagTextLength: PropTypes.number,\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n showAll: PropTypes.bool,\n children: PropTypes.node,\n selectAll: PropTypes.bool,\n};\n\nexport default VtxSelect;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["vtx-select/index.jsx"],"names":["VtxSelect","props","ref","popWidth","setPopWidth","elRef","elId","Date","now","value","mode","size","onChange","maxTagCount","maxTagTextLength","maxTagPlaceholder","showAll","selectStyle","selectAll","defaultBindBodyToPopupContainer","current","clientWidth","newChildren","children","Array","isArray","getContent","length","map","item","index","name","getChildren","margin","e","preventDefault","valueClone","splice","options","filter","ite","includes","substring","Empty","PRESENTED_IMAGE_SIMPLE","newProps","showSearch","optionFilterProp","placeholder","dropdownRender","menu","valueLength","target","checked","keys","key","style","paddingRight","triggerNode","document","body","width","list","i","Option","Select","OptGroup","propTypes","PropTypes","oneOfType","string","array","number","object","func","bool","node"],"mappings":"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","sourcesContent":["import React, { useState, useLayoutEffect, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Select from 'antd/es/select';\nimport Tag from 'antd/es/tag';\nimport Button from 'antd/es/button';\nimport Empty from 'antd/es/empty';\nimport Popover from 'antd/es/popover';\nimport Tooltip from 'antd/es/tooltip';\nimport Checkbox from 'antd/es/checkbox';\nimport Divider from 'antd/es/divider';\n\nconst VtxSelect = forwardRef((props, ref) => {\n const [popWidth, setPopWidth] = useState(0);\n const elRef = useRef();\n const elId = useRef(`vtx-select-${Date.now()}`);\n\n const {\n value,\n mode,\n size = 'default', //同步button大小\n onChange,\n maxTagCount = 2,\n maxTagTextLength = 5,\n maxTagPlaceholder = '...',\n showAll = true, //是否显示全部选项\n selectStyle,\n selectAll = true,\n defaultBindBodyToPopupContainer = true,\n } = props;\n\n useLayoutEffect(() => {\n mode === 'multiple' && setPopWidth(elRef.current.clientWidth);\n }, [elRef.current?.clientWidth]);\n\n const newChildren = props.children\n ? Array.isArray(props.children)\n ? props.children\n : [props.children]\n : [];\n\n const getContent = () => (\n <div className=\"vtx-all-list\">\n {Array.isArray(value) && value.length ? (\n value.map((item, index) => {\n let name = getChildren(newChildren, item);\n return (\n <Tag\n style={{ margin: '4px' }}\n key={index}\n closable\n onClose={e => {\n e.preventDefault();\n let valueClone = [...value];\n valueClone.splice(index, 1);\n let options = newChildren.filter(ite =>\n valueClone.includes(ite.props.value),\n );\n onChange(valueClone, options);\n }}\n >\n <Tooltip title={name}>\n {name.length > maxTagTextLength\n ? `${name.substring(0, maxTagTextLength)}...`\n : name}\n </Tooltip>\n </Tag>\n );\n })\n ) : (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />\n )}\n </div>\n );\n\n let newProps = {\n showSearch: true,\n optionFilterProp: 'children',\n placeholder: '请选择',\n ...props,\n };\n\n if (mode === 'multiple') {\n newProps = {\n ...newProps,\n maxTagCount: maxTagCount,\n maxTagTextLength: maxTagTextLength,\n maxTagPlaceholder: maxTagPlaceholder,\n };\n if (selectAll) {\n newProps = {\n ...newProps,\n dropdownRender: menu => {\n const valueLength = Array.isArray(value) && value.length ? value.length : 0;\n return (\n <div>\n <div\n className=\"vtx-multi-select-all\"\n onMouseDown={e => e.preventDefault()}\n >\n <Checkbox\n indeterminate={valueLength && valueLength < newChildren.length}\n checked={valueLength && valueLength === newChildren.length}\n onChange={e => {\n if (e.target.checked) {\n const keys = newChildren.map(item => item.key);\n onChange && onChange(keys, newChildren);\n } else {\n onChange && onChange([], []);\n }\n }}\n >\n 全选\n </Checkbox>\n </div>\n <Divider style={{ margin: '4px 0' }} />\n {menu}\n </div>\n );\n },\n };\n }\n }\n\n return (\n <div\n className={classnames({\n 'vtx-select': mode !== 'multiple',\n 'vtx-multi-select': mode == 'multiple' || mode == 'tags',\n })}\n id={elId.current}\n ref={elRef}\n style={{\n ...props.style,\n paddingRight: (mode == 'multiple' || mode == 'tags') && showAll ? 32 : 0,\n }}\n >\n <Select\n ref={ref}\n getPopupContainer={triggerNode => {\n return defaultBindBodyToPopupContainer ? document.body : triggerNode;\n }}\n {...newProps}\n style={{ width: '100%', ...selectStyle }}\n >\n {props.children}\n </Select>\n {(mode == 'multiple' || mode == 'tags') && showAll ? (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n trigger=\"click\"\n overlayStyle={{ width: popWidth }}\n >\n <Button className=\"vtx-select-count\" icon=\"more\" size={size} />\n </Popover>\n ) : null}\n </div>\n );\n});\n\nfunction getChildren(list = [], value) {\n let name = '';\n for (let i = 0; i < list.length; i++) {\n if (list[i].key === value) {\n name = list[i].props.children;\n break;\n }\n }\n return name;\n}\n\nVtxSelect.Option = Select.Option;\nVtxSelect.OptGroup = Select.OptGroup;\n\nVtxSelect.propTypes = {\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array,\n PropTypes.number,\n PropTypes.object,\n ]),\n mode: PropTypes.string,\n size: PropTypes.string,\n style: PropTypes.object,\n selectStyle: PropTypes.object,\n onChange: PropTypes.func,\n defaultBindBodyToPopupContainer: PropTypes.bool,\n maxTagCount: PropTypes.number,\n maxTagTextLength: PropTypes.number,\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n showAll: PropTypes.bool,\n children: PropTypes.node,\n selectAll: PropTypes.bool,\n};\n\nexport default VtxSelect;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _signature_pad = _interopRequireDefault(require("signature_pad"));
|
|
13
|
+
|
|
14
|
+
var _button = _interopRequireDefault(require("antd/es/button"));
|
|
15
|
+
|
|
16
|
+
var _lodash = _interopRequireDefault(require("lodash.debounce"));
|
|
17
|
+
|
|
18
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
21
|
+
|
|
22
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
|
23
|
+
|
|
24
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
|
|
25
|
+
|
|
26
|
+
var VtxSignature = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
27
|
+
var canvasRef = (0, _react.useRef)();
|
|
28
|
+
var signaturePad = (0, _react.useRef)();
|
|
29
|
+
var dotSize = props.dotSize,
|
|
30
|
+
minWidth = props.minWidth,
|
|
31
|
+
maxWidth = props.maxWidth,
|
|
32
|
+
throttle = props.throttle,
|
|
33
|
+
minDistance = props.minDistance,
|
|
34
|
+
backgroundColor = props.backgroundColor,
|
|
35
|
+
penColor = props.penColor,
|
|
36
|
+
velocityFilterWeight = props.velocityFilterWeight,
|
|
37
|
+
onBegin = props.onBegin,
|
|
38
|
+
_onEnd = props.onEnd,
|
|
39
|
+
onChange = props.onChange;
|
|
40
|
+
(0, _react.useEffect)(function () {
|
|
41
|
+
signaturePad.current = new _signature_pad["default"](canvasRef.current, {
|
|
42
|
+
dotSize: dotSize,
|
|
43
|
+
minWidth: minWidth,
|
|
44
|
+
maxWidth: maxWidth,
|
|
45
|
+
throttle: throttle,
|
|
46
|
+
minDistance: minDistance,
|
|
47
|
+
backgroundColor: backgroundColor,
|
|
48
|
+
penColor: penColor,
|
|
49
|
+
velocityFilterWeight: velocityFilterWeight,
|
|
50
|
+
onBegin: onBegin,
|
|
51
|
+
onEnd: function onEnd() {
|
|
52
|
+
var dataUri = signaturePad.current.toDataURL();
|
|
53
|
+
var encodedImage = dataUri.split(',')[1];
|
|
54
|
+
onChange && onChange(encodedImage);
|
|
55
|
+
_onEnd && _onEnd();
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
resizeCanvas();
|
|
59
|
+
window.addEventListener('resize', (0, _lodash["default"])(resizeCanvas, 150));
|
|
60
|
+
return function () {
|
|
61
|
+
window.removeEventListener('resize', (0, _lodash["default"])(resizeCanvas, 150));
|
|
62
|
+
};
|
|
63
|
+
}, []);
|
|
64
|
+
|
|
65
|
+
function resizeCanvas() {
|
|
66
|
+
var ratio = Math.max(window.devicePixelRatio || 1, 1);
|
|
67
|
+
var canvas = canvasRef.current;
|
|
68
|
+
|
|
69
|
+
if (canvas) {
|
|
70
|
+
canvas.width = canvas.offsetWidth * ratio;
|
|
71
|
+
canvas.height = canvas.offsetHeight * ratio;
|
|
72
|
+
canvas.getContext('2d').scale(ratio, ratio);
|
|
73
|
+
clear();
|
|
74
|
+
}
|
|
75
|
+
} // 清空
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
var clear = function clear() {
|
|
79
|
+
signaturePad.current.clear();
|
|
80
|
+
}; // 撤销
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
var undo = function undo() {
|
|
84
|
+
var data = signaturePad.current.toData();
|
|
85
|
+
|
|
86
|
+
if (data) {
|
|
87
|
+
data.pop();
|
|
88
|
+
signaturePad.current.fromData(data);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
93
|
+
className: "vtx-signature",
|
|
94
|
+
ref: ref
|
|
95
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
96
|
+
className: "vtx-signature--body"
|
|
97
|
+
}, /*#__PURE__*/_react["default"].createElement("canvas", {
|
|
98
|
+
ref: canvasRef
|
|
99
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
100
|
+
className: "vtx-signature--footer"
|
|
101
|
+
}, /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
102
|
+
size: "small",
|
|
103
|
+
onClick: clear
|
|
104
|
+
}, "\u6E05\u7A7A"), /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
105
|
+
size: "small",
|
|
106
|
+
onClick: undo
|
|
107
|
+
}, "\u64A4\u9500")));
|
|
108
|
+
});
|
|
109
|
+
var _default = VtxSignature;
|
|
110
|
+
exports["default"] = _default;
|
|
111
|
+
VtxSignature.propTypes = {
|
|
112
|
+
dotSize: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].number]),
|
|
113
|
+
minWidth: _propTypes["default"].number,
|
|
114
|
+
maxWidth: _propTypes["default"].number,
|
|
115
|
+
throttle: _propTypes["default"].number,
|
|
116
|
+
minDistance: _propTypes["default"].number,
|
|
117
|
+
backgroundColor: _propTypes["default"].string,
|
|
118
|
+
penColor: _propTypes["default"].string,
|
|
119
|
+
velocityFilterWeight: _propTypes["default"].number,
|
|
120
|
+
onBegin: _propTypes["default"].func,
|
|
121
|
+
onEnd: _propTypes["default"].func,
|
|
122
|
+
onChange: _propTypes["default"].func
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["vtx-signature/index.jsx"],"names":["VtxSignature","props","ref","canvasRef","signaturePad","dotSize","minWidth","maxWidth","throttle","minDistance","backgroundColor","penColor","velocityFilterWeight","onBegin","onEnd","onChange","current","SignaturePad","dataUri","toDataURL","encodedImage","split","resizeCanvas","window","addEventListener","removeEventListener","ratio","Math","max","devicePixelRatio","canvas","width","offsetWidth","height","offsetHeight","getContext","scale","clear","undo","data","toData","pop","fromData","propTypes","PropTypes","oneOfType","func","number","string"],"mappings":"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","sourcesContent":["import React, { forwardRef, useRef, useEffect } from 'react';\nimport SignaturePad from 'signature_pad';\nimport Button from 'antd/es/button';\nimport debounce from 'lodash.debounce';\nimport PropTypes from 'prop-types';\n\nconst VtxSignature = forwardRef((props, ref) => {\n const canvasRef = useRef();\n const signaturePad = useRef();\n const {\n dotSize,\n minWidth,\n maxWidth,\n throttle,\n minDistance,\n backgroundColor,\n penColor,\n velocityFilterWeight,\n onBegin,\n onEnd,\n onChange,\n } = props;\n\n useEffect(() => {\n signaturePad.current = new SignaturePad(canvasRef.current, {\n dotSize,\n minWidth,\n maxWidth,\n throttle,\n minDistance,\n backgroundColor,\n penColor,\n velocityFilterWeight,\n onBegin,\n onEnd() {\n const dataUri = signaturePad.current.toDataURL();\n const encodedImage = dataUri.split(',')[1];\n\n onChange && onChange(encodedImage);\n onEnd && onEnd();\n },\n });\n resizeCanvas();\n window.addEventListener('resize', debounce(resizeCanvas, 150));\n return () => {\n window.removeEventListener('resize', debounce(resizeCanvas, 150));\n };\n }, []);\n\n function resizeCanvas() {\n const ratio = Math.max(window.devicePixelRatio || 1, 1);\n const canvas = canvasRef.current;\n if (canvas) {\n canvas.width = canvas.offsetWidth * ratio;\n canvas.height = canvas.offsetHeight * ratio;\n canvas.getContext('2d').scale(ratio, ratio);\n clear();\n }\n }\n\n // 清空\n const clear = () => {\n signaturePad.current.clear();\n };\n\n // 撤销\n const undo = () => {\n const data = signaturePad.current.toData();\n if (data) {\n data.pop();\n signaturePad.current.fromData(data);\n }\n };\n\n return (\n <div className=\"vtx-signature\" ref={ref}>\n <div className=\"vtx-signature--body\">\n <canvas ref={canvasRef} />\n </div>\n <div className=\"vtx-signature--footer\">\n <Button size=\"small\" onClick={clear}>\n 清空\n </Button>\n <Button size=\"small\" onClick={undo}>\n 撤销\n </Button>\n </div>\n </div>\n );\n});\n\nexport default VtxSignature;\n\nVtxSignature.propTypes = {\n dotSize: PropTypes.oneOfType([PropTypes.func, PropTypes.number]),\n minWidth: PropTypes.number,\n maxWidth: PropTypes.number,\n throttle: PropTypes.number,\n minDistance: PropTypes.number,\n backgroundColor: PropTypes.string,\n penColor: PropTypes.string,\n velocityFilterWeight: PropTypes.number,\n onBegin: PropTypes.func,\n onEnd: PropTypes.func,\n onChange: PropTypes.func,\n};\n"],"file":"index.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["vtx-signature/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA","sourcesContent":["import 'antd/es/button/style/css';\nimport 'antd/es/message/style/css';\nimport './index.less';\n"],"file":"css.js"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
.vtx-signature {
|
|
2
|
+
position: relative;
|
|
3
|
+
display: -webkit-box;
|
|
4
|
+
display: -ms-flexbox;
|
|
5
|
+
display: flex;
|
|
6
|
+
-webkit-box-orient: vertical;
|
|
7
|
+
-webkit-box-direction: normal;
|
|
8
|
+
-ms-flex-direction: column;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
height: 300px;
|
|
11
|
+
padding: 16px;
|
|
12
|
+
background-color: #fff;
|
|
13
|
+
border: 1px solid #f4f4f4;
|
|
14
|
+
border-radius: 4px;
|
|
15
|
+
}
|
|
16
|
+
.vtx-signature--body {
|
|
17
|
+
position: relative;
|
|
18
|
+
height: 100%;
|
|
19
|
+
border: 2px dotted #c1c1c1;
|
|
20
|
+
}
|
|
21
|
+
.vtx-signature--body canvas {
|
|
22
|
+
position: absolute;
|
|
23
|
+
top: 0;
|
|
24
|
+
left: 0;
|
|
25
|
+
width: 100%;
|
|
26
|
+
height: 100%;
|
|
27
|
+
border-radius: 4px;
|
|
28
|
+
}
|
|
29
|
+
.vtx-signature--footer {
|
|
30
|
+
margin-top: 8px;
|
|
31
|
+
line-height: 1;
|
|
32
|
+
}
|
|
33
|
+
.vtx-signature--footer button + button {
|
|
34
|
+
margin-left: 8px;
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["vtx-signature/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA","sourcesContent":["import 'antd/es/button/style/css';\nimport 'antd/es/message/style/css';\nimport './index.less';\n"],"file":"index.js"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
@prefix-cls: vtx-signature;
|
|
2
|
+
|
|
3
|
+
.@{prefix-cls} {
|
|
4
|
+
position: relative;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
height: 300px;
|
|
8
|
+
padding: 16px;
|
|
9
|
+
background-color: #fff;
|
|
10
|
+
border: 1px solid #f4f4f4;
|
|
11
|
+
border-radius: 4px;
|
|
12
|
+
&--body {
|
|
13
|
+
position: relative;
|
|
14
|
+
height: 100%;
|
|
15
|
+
border: 2px dotted #c1c1c1;
|
|
16
|
+
canvas {
|
|
17
|
+
position: absolute;
|
|
18
|
+
top: 0;
|
|
19
|
+
left: 0;
|
|
20
|
+
width: 100%;
|
|
21
|
+
height: 100%;
|
|
22
|
+
border-radius: 4px;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
&--footer {
|
|
26
|
+
margin-top: 8px;
|
|
27
|
+
line-height: 1;
|
|
28
|
+
button + button {
|
|
29
|
+
margin-left: 8px;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vtx/components",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "React components for Vortex",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
"moment": "^2.29.1",
|
|
68
68
|
"rc-color-picker": "^1.2.6",
|
|
69
69
|
"react-resizable": "^1.11.1",
|
|
70
|
+
"signature_pad": "3.0.0-beta.4",
|
|
70
71
|
"viewerjs": "1.3.3",
|
|
71
72
|
"xgplayer": "2.18.3"
|
|
72
73
|
},
|