@vtx/components 3.1.60 → 3.1.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/vtx-image/Image.js
CHANGED
|
@@ -19,12 +19,20 @@ var _PreviewGroup = _interopRequireWildcard(require("./PreviewGroup"));
|
|
|
19
19
|
|
|
20
20
|
var _useSet3 = _interopRequireDefault(require("../_util/useSet"));
|
|
21
21
|
|
|
22
|
+
var _UndoOutlined = _interopRequireDefault(require("@ant-design/icons/UndoOutlined"));
|
|
23
|
+
|
|
24
|
+
var _RedoOutlined = _interopRequireDefault(require("@ant-design/icons/RedoOutlined"));
|
|
25
|
+
|
|
22
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
23
27
|
|
|
24
28
|
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); }
|
|
25
29
|
|
|
26
30
|
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; }
|
|
27
31
|
|
|
32
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
33
|
+
|
|
34
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
35
|
+
|
|
28
36
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
29
37
|
|
|
30
38
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
@@ -63,7 +71,8 @@ function VtxImage(props) {
|
|
|
63
71
|
viewerVisible: false,
|
|
64
72
|
// 是否查看
|
|
65
73
|
visible: false,
|
|
66
|
-
photo: undefined
|
|
74
|
+
photo: undefined,
|
|
75
|
+
rotate: 0
|
|
67
76
|
}),
|
|
68
77
|
_useSet2 = _slicedToArray(_useSet, 2),
|
|
69
78
|
state = _useSet2[0],
|
|
@@ -79,7 +88,8 @@ function VtxImage(props) {
|
|
|
79
88
|
_props$preview = props.preview,
|
|
80
89
|
preview = _props$preview === void 0 ? true : _props$preview,
|
|
81
90
|
className = props.className,
|
|
82
|
-
style = props.style,
|
|
91
|
+
_props$style = props.style,
|
|
92
|
+
style = _props$style === void 0 ? {} : _props$style,
|
|
83
93
|
src = props.src,
|
|
84
94
|
thumb = props.thumb,
|
|
85
95
|
alt = props.alt,
|
|
@@ -94,7 +104,9 @@ function VtxImage(props) {
|
|
|
94
104
|
_onClick = props.onClick,
|
|
95
105
|
aspectFit = props.aspectFit,
|
|
96
106
|
_props$isDark = props.isDark,
|
|
97
|
-
isDark = _props$isDark === void 0 ? false : _props$isDark
|
|
107
|
+
isDark = _props$isDark === void 0 ? false : _props$isDark,
|
|
108
|
+
_props$showTool = props.showTool,
|
|
109
|
+
showTool = _props$showTool === void 0 ? false : _props$showTool;
|
|
98
110
|
|
|
99
111
|
var _useContext = (0, _react.useContext)(_PreviewGroup.context),
|
|
100
112
|
isPreviewGroup = _useContext.isPreviewGroup,
|
|
@@ -114,12 +126,22 @@ function VtxImage(props) {
|
|
|
114
126
|
alt: alt
|
|
115
127
|
});
|
|
116
128
|
}
|
|
117
|
-
}, [src]);
|
|
129
|
+
}, [src]);
|
|
130
|
+
|
|
131
|
+
function rotateImage(isPlus) {
|
|
132
|
+
var rotate = isPlus ? state.rotate + 90 : state.rotate - 90;
|
|
133
|
+
setState({
|
|
134
|
+
rotate: rotate
|
|
135
|
+
});
|
|
136
|
+
} // 图片props属性
|
|
137
|
+
|
|
118
138
|
|
|
119
139
|
var imgProps = {
|
|
120
140
|
src: thumb || src,
|
|
121
141
|
className: className,
|
|
122
|
-
style: style,
|
|
142
|
+
style: _objectSpread(_objectSpread({}, style), {}, {
|
|
143
|
+
transform: "rotateZ(".concat(state.rotate, "deg)")
|
|
144
|
+
}),
|
|
123
145
|
alt: alt,
|
|
124
146
|
onClick: function onClick() {
|
|
125
147
|
if (!src || isError) {
|
|
@@ -196,7 +218,17 @@ function VtxImage(props) {
|
|
|
196
218
|
if (src && !isError && aspectFit) {
|
|
197
219
|
imgRender = /*#__PURE__*/_react["default"].createElement("div", {
|
|
198
220
|
className: (0, _classnames2["default"])("".concat(prefixCls, "-aspectFit"), _defineProperty({}, "".concat(prefixCls, "-preview"), preview))
|
|
199
|
-
}, /*#__PURE__*/_react["default"].createElement("img", imgProps)
|
|
221
|
+
}, /*#__PURE__*/_react["default"].createElement("img", imgProps), showTool && /*#__PURE__*/_react["default"].createElement("div", {
|
|
222
|
+
className: (0, _classnames2["default"])("".concat(prefixCls, "-tool"))
|
|
223
|
+
}, /*#__PURE__*/_react["default"].createElement(_UndoOutlined["default"], {
|
|
224
|
+
onClick: function onClick() {
|
|
225
|
+
rotateImage(false);
|
|
226
|
+
}
|
|
227
|
+
}), /*#__PURE__*/_react["default"].createElement(_RedoOutlined["default"], {
|
|
228
|
+
onClick: function onClick() {
|
|
229
|
+
rotateImage(true);
|
|
230
|
+
}
|
|
231
|
+
})));
|
|
200
232
|
}
|
|
201
233
|
|
|
202
234
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, imgRender, !isPreviewGroup && preview && /*#__PURE__*/_react["default"].createElement(_Preview["default"], {
|
|
@@ -224,7 +256,8 @@ VtxImage.propTypes = {
|
|
|
224
256
|
errorText: _propTypes["default"].string,
|
|
225
257
|
onClick: _propTypes["default"].func,
|
|
226
258
|
aspectFit: _propTypes["default"].bool,
|
|
227
|
-
isDark: _propTypes["default"].bool
|
|
259
|
+
isDark: _propTypes["default"].bool,
|
|
260
|
+
showTool: _propTypes["default"].bool
|
|
228
261
|
};
|
|
229
262
|
VtxImage.setImageConfig = setImageConfig;
|
|
230
263
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","names":["defaultEmptyImageSrc","defaultErrorImageSrc","defaultEmptyText","defaultErrorText","uuid","VtxImage","props","React","useState","currentId","useSet","isError","isEmptyImageError","isErrorImageError","viewerVisible","visible","photo","undefined","state","setState","prefixCls","preview","className","style","src","thumb","alt","emptyImageSrc","errorImageSrc","emptyText","errorText","onClick","aspectFit","isDark","useContext","context","isPreviewGroup","setCurrent","setGroupShowPreview","setShowPreview","registerImage","useEffect","id","imgProps","onError","imgRender","classnames","propTypes","PropTypes","string","object","bool","func","setImageConfig","options","PreviewGroup","VtxImagePreview","Preview"],"sources":["vtx-image/Image.jsx"],"sourcesContent":["import React, { useEffect, useContext } from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport Preview from './Preview';\r\nimport PreviewGroup, { context } from './PreviewGroup';\r\nimport useSet from '../_util/useSet';\r\n\r\nlet defaultEmptyImageSrc = '';\r\nlet defaultErrorImageSrc = '';\r\nlet defaultEmptyText = '暂无图片';\r\nlet defaultErrorText = '图片出错';\r\n\r\nlet uuid = 0;\r\n\r\nfunction VtxImage(props) {\r\n const [currentId] = React.useState(() => {\r\n uuid += 1;\r\n return uuid;\r\n });\r\n\r\n const [state, setState] = useSet({\r\n isError: false, // 图片是否加载失败\r\n isEmptyImageError: false, // 空白图片是否加载失败\r\n isErrorImageError: false, // 报错图片是否加载失败\r\n viewerVisible: false, // 是否查看\r\n visible: false,\r\n photo: undefined,\r\n });\r\n const { isError, isEmptyImageError, isErrorImageError, visible, photo } = state;\r\n\r\n const {\r\n prefixCls = 'vtx-image',\r\n preview = true,\r\n className,\r\n style,\r\n src,\r\n thumb,\r\n alt,\r\n emptyImageSrc = defaultEmptyImageSrc,\r\n errorImageSrc = defaultErrorImageSrc,\r\n emptyText = defaultEmptyText,\r\n errorText = defaultErrorText,\r\n onClick,\r\n aspectFit,\r\n isDark = false,\r\n } = props;\r\n\r\n const {\r\n isPreviewGroup,\r\n setCurrent,\r\n setShowPreview: setGroupShowPreview,\r\n registerImage,\r\n } = useContext(context);\r\n\r\n useEffect(() => {\r\n setState({\r\n isError: false,\r\n });\r\n if (isPreviewGroup && preview) {\r\n registerImage({ id: currentId, src, alt });\r\n }\r\n }, [src]);\r\n\r\n // 图片props属性\r\n const imgProps = {\r\n src: thumb || src,\r\n className,\r\n style,\r\n alt,\r\n onClick: () => {\r\n if (!src || isError) {\r\n return null;\r\n }\r\n onClick && onClick();\r\n if (preview) {\r\n if (isPreviewGroup) {\r\n setCurrent(currentId);\r\n setGroupShowPreview(true);\r\n } else {\r\n setState({\r\n visible: true,\r\n photo: {\r\n src,\r\n alt,\r\n },\r\n });\r\n }\r\n }\r\n },\r\n onError: () => {\r\n setState({\r\n isError: true,\r\n });\r\n },\r\n };\r\n\r\n // 无图片\r\n if (!src) {\r\n // 有替代图片\r\n if (emptyImageSrc && !isEmptyImageError) {\r\n imgProps.src = emptyImageSrc;\r\n imgProps.onError = () => {\r\n setState({ isEmptyImageError: true });\r\n };\r\n } else {\r\n // 没有替代图片或替代图片无法加载\r\n return (\r\n <div className={`${prefixCls}-nodata${isDark ? '-dark' : ''}`} style={style}>\r\n <p>{emptyText}</p>\r\n </div>\r\n );\r\n }\r\n }\r\n\r\n // 图片出错\r\n if (isError) {\r\n if (errorImageSrc && !isErrorImageError) {\r\n imgProps['data-error-img'] = src;\r\n imgProps.src = errorImageSrc;\r\n imgProps.onError = () => {\r\n setState({ isErrorImageError: true });\r\n };\r\n } else {\r\n // 无法加载报错图片\r\n return (\r\n <div className={`${prefixCls}-error${isDark ? '-dark' : ''}`} data-error-img={src} style={style}>\r\n <p>{errorText}</p>\r\n </div>\r\n );\r\n }\r\n }\r\n\r\n let imgRender = <img {...imgProps} />;\r\n // 缩放\r\n if (src && !isError && aspectFit) {\r\n imgRender = (\r\n <div\r\n className={classnames(`${prefixCls}-aspectFit`, {\r\n [`${prefixCls}-preview`]: preview,\r\n })}\r\n >\r\n <img {...imgProps} />\r\n </div>\r\n );\r\n }\r\n return (\r\n <>\r\n {imgRender}\r\n {!isPreviewGroup && preview && (\r\n <Preview\r\n visible={visible}\r\n photo={photo}\r\n onClose={() => setState({ visible: false })}\r\n />\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nVtxImage.propTypes = {\r\n prefixCls: PropTypes.string,\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n preview: PropTypes.bool,\r\n src: PropTypes.string,\r\n thumb: PropTypes.string,\r\n alt: PropTypes.string,\r\n emptyImageSrc: PropTypes.string,\r\n errorImageSrc: PropTypes.string,\r\n emptyText: PropTypes.string,\r\n errorText: PropTypes.string,\r\n onClick: PropTypes.func,\r\n aspectFit: PropTypes.bool,\r\n isDark: PropTypes.bool,\r\n};\r\n\r\nVtxImage.setImageConfig = setImageConfig;\r\n\r\nfunction setImageConfig(options) {\r\n const { emptyImageSrc, errorImageSrc, emptyText, errorText } = options;\r\n\r\n if (emptyImageSrc !== undefined) {\r\n defaultEmptyImageSrc = emptyImageSrc;\r\n }\r\n if (errorImageSrc !== undefined) {\r\n defaultErrorImageSrc = errorImageSrc;\r\n }\r\n if (emptyText !== undefined) {\r\n defaultEmptyText = emptyText;\r\n }\r\n if (errorText !== undefined) {\r\n defaultErrorText = errorText;\r\n }\r\n}\r\n\r\nVtxImage.PreviewGroup = PreviewGroup;\r\nVtxImage.VtxImagePreview = Preview;\r\n\r\nexport default VtxImage;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Image.js","names":["defaultEmptyImageSrc","defaultErrorImageSrc","defaultEmptyText","defaultErrorText","uuid","VtxImage","props","React","useState","currentId","useSet","isError","isEmptyImageError","isErrorImageError","viewerVisible","visible","photo","undefined","rotate","state","setState","prefixCls","preview","className","style","src","thumb","alt","emptyImageSrc","errorImageSrc","emptyText","errorText","onClick","aspectFit","isDark","showTool","useContext","context","isPreviewGroup","setCurrent","setGroupShowPreview","setShowPreview","registerImage","useEffect","id","rotateImage","isPlus","imgProps","transform","onError","imgRender","classnames","propTypes","PropTypes","string","object","bool","func","setImageConfig","options","PreviewGroup","VtxImagePreview","Preview"],"sources":["vtx-image/Image.jsx"],"sourcesContent":["import React, { useEffect, useContext } from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport Preview from './Preview';\r\nimport PreviewGroup, { context } from './PreviewGroup';\r\nimport useSet from '../_util/useSet';\r\n\r\nimport UndoOutlined from '@ant-design/icons/UndoOutlined';\r\nimport RedoOutlined from '@ant-design/icons/RedoOutlined';\r\n\r\nlet defaultEmptyImageSrc = '';\r\nlet defaultErrorImageSrc = '';\r\nlet defaultEmptyText = '暂无图片';\r\nlet defaultErrorText = '图片出错';\r\n\r\nlet uuid = 0;\r\n\r\nfunction VtxImage(props) {\r\n const [currentId] = React.useState(() => {\r\n uuid += 1;\r\n return uuid;\r\n });\r\n\r\n const [state, setState] = useSet({\r\n isError: false, // 图片是否加载失败\r\n isEmptyImageError: false, // 空白图片是否加载失败\r\n isErrorImageError: false, // 报错图片是否加载失败\r\n viewerVisible: false, // 是否查看\r\n visible: false,\r\n photo: undefined,\r\n rotate: 0\r\n });\r\n const { isError, isEmptyImageError, isErrorImageError, visible, photo } = state;\r\n\r\n const {\r\n prefixCls = 'vtx-image',\r\n preview = true,\r\n className,\r\n style = {},\r\n src,\r\n thumb,\r\n alt,\r\n emptyImageSrc = defaultEmptyImageSrc,\r\n errorImageSrc = defaultErrorImageSrc,\r\n emptyText = defaultEmptyText,\r\n errorText = defaultErrorText,\r\n onClick,\r\n aspectFit,\r\n isDark = false,\r\n showTool = false,\r\n } = props;\r\n\r\n const {\r\n isPreviewGroup,\r\n setCurrent,\r\n setShowPreview: setGroupShowPreview,\r\n registerImage,\r\n } = useContext(context);\r\n\r\n useEffect(() => {\r\n setState({\r\n isError: false,\r\n });\r\n if (isPreviewGroup && preview) {\r\n registerImage({ id: currentId, src, alt });\r\n }\r\n }, [src]);\r\n\r\n function rotateImage(isPlus) {\r\n let rotate = isPlus ? (state.rotate+90) : (state.rotate-90)\r\n setState({rotate: rotate})\r\n }\r\n\r\n // 图片props属性\r\n const imgProps = {\r\n src: thumb || src,\r\n className,\r\n style: {\r\n ...style,\r\n transform: `rotateZ(${state.rotate}deg)`\r\n },\r\n alt,\r\n onClick: () => {\r\n if (!src || isError) {\r\n return null;\r\n }\r\n onClick && onClick();\r\n if (preview) {\r\n if (isPreviewGroup) {\r\n setCurrent(currentId);\r\n setGroupShowPreview(true);\r\n } else {\r\n setState({\r\n visible: true,\r\n photo: {\r\n src,\r\n alt,\r\n },\r\n });\r\n }\r\n }\r\n },\r\n onError: () => {\r\n setState({\r\n isError: true,\r\n });\r\n },\r\n };\r\n\r\n // 无图片\r\n if (!src) {\r\n // 有替代图片\r\n if (emptyImageSrc && !isEmptyImageError) {\r\n imgProps.src = emptyImageSrc;\r\n imgProps.onError = () => {\r\n setState({ isEmptyImageError: true });\r\n };\r\n } else {\r\n // 没有替代图片或替代图片无法加载\r\n return (\r\n <div className={`${prefixCls}-nodata${isDark ? '-dark' : ''}`} style={style}>\r\n <p>{emptyText}</p>\r\n </div>\r\n );\r\n }\r\n }\r\n\r\n // 图片出错\r\n if (isError) {\r\n if (errorImageSrc && !isErrorImageError) {\r\n imgProps['data-error-img'] = src;\r\n imgProps.src = errorImageSrc;\r\n imgProps.onError = () => {\r\n setState({ isErrorImageError: true });\r\n };\r\n } else {\r\n // 无法加载报错图片\r\n return (\r\n <div className={`${prefixCls}-error${isDark ? '-dark' : ''}`} data-error-img={src} style={style}>\r\n <p>{errorText}</p>\r\n </div>\r\n );\r\n }\r\n }\r\n\r\n let imgRender = <img {...imgProps} />;\r\n \r\n // 缩放\r\n if (src && !isError && aspectFit) {\r\n imgRender = (\r\n <div\r\n className={classnames(`${prefixCls}-aspectFit`, {\r\n [`${prefixCls}-preview`]: preview,\r\n })}\r\n >\r\n <img {...imgProps} />\r\n {\r\n showTool && \r\n <div className={classnames(`${prefixCls}-tool`)}>\r\n <UndoOutlined onClick={()=>{rotateImage(false);}}/>\r\n <RedoOutlined onClick={()=>{rotateImage(true);}}/>\r\n </div>\r\n }\r\n </div>\r\n );\r\n }\r\n return (\r\n <>\r\n {imgRender}\r\n {!isPreviewGroup && preview && (\r\n <Preview\r\n visible={visible}\r\n photo={photo}\r\n onClose={() => setState({ visible: false })}\r\n />\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nVtxImage.propTypes = {\r\n prefixCls: PropTypes.string,\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n preview: PropTypes.bool,\r\n src: PropTypes.string,\r\n thumb: PropTypes.string,\r\n alt: PropTypes.string,\r\n emptyImageSrc: PropTypes.string,\r\n errorImageSrc: PropTypes.string,\r\n emptyText: PropTypes.string,\r\n errorText: PropTypes.string,\r\n onClick: PropTypes.func,\r\n aspectFit: PropTypes.bool,\r\n isDark: PropTypes.bool,\r\n showTool: PropTypes.bool,\r\n};\r\n\r\nVtxImage.setImageConfig = setImageConfig;\r\n\r\nfunction setImageConfig(options) {\r\n const { emptyImageSrc, errorImageSrc, emptyText, errorText } = options;\r\n\r\n if (emptyImageSrc !== undefined) {\r\n defaultEmptyImageSrc = emptyImageSrc;\r\n }\r\n if (errorImageSrc !== undefined) {\r\n defaultErrorImageSrc = errorImageSrc;\r\n }\r\n if (emptyText !== undefined) {\r\n defaultEmptyText = emptyText;\r\n }\r\n if (errorText !== undefined) {\r\n defaultErrorText = errorText;\r\n }\r\n}\r\n\r\nVtxImage.PreviewGroup = PreviewGroup;\r\nVtxImage.VtxImagePreview = Preview;\r\n\r\nexport default VtxImage;\r\n"],"mappings":"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"}
|
|
@@ -11,16 +11,47 @@
|
|
|
11
11
|
height: 100%;
|
|
12
12
|
min-height: 36px;
|
|
13
13
|
background: #595959;
|
|
14
|
+
display: -webkit-box;
|
|
15
|
+
display: -ms-flexbox;
|
|
16
|
+
display: flex;
|
|
17
|
+
-webkit-box-align: center;
|
|
18
|
+
-ms-flex-align: center;
|
|
19
|
+
align-items: center;
|
|
20
|
+
-webkit-box-pack: center;
|
|
21
|
+
-ms-flex-pack: center;
|
|
22
|
+
justify-content: center;
|
|
23
|
+
overflow: hidden;
|
|
14
24
|
}
|
|
15
25
|
.vtx-image-aspectFit img {
|
|
16
|
-
position: absolute;
|
|
17
|
-
top: 50%;
|
|
18
|
-
left: 50%;
|
|
19
|
-
-ms-transform: translate(-50%, -50%);
|
|
20
|
-
-webkit-transform: translate(-50%, -50%);
|
|
21
|
-
transform: translate(-50%, -50%);
|
|
22
26
|
max-width: 100%;
|
|
23
27
|
max-height: 100%;
|
|
28
|
+
-webkit-transition: 0.2s all linear;
|
|
29
|
+
transition: 0.2s all linear;
|
|
30
|
+
}
|
|
31
|
+
.vtx-image-tool {
|
|
32
|
+
position: absolute;
|
|
33
|
+
bottom: 0;
|
|
34
|
+
left: 0;
|
|
35
|
+
width: 100%;
|
|
36
|
+
color: #FFFFFF;
|
|
37
|
+
background-color: rgba(89, 89, 89, 0.6);
|
|
38
|
+
padding: 5px;
|
|
39
|
+
display: -webkit-box;
|
|
40
|
+
display: -ms-flexbox;
|
|
41
|
+
display: flex;
|
|
42
|
+
-webkit-box-align: center;
|
|
43
|
+
-ms-flex-align: center;
|
|
44
|
+
align-items: center;
|
|
45
|
+
-webkit-box-pack: center;
|
|
46
|
+
-ms-flex-pack: center;
|
|
47
|
+
justify-content: center;
|
|
48
|
+
}
|
|
49
|
+
.vtx-image-tool > span {
|
|
50
|
+
display: inline-block;
|
|
51
|
+
cursor: pointer;
|
|
52
|
+
}
|
|
53
|
+
.vtx-image-tool span + span {
|
|
54
|
+
margin-left: 8px;
|
|
24
55
|
}
|
|
25
56
|
.vtx-image-preview img {
|
|
26
57
|
cursor: pointer;
|
|
@@ -21,10 +21,33 @@
|
|
|
21
21
|
height: 100%;
|
|
22
22
|
min-height: @min-height;
|
|
23
23
|
background: @aspectFit-background;
|
|
24
|
+
display: flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
justify-content: center;
|
|
27
|
+
overflow: hidden;
|
|
24
28
|
img {
|
|
25
|
-
.center();
|
|
26
29
|
max-width: 100%;
|
|
27
30
|
max-height: 100%;
|
|
31
|
+
transition: 0.2s all linear;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
&-tool {
|
|
35
|
+
position: absolute;
|
|
36
|
+
bottom: 0;
|
|
37
|
+
left: 0;
|
|
38
|
+
width: 100%;
|
|
39
|
+
color: #FFFFFF;
|
|
40
|
+
background-color: fade(@aspectFit-background, 60);
|
|
41
|
+
padding: 5px;
|
|
42
|
+
display: flex;
|
|
43
|
+
align-items: center;
|
|
44
|
+
justify-content: center;
|
|
45
|
+
&>span {
|
|
46
|
+
display: inline-block;
|
|
47
|
+
cursor: pointer;
|
|
48
|
+
}
|
|
49
|
+
span + span {
|
|
50
|
+
margin-left: 8px;
|
|
28
51
|
}
|
|
29
52
|
}
|
|
30
53
|
&-preview {
|
package/lib/vtx-ztree/index.js
CHANGED
|
@@ -166,6 +166,7 @@ var VtxZtree = /*#__PURE__*/function (_React$Component) {
|
|
|
166
166
|
var selectedNodes = t.getSelectedNodes();
|
|
167
167
|
props.onClick({
|
|
168
168
|
key: treeNode.key,
|
|
169
|
+
event: e,
|
|
169
170
|
treeNode: treeNode,
|
|
170
171
|
selectedNodes: selectedNodes,
|
|
171
172
|
selectedKeys: selectedNodes.map(function (item) {
|
|
@@ -462,8 +463,8 @@ var VtxZtree = /*#__PURE__*/function (_React$Component) {
|
|
|
462
463
|
|
|
463
464
|
processShowNodes(zTreeObj, nodesShow, _keywords); // nodes should be reprocessed to show correctly
|
|
464
465
|
}
|
|
465
|
-
/**
|
|
466
|
-
* reprocess of nodes before showing
|
|
466
|
+
/**
|
|
467
|
+
* reprocess of nodes before showing
|
|
467
468
|
*/
|
|
468
469
|
|
|
469
470
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["VtxZtree","props","treeId","Date","getTime","parseInt","Math","random","zTreeObj","treeSetting","treeNodes","keyNameMapping","searchTimeOutId","loadPromise","loadTreeResource","loadComplete","fuzzySearch","debounce","bind","state","searchVal","$","fn","zTree","treeAll","Promise","resolve","getScript","CONFIG","ztreeServer","attr","rel","type","href","appendTo","then","refreshTree","prevProps","isEqual","refreshFlag","data","destroy","t","check","enable","checkable","chkboxType","checkStrictly","Y","N","view","selectedMulti","multiple","showIcon","expandSpeed","showTitle","fontCss","treeNode","selectable","color","callback","beforeClick","beforeCheck","onClick","e","selectedNodes","getSelectedNodes","key","selectedKeys","map","item","selectedNames","name","onCheck","checkedNodes","getCheckedNodes","isChecked","checked","getChangeCheckedNodes","checkedKeys","checkedNames","onExpand","isExpand","expandedKeys","getNodesByParam","onCollapse","onRightClick","event","onDblClick","customCfg","merge","Array","isArray","chkDisabled","disableCheckboxAll","genNodes","nodes","indexOf","open","children","length","newNode","every","autoExpandParent","some","newProps","initTreeSetting","initTreeNodes","init","selectNodes","defaultExpandAll","expandAll","expandFlag","i","len","node","pop","expandNode","checkedFlag","updateNode","selectNode","cancelSelectedNode","keyworld","isHighLight","nameKey","setting","nameIsHTML","metaChar","rexMeta","RegExp","ztreeFilter","_keywords","filterFunc","oldname","showNode","toLowerCase","newKeywords","replace","matchStr","rexGlobal","originalText","highLightText","hideNode","nodesShow","getNodesByFilter","processShowNodes","each","n","obj","pathOfOne","getPath","rootNodes","trim","setState","check_Child_State","prefixCls","showSearch","searchPlaceholder","classnames","target","value","React","Component","propTypes","PropTypes","bool","string","array","number","object"],"sources":["vtx-ztree/index.jsx"],"sourcesContent":["/*\n * @Author: yemu\n * @Date: 2021-04-08 22:03:07\n * @LastEditTime: 2021-04-09 10:36:45\n * @LastEditors: yemu\n * @Description: 树形控件\n */\nimport React from 'react';\nimport Input from 'antd/lib/input';\nimport isEqual from 'lodash.isequal';\nimport merge from 'lodash.merge';\nimport debounce from 'lodash.debounce';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport CONFIG from '../config';\n\nexport default class VtxZtree extends React.Component {\n static defaultProps = {\n showSearch: true,\n prefixCls: 'vtx-ztree',\n };\n\n constructor(props) {\n super(props);\n this.treeId = `tree-${new Date().getTime()}-${parseInt(Math.random() * 10000)}`;\n this.zTreeObj = null;\n this.treeSetting = {};\n this.treeNodes = [];\n this.keyNameMapping = {};\n this.searchTimeOutId = null;\n this.loadPromise = this.loadTreeResource();\n this.loadComplete = false;\n this.fuzzySearch = debounce(this.fuzzySearch.bind(this), 300);\n this.state = {\n searchVal: '',\n };\n }\n\n loadTreeResource() {\n if (!$.fn.zTree) {\n const treeAll = new Promise(resolve => {\n $.getScript(`${CONFIG.ztreeServer}/js/jquery.ztree.all.min.js`, function() {\n $.getScript(`${CONFIG.ztreeServer}/js/jquery.ztree.exhide.min.js`, function() {\n resolve();\n });\n });\n });\n $('<link>')\n .attr({\n rel: 'stylesheet',\n type: 'text/css',\n href: `${CONFIG.ztreeServer}/css/zTreeStyle/zTreeStyle.css`,\n })\n .appendTo('head');\n return treeAll;\n } else {\n return new Promise(resolve => {\n resolve();\n });\n }\n }\n\n componentDidMount() {\n this.loadPromise.then(() => {\n this.loadComplete = true;\n this.refreshTree(this.props);\n });\n }\n\n componentDidUpdate(prevProps) {\n if (!this.loadComplete) return;\n if (\n !isEqual(prevProps.refreshFlag, this.props.refreshFlag) ||\n !isEqual(prevProps.data, this.props.data)\n ) {\n this.refreshTree(this.props);\n }\n }\n\n componentWillUnmount() {\n this.zTreeObj && this.zTreeObj.destroy();\n }\n\n // 初始化树的配置\n initTreeSetting(props) {\n const t = this;\n // 初始化树的配置\n this.treeSetting = {\n check: {\n enable: !!props.checkable,\n chkboxType: props.checkStrictly ? { Y: '', N: '' } : { Y: 'ps', N: 'ps' },\n },\n view: {\n selectedMulti: !!props.multiple,\n showIcon: true,\n expandSpeed: 'normal',\n showTitle: false,\n fontCss: (treeId, treeNode) => {\n return treeNode.selectable ? {} : { color: '#B9B9B9' };\n },\n },\n callback: {\n beforeClick(treeId, treeNode) {\n return treeNode.selectable;\n },\n beforeCheck(treeId, treeNode) {\n return props.beforeCheck ? props.beforeCheck(treeNode) : true;\n },\n onClick(e, treeId, treeNode) {\n // console.log('点击节点信息',treeNode)\n if (typeof props.onClick == 'function') {\n const selectedNodes = t.getSelectedNodes();\n props.onClick({\n key: treeNode.key,\n treeNode,\n selectedNodes,\n selectedKeys: selectedNodes.map(item => item.key),\n selectedNames: selectedNodes.map(item => item.name),\n });\n }\n },\n onCheck(e, treeId, treeNode) {\n // console.log('勾选节点信息',treeNode)\n if (typeof props.onCheck == 'function') {\n const checkedNodes = t.getCheckedNodes();\n props.onCheck({\n key: treeNode.key,\n isChecked: treeNode.checked,\n treeNode: t.zTreeObj.getChangeCheckedNodes(),\n checkedNodes,\n checkedKeys: checkedNodes.map(item => item.key),\n checkedNames: checkedNodes.map(item => item.name),\n });\n }\n },\n onExpand(e, treeId, treeNode) {\n // console.log('展开节点信息',treeNode)\n if (typeof props.onExpand == 'function') {\n props.onExpand({\n key: treeNode.key,\n isExpand: true,\n treeNode,\n expandedKeys: t.zTreeObj\n .getNodesByParam('open', true)\n .map(item => item.key),\n });\n }\n },\n onCollapse(e, treeId, treeNode) {\n // console.log('收起节点信息',treeNode)\n if (typeof props.onExpand == 'function') {\n props.onExpand({\n key: treeNode.key,\n isExpand: false,\n treeNode,\n expandedKeys: t.zTreeObj\n .getNodesByParam('open', true)\n .map(item => item.key),\n });\n }\n },\n onRightClick(e, treeId, treeNode) {\n // console.log('右击节点信息',treeNode);\n if (typeof props.onRightClick == 'function') {\n props.onRightClick({\n event: e,\n key: treeNode.key,\n treeNode,\n });\n }\n },\n onDblClick(e, treeId, treeNode) {\n // console.log('双击节点信息',treeNode);\n if (typeof props.onDblClick == 'function') {\n props.onDblClick({\n event: e,\n key: treeNode.key,\n treeNode,\n });\n }\n },\n },\n };\n // 继承外部配置\n if (typeof this.props.customCfg == 'object') {\n merge(this.treeSetting, this.props.customCfg);\n }\n }\n\n // 初始化树的数据,对expandedKeys,checkedKeys做处理\n initTreeNodes(props) {\n const t = this;\n this.keyNameMapping = {};\n if (!Array.isArray(props.data)) {\n this.treeNodes = [];\n } else {\n const checkedKeys = props.checkedKeys || [];\n const expandedKeys = props.expandedKeys || [];\n const chkDisabled = !!props.disableCheckboxAll;\n this.treeNodes = (function genNodes(nodes) {\n return nodes\n .map(item => {\n const checked = checkedKeys.indexOf(item.key) != -1;\n const open = expandedKeys.indexOf(item.key) != -1;\n t.keyNameMapping[item.key] = item.name;\n if (Array.isArray(item.children) && item.children.length > 0) {\n return {\n chkDisabled,\n selectable: true,\n ...item,\n checked,\n open,\n children: genNodes(item.children),\n };\n } else {\n return {\n chkDisabled,\n selectable: true,\n ...item,\n checked,\n open,\n };\n }\n })\n .map(item => {\n if (Array.isArray(item.children) && item.children.length > 0) {\n const newNode = { ...item };\n // 如果子节点全部被勾选,父节点自动勾选\n if (item.children.every(item => item.checked)) {\n newNode.checked = true;\n }\n // 如果配置了自动展开父节点,父节点自动展开\n if (props.autoExpandParent && item.children.some(item => item.open)) {\n newNode.open = true;\n }\n return newNode;\n } else {\n return item;\n }\n });\n })(props.data);\n }\n }\n\n // 重新生成树\n refreshTree(newProps) {\n this.zTreeObj && this.zTreeObj.destroy();\n this.initTreeSetting(newProps);\n this.initTreeNodes(newProps);\n this.zTreeObj = $.fn.zTree.init($(`#${this.treeId}`), this.treeSetting, this.treeNodes);\n if (Array.isArray(newProps.selectedKeys)) {\n this.selectNodes(newProps.selectedKeys, newProps.multiple);\n }\n // 初始化全展开判断\n if (newProps.defaultExpandAll && !newProps.expandedKeys) {\n this.zTreeObj.expandAll(true);\n }\n }\n\n // 展开或折叠相关节点,expandFlag为true表示展开,false表示折叠\n expandNodes(expandedKeys, expandFlag = true) {\n for (let i = 0, len = expandedKeys.length; i < len; i++) {\n const node = this.zTreeObj.getNodesByParam('key', expandedKeys[i]).pop();\n if (node) {\n this.zTreeObj.expandNode(node, expandFlag, false, false);\n }\n }\n }\n\n // 勾选节点, checkedFlag为true表示勾选,false表示取消勾选\n checkNodes(checkedKeys, checkedFlag = true) {\n for (let i = 0, len = checkedKeys.length; i < len; i++) {\n const node = this.zTreeObj.getNodesByParam('key', checkedKeys[i]).pop();\n if (node) {\n // 隐藏节点的勾选状态也要改变\n node.checked = checkedFlag;\n this.zTreeObj.updateNode(node, true);\n // this.zTreeObj.checkNode(node,checkedFlag,false);\n }\n }\n }\n\n // 点击选择节点\n selectNodes(selectedKeys, multiple) {\n for (let i = 0, len = selectedKeys.length; i < len; i++) {\n const node = this.zTreeObj.getNodesByParam('key', selectedKeys[i]).pop();\n if (node) {\n this.zTreeObj.selectNode(node, multiple, true);\n }\n }\n }\n\n // 取消选择节点\n cancelSelectedNodes(selectedKeys) {\n for (let i = 0, len = selectedKeys.length; i < len; i++) {\n const node = this.zTreeObj.getNodesByParam('key', selectedKeys[i]).pop();\n if (node) {\n this.zTreeObj.cancelSelectedNode(node);\n }\n }\n }\n\n fuzzySearch(keyworld, isHighLight = true) {\n const t = this;\n const nameKey = this.zTreeObj.setting.data.key.name; // get the key of the node name\n // isHighLight = isHighLight===false?false:true;//default true, only use false to disable highlight\n // isExpand = isExpand?true:false; // not to expand in default\n this.zTreeObj.setting.view.nameIsHTML = isHighLight; // allow use html in node name for highlight use\n\n const metaChar = '[\\\\[\\\\]\\\\\\\\^\\\\$\\\\.\\\\|\\\\?\\\\*\\\\+\\\\(\\\\)]'; // js meta characters\n const rexMeta = new RegExp(metaChar, 'gi'); // regular expression to match meta characters\n\n // searchNodeLazy(keyworld);\n ztreeFilter(t.zTreeObj, keyworld);\n\n // -----------------------------内部函数----------------------------------\n // keywords filter function\n function ztreeFilter(zTreeObj, _keywords) {\n if (!_keywords) {\n _keywords = ''; // default blank for _keywords\n }\n\n // function to find the matching node\n function filterFunc(node) {\n if (node && node.oldname && node.oldname.length > 0) {\n node[nameKey] = node.oldname; // recover oldname of the node if exist\n }\n zTreeObj.updateNode(node); // update node to for modifications take effect\n if (_keywords.length == 0) {\n // return true to show all nodes if the keyword is blank\n zTreeObj.showNode(node);\n // zTreeObj.expandNode(node,isExpand);\n return true;\n }\n // transform node name and keywords to lowercase\n if (\n node[nameKey] &&\n node[nameKey].toLowerCase().indexOf(_keywords.toLowerCase()) != -1\n ) {\n if (isHighLight) {\n // highlight process\n // a new variable 'newKeywords' created to store the keywords information\n // keep the parameter '_keywords' as initial and it will be used in next node\n // process the meta characters in _keywords thus the RegExp can be correctly used in str.replace\n const newKeywords = _keywords.replace(rexMeta, function(matchStr) {\n // add escape character before meta characters\n return '\\\\' + matchStr;\n });\n node.oldname = node[nameKey]; // store the old name\n const rexGlobal = new RegExp(newKeywords, 'gi'); // 'g' for global,'i' for ignore case\n // use replace(RegExp,replacement) since replace(/substr/g,replacement) cannot be used here\n node[nameKey] = node.oldname.replace(rexGlobal, function(originalText) {\n // highlight the matching words in node name\n const highLightText =\n '<span style=\"color: whitesmoke;background-color:#f50;\">' +\n originalText +\n '</span>';\n return highLightText;\n });\n zTreeObj.updateNode(node); // update node for modifications take effect\n }\n zTreeObj.showNode(node); // show node with matching keywords\n return true; // return true and show this node\n }\n\n zTreeObj.hideNode(node); // hide node that not matched\n return false; // return false for node not matched\n }\n\n const nodesShow = zTreeObj.getNodesByFilter(filterFunc); // get all nodes that would be shown\n processShowNodes(zTreeObj, nodesShow, _keywords); // nodes should be reprocessed to show correctly\n }\n\n /**\n * reprocess of nodes before showing\n */\n function processShowNodes(zTreeObj, nodesShow, _keywords) {\n if (nodesShow && nodesShow.length > 0) {\n // process the ancient nodes if _keywords is not blank\n if (_keywords.length > 0) {\n $.each(nodesShow, function(n, obj) {\n const pathOfOne = obj.getPath(); // get all the ancient nodes including current node\n if (pathOfOne && pathOfOne.length > 0) {\n // i < pathOfOne.length-1 process every node in path except self\n for (let i = 0; i < pathOfOne.length - 1; i++) {\n zTreeObj.showNode(pathOfOne[i]); // show node\n zTreeObj.expandNode(pathOfOne[i], true); // expand node\n }\n }\n });\n } else {\n // show all nodes when _keywords is blank and expand the root nodes\n const rootNodes = zTreeObj.getNodesByParam('level', '0'); // get all root nodes\n $.each(rootNodes, function(n, obj) {\n zTreeObj.expandNode(obj, true); // expand all root nodes\n });\n }\n }\n }\n }\n\n // 清空搜索框数据(供外部调用)\n clearSearch() {\n if (this.state.searchVal.trim() == '') return;\n this.setState({\n searchVal: '',\n });\n this.refreshTree(this.props);\n }\n\n // 获取所有已被勾选的节点\n getCheckedNodes() {\n return this.zTreeObj\n .getNodesByFilter(node => {\n // 节点被勾选(非半勾状态)\n if (this.props.checkStrictly) return node.checked;\n return node.checked && node.check_Child_State != 1;\n })\n .map(item => {\n return {\n ...item,\n name: item.oldname || item.name, // 搜索树会改变节点的name\n };\n });\n }\n\n // 获取所有已被点击选中的节点\n getSelectedNodes() {\n return this.zTreeObj.getSelectedNodes().map(item => {\n return {\n ...item,\n name: item.oldname || item.name,\n };\n });\n }\n\n // 展开所有节点(供外部调用)\n expandAll() {\n this.zTreeObj.expandAll(true);\n }\n\n // 收起所有节点(供外部调用)\n collapseAll() {\n this.zTreeObj.expandAll(false);\n }\n\n render() {\n const t = this;\n const { prefixCls, showSearch, searchPlaceholder } = t.props;\n return (\n <div\n className={classnames(`${prefixCls}-wraaper`, {\n [`${prefixCls}-has-search`]: showSearch,\n })}\n >\n {showSearch && (\n <div className={`${prefixCls}-search`}>\n <Input\n value={t.state.searchVal}\n placeholder={searchPlaceholder || '请输入要查询的关键字'}\n onChange={e => {\n t.setState({\n searchVal: e.target.value,\n });\n t.fuzzySearch(e.target.value.trim());\n }}\n />\n </div>\n )}\n <div id={this.treeId} className={classnames('ztree', prefixCls)} />\n </div>\n );\n }\n}\n\nVtxZtree.propTypes = {\n showSearch: PropTypes.bool,\n searchPlaceholder: PropTypes.string,\n data: PropTypes.array,\n refreshFlag: PropTypes.number,\n customCfg: PropTypes.object,\n checkStrictly: PropTypes.bool,\n};\n"],"mappings":";;;;;;;AAOA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEqBA,Q;;;;;EAMjB,kBAAYC,KAAZ,EAAmB;IAAA;;IAAA;;IACf,0BAAMA,KAAN;IACA,MAAKC,MAAL,kBAAsB,IAAIC,IAAJ,GAAWC,OAAX,EAAtB,cAA8CC,QAAQ,CAACC,IAAI,CAACC,MAAL,KAAgB,KAAjB,CAAtD;IACA,MAAKC,QAAL,GAAgB,IAAhB;IACA,MAAKC,WAAL,GAAmB,EAAnB;IACA,MAAKC,SAAL,GAAiB,EAAjB;IACA,MAAKC,cAAL,GAAsB,EAAtB;IACA,MAAKC,eAAL,GAAuB,IAAvB;IACA,MAAKC,WAAL,GAAmB,MAAKC,gBAAL,EAAnB;IACA,MAAKC,YAAL,GAAoB,KAApB;IACA,MAAKC,WAAL,GAAmB,IAAAC,mBAAA,EAAS,MAAKD,WAAL,CAAiBE,IAAjB,+BAAT,EAAsC,GAAtC,CAAnB;IACA,MAAKC,KAAL,GAAa;MACTC,SAAS,EAAE;IADF,CAAb;IAXe;EAclB;;;;WAED,4BAAmB;MACf,IAAI,CAACC,CAAC,CAACC,EAAF,CAAKC,KAAV,EAAiB;QACb,IAAMC,OAAO,GAAG,IAAIC,OAAJ,CAAY,UAAAC,OAAO,EAAI;UACnCL,CAAC,CAACM,SAAF,WAAeC,kBAAA,CAAOC,WAAtB,kCAAgE,YAAW;YACvER,CAAC,CAACM,SAAF,WAAeC,kBAAA,CAAOC,WAAtB,qCAAmE,YAAW;cAC1EH,OAAO;YACV,CAFD;UAGH,CAJD;QAKH,CANe,CAAhB;QAOAL,CAAC,CAAC,QAAD,CAAD,CACKS,IADL,CACU;UACFC,GAAG,EAAE,YADH;UAEFC,IAAI,EAAE,UAFJ;UAGFC,IAAI,YAAKL,kBAAA,CAAOC,WAAZ;QAHF,CADV,EAMKK,QANL,CAMc,MANd;QAOA,OAAOV,OAAP;MACH,CAhBD,MAgBO;QACH,OAAO,IAAIC,OAAJ,CAAY,UAAAC,OAAO,EAAI;UAC1BA,OAAO;QACV,CAFM,CAAP;MAGH;IACJ;;;WAED,6BAAoB;MAAA;;MAChB,KAAKb,WAAL,CAAiBsB,IAAjB,CAAsB,YAAM;QACxB,MAAI,CAACpB,YAAL,GAAoB,IAApB;;QACA,MAAI,CAACqB,WAAL,CAAiB,MAAI,CAACnC,KAAtB;MACH,CAHD;IAIH;;;WAED,4BAAmBoC,SAAnB,EAA8B;MAC1B,IAAI,CAAC,KAAKtB,YAAV,EAAwB;;MACxB,IACI,CAAC,IAAAuB,kBAAA,EAAQD,SAAS,CAACE,WAAlB,EAA+B,KAAKtC,KAAL,CAAWsC,WAA1C,CAAD,IACA,CAAC,IAAAD,kBAAA,EAAQD,SAAS,CAACG,IAAlB,EAAwB,KAAKvC,KAAL,CAAWuC,IAAnC,CAFL,EAGE;QACE,KAAKJ,WAAL,CAAiB,KAAKnC,KAAtB;MACH;IACJ;;;WAED,gCAAuB;MACnB,KAAKO,QAAL,IAAiB,KAAKA,QAAL,CAAciC,OAAd,EAAjB;IACH,C,CAED;;;;WACA,yBAAgBxC,KAAhB,EAAuB;MACnB,IAAMyC,CAAC,GAAG,IAAV,CADmB,CAEnB;;MACA,KAAKjC,WAAL,GAAmB;QACfkC,KAAK,EAAE;UACHC,MAAM,EAAE,CAAC,CAAC3C,KAAK,CAAC4C,SADb;UAEHC,UAAU,EAAE7C,KAAK,CAAC8C,aAAN,GAAsB;YAAEC,CAAC,EAAE,EAAL;YAASC,CAAC,EAAE;UAAZ,CAAtB,GAAyC;YAAED,CAAC,EAAE,IAAL;YAAWC,CAAC,EAAE;UAAd;QAFlD,CADQ;QAKfC,IAAI,EAAE;UACFC,aAAa,EAAE,CAAC,CAAClD,KAAK,CAACmD,QADrB;UAEFC,QAAQ,EAAE,IAFR;UAGFC,WAAW,EAAE,QAHX;UAIFC,SAAS,EAAE,KAJT;UAKFC,OAAO,EAAE,iBAACtD,MAAD,EAASuD,QAAT,EAAsB;YAC3B,OAAOA,QAAQ,CAACC,UAAT,GAAsB,EAAtB,GAA2B;cAAEC,KAAK,EAAE;YAAT,CAAlC;UACH;QAPC,CALS;QAcfC,QAAQ,EAAE;UACNC,WADM,uBACM3D,MADN,EACcuD,QADd,EACwB;YAC1B,OAAOA,QAAQ,CAACC,UAAhB;UACH,CAHK;UAINI,WAJM,uBAIM5D,MAJN,EAIcuD,QAJd,EAIwB;YAC1B,OAAOxD,KAAK,CAAC6D,WAAN,GAAoB7D,KAAK,CAAC6D,WAAN,CAAkBL,QAAlB,CAApB,GAAkD,IAAzD;UACH,CANK;UAONM,OAPM,mBAOEC,CAPF,EAOK9D,MAPL,EAOauD,QAPb,EAOuB;YACzB;YACA,IAAI,OAAOxD,KAAK,CAAC8D,OAAb,IAAwB,UAA5B,EAAwC;cACpC,IAAME,aAAa,GAAGvB,CAAC,CAACwB,gBAAF,EAAtB;cACAjE,KAAK,CAAC8D,OAAN,CAAc;gBACVI,GAAG,EAAEV,QAAQ,CAACU,GADJ;gBAEVV,QAAQ,EAARA,QAFU;gBAGVQ,aAAa,EAAbA,aAHU;gBAIVG,YAAY,EAAEH,aAAa,CAACI,GAAd,CAAkB,UAAAC,IAAI;kBAAA,OAAIA,IAAI,CAACH,GAAT;gBAAA,CAAtB,CAJJ;gBAKVI,aAAa,EAAEN,aAAa,CAACI,GAAd,CAAkB,UAAAC,IAAI;kBAAA,OAAIA,IAAI,CAACE,IAAT;gBAAA,CAAtB;cALL,CAAd;YAOH;UACJ,CAnBK;UAoBNC,OApBM,mBAoBET,CApBF,EAoBK9D,MApBL,EAoBauD,QApBb,EAoBuB;YACzB;YACA,IAAI,OAAOxD,KAAK,CAACwE,OAAb,IAAwB,UAA5B,EAAwC;cACpC,IAAMC,YAAY,GAAGhC,CAAC,CAACiC,eAAF,EAArB;cACA1E,KAAK,CAACwE,OAAN,CAAc;gBACVN,GAAG,EAAEV,QAAQ,CAACU,GADJ;gBAEVS,SAAS,EAAEnB,QAAQ,CAACoB,OAFV;gBAGVpB,QAAQ,EAAEf,CAAC,CAAClC,QAAF,CAAWsE,qBAAX,EAHA;gBAIVJ,YAAY,EAAZA,YAJU;gBAKVK,WAAW,EAAEL,YAAY,CAACL,GAAb,CAAiB,UAAAC,IAAI;kBAAA,OAAIA,IAAI,CAACH,GAAT;gBAAA,CAArB,CALH;gBAMVa,YAAY,EAAEN,YAAY,CAACL,GAAb,CAAiB,UAAAC,IAAI;kBAAA,OAAIA,IAAI,CAACE,IAAT;gBAAA,CAArB;cANJ,CAAd;YAQH;UACJ,CAjCK;UAkCNS,QAlCM,oBAkCGjB,CAlCH,EAkCM9D,MAlCN,EAkCcuD,QAlCd,EAkCwB;YAC1B;YACA,IAAI,OAAOxD,KAAK,CAACgF,QAAb,IAAyB,UAA7B,EAAyC;cACrChF,KAAK,CAACgF,QAAN,CAAe;gBACXd,GAAG,EAAEV,QAAQ,CAACU,GADH;gBAEXe,QAAQ,EAAE,IAFC;gBAGXzB,QAAQ,EAARA,QAHW;gBAIX0B,YAAY,EAAEzC,CAAC,CAAClC,QAAF,CACT4E,eADS,CACO,MADP,EACe,IADf,EAETf,GAFS,CAEL,UAAAC,IAAI;kBAAA,OAAIA,IAAI,CAACH,GAAT;gBAAA,CAFC;cAJH,CAAf;YAQH;UACJ,CA9CK;UA+CNkB,UA/CM,sBA+CKrB,CA/CL,EA+CQ9D,MA/CR,EA+CgBuD,QA/ChB,EA+C0B;YAC5B;YACA,IAAI,OAAOxD,KAAK,CAACgF,QAAb,IAAyB,UAA7B,EAAyC;cACrChF,KAAK,CAACgF,QAAN,CAAe;gBACXd,GAAG,EAAEV,QAAQ,CAACU,GADH;gBAEXe,QAAQ,EAAE,KAFC;gBAGXzB,QAAQ,EAARA,QAHW;gBAIX0B,YAAY,EAAEzC,CAAC,CAAClC,QAAF,CACT4E,eADS,CACO,MADP,EACe,IADf,EAETf,GAFS,CAEL,UAAAC,IAAI;kBAAA,OAAIA,IAAI,CAACH,GAAT;gBAAA,CAFC;cAJH,CAAf;YAQH;UACJ,CA3DK;UA4DNmB,YA5DM,wBA4DOtB,CA5DP,EA4DU9D,MA5DV,EA4DkBuD,QA5DlB,EA4D4B;YAC9B;YACA,IAAI,OAAOxD,KAAK,CAACqF,YAAb,IAA6B,UAAjC,EAA6C;cACzCrF,KAAK,CAACqF,YAAN,CAAmB;gBACfC,KAAK,EAAEvB,CADQ;gBAEfG,GAAG,EAAEV,QAAQ,CAACU,GAFC;gBAGfV,QAAQ,EAARA;cAHe,CAAnB;YAKH;UACJ,CArEK;UAsEN+B,UAtEM,sBAsEKxB,CAtEL,EAsEQ9D,MAtER,EAsEgBuD,QAtEhB,EAsE0B;YAC5B;YACA,IAAI,OAAOxD,KAAK,CAACuF,UAAb,IAA2B,UAA/B,EAA2C;cACvCvF,KAAK,CAACuF,UAAN,CAAiB;gBACbD,KAAK,EAAEvB,CADM;gBAEbG,GAAG,EAAEV,QAAQ,CAACU,GAFD;gBAGbV,QAAQ,EAARA;cAHa,CAAjB;YAKH;UACJ;QA/EK;MAdK,CAAnB,CAHmB,CAmGnB;;MACA,IAAI,QAAO,KAAKxD,KAAL,CAAWwF,SAAlB,KAA+B,QAAnC,EAA6C;QACzC,IAAAC,mBAAA,EAAM,KAAKjF,WAAX,EAAwB,KAAKR,KAAL,CAAWwF,SAAnC;MACH;IACJ,C,CAED;;;;WACA,uBAAcxF,KAAd,EAAqB;MACjB,IAAMyC,CAAC,GAAG,IAAV;MACA,KAAK/B,cAAL,GAAsB,EAAtB;;MACA,IAAI,CAACgF,KAAK,CAACC,OAAN,CAAc3F,KAAK,CAACuC,IAApB,CAAL,EAAgC;QAC5B,KAAK9B,SAAL,GAAiB,EAAjB;MACH,CAFD,MAEO;QACH,IAAMqE,WAAW,GAAG9E,KAAK,CAAC8E,WAAN,IAAqB,EAAzC;QACA,IAAMI,YAAY,GAAGlF,KAAK,CAACkF,YAAN,IAAsB,EAA3C;QACA,IAAMU,WAAW,GAAG,CAAC,CAAC5F,KAAK,CAAC6F,kBAA5B;;QACA,KAAKpF,SAAL,GAAkB,SAASqF,QAAT,CAAkBC,KAAlB,EAAyB;UACvC,OAAOA,KAAK,CACP3B,GADE,CACE,UAAAC,IAAI,EAAI;YACT,IAAMO,OAAO,GAAGE,WAAW,CAACkB,OAAZ,CAAoB3B,IAAI,CAACH,GAAzB,KAAiC,CAAC,CAAlD;YACA,IAAM+B,IAAI,GAAGf,YAAY,CAACc,OAAb,CAAqB3B,IAAI,CAACH,GAA1B,KAAkC,CAAC,CAAhD;YACAzB,CAAC,CAAC/B,cAAF,CAAiB2D,IAAI,CAACH,GAAtB,IAA6BG,IAAI,CAACE,IAAlC;;YACA,IAAImB,KAAK,CAACC,OAAN,CAActB,IAAI,CAAC6B,QAAnB,KAAgC7B,IAAI,CAAC6B,QAAL,CAAcC,MAAd,GAAuB,CAA3D,EAA8D;cAC1D;gBACIP,WAAW,EAAXA,WADJ;gBAEInC,UAAU,EAAE;cAFhB,GAGOY,IAHP;gBAIIO,OAAO,EAAPA,OAJJ;gBAKIqB,IAAI,EAAJA,IALJ;gBAMIC,QAAQ,EAAEJ,QAAQ,CAACzB,IAAI,CAAC6B,QAAN;cANtB;YAQH,CATD,MASO;cACH;gBACIN,WAAW,EAAXA,WADJ;gBAEInC,UAAU,EAAE;cAFhB,GAGOY,IAHP;gBAIIO,OAAO,EAAPA,OAJJ;gBAKIqB,IAAI,EAAJA;cALJ;YAOH;UACJ,CAvBE,EAwBF7B,GAxBE,CAwBE,UAAAC,IAAI,EAAI;YACT,IAAIqB,KAAK,CAACC,OAAN,CAActB,IAAI,CAAC6B,QAAnB,KAAgC7B,IAAI,CAAC6B,QAAL,CAAcC,MAAd,GAAuB,CAA3D,EAA8D;cAC1D,IAAMC,OAAO,qBAAQ/B,IAAR,CAAb,CAD0D,CAE1D;;;cACA,IAAIA,IAAI,CAAC6B,QAAL,CAAcG,KAAd,CAAoB,UAAAhC,IAAI;gBAAA,OAAIA,IAAI,CAACO,OAAT;cAAA,CAAxB,CAAJ,EAA+C;gBAC3CwB,OAAO,CAACxB,OAAR,GAAkB,IAAlB;cACH,CALyD,CAM1D;;;cACA,IAAI5E,KAAK,CAACsG,gBAAN,IAA0BjC,IAAI,CAAC6B,QAAL,CAAcK,IAAd,CAAmB,UAAAlC,IAAI;gBAAA,OAAIA,IAAI,CAAC4B,IAAT;cAAA,CAAvB,CAA9B,EAAqE;gBACjEG,OAAO,CAACH,IAAR,GAAe,IAAf;cACH;;cACD,OAAOG,OAAP;YACH,CAXD,MAWO;cACH,OAAO/B,IAAP;YACH;UACJ,CAvCE,CAAP;QAwCH,CAzCgB,CAyCdrE,KAAK,CAACuC,IAzCQ,CAAjB;MA0CH;IACJ,C,CAED;;;;WACA,qBAAYiE,QAAZ,EAAsB;MAClB,KAAKjG,QAAL,IAAiB,KAAKA,QAAL,CAAciC,OAAd,EAAjB;MACA,KAAKiE,eAAL,CAAqBD,QAArB;MACA,KAAKE,aAAL,CAAmBF,QAAnB;MACA,KAAKjG,QAAL,GAAgBa,CAAC,CAACC,EAAF,CAAKC,KAAL,CAAWqF,IAAX,CAAgBvF,CAAC,YAAK,KAAKnB,MAAV,EAAjB,EAAsC,KAAKO,WAA3C,EAAwD,KAAKC,SAA7D,CAAhB;;MACA,IAAIiF,KAAK,CAACC,OAAN,CAAca,QAAQ,CAACrC,YAAvB,CAAJ,EAA0C;QACtC,KAAKyC,WAAL,CAAiBJ,QAAQ,CAACrC,YAA1B,EAAwCqC,QAAQ,CAACrD,QAAjD;MACH,CAPiB,CAQlB;;;MACA,IAAIqD,QAAQ,CAACK,gBAAT,IAA6B,CAACL,QAAQ,CAACtB,YAA3C,EAAyD;QACrD,KAAK3E,QAAL,CAAcuG,SAAd,CAAwB,IAAxB;MACH;IACJ,C,CAED;;;;WACA,qBAAY5B,YAAZ,EAA6C;MAAA,IAAnB6B,UAAmB,uEAAN,IAAM;;MACzC,KAAK,IAAIC,CAAC,GAAG,CAAR,EAAWC,GAAG,GAAG/B,YAAY,CAACiB,MAAnC,EAA2Ca,CAAC,GAAGC,GAA/C,EAAoDD,CAAC,EAArD,EAAyD;QACrD,IAAME,IAAI,GAAG,KAAK3G,QAAL,CAAc4E,eAAd,CAA8B,KAA9B,EAAqCD,YAAY,CAAC8B,CAAD,CAAjD,EAAsDG,GAAtD,EAAb;;QACA,IAAID,IAAJ,EAAU;UACN,KAAK3G,QAAL,CAAc6G,UAAd,CAAyBF,IAAzB,EAA+BH,UAA/B,EAA2C,KAA3C,EAAkD,KAAlD;QACH;MACJ;IACJ,C,CAED;;;;WACA,oBAAWjC,WAAX,EAA4C;MAAA,IAApBuC,WAAoB,uEAAN,IAAM;;MACxC,KAAK,IAAIL,CAAC,GAAG,CAAR,EAAWC,GAAG,GAAGnC,WAAW,CAACqB,MAAlC,EAA0Ca,CAAC,GAAGC,GAA9C,EAAmDD,CAAC,EAApD,EAAwD;QACpD,IAAME,IAAI,GAAG,KAAK3G,QAAL,CAAc4E,eAAd,CAA8B,KAA9B,EAAqCL,WAAW,CAACkC,CAAD,CAAhD,EAAqDG,GAArD,EAAb;;QACA,IAAID,IAAJ,EAAU;UACN;UACAA,IAAI,CAACtC,OAAL,GAAeyC,WAAf;UACA,KAAK9G,QAAL,CAAc+G,UAAd,CAAyBJ,IAAzB,EAA+B,IAA/B,EAHM,CAIN;QACH;MACJ;IACJ,C,CAED;;;;WACA,qBAAY/C,YAAZ,EAA0BhB,QAA1B,EAAoC;MAChC,KAAK,IAAI6D,CAAC,GAAG,CAAR,EAAWC,GAAG,GAAG9C,YAAY,CAACgC,MAAnC,EAA2Ca,CAAC,GAAGC,GAA/C,EAAoDD,CAAC,EAArD,EAAyD;QACrD,IAAME,IAAI,GAAG,KAAK3G,QAAL,CAAc4E,eAAd,CAA8B,KAA9B,EAAqChB,YAAY,CAAC6C,CAAD,CAAjD,EAAsDG,GAAtD,EAAb;;QACA,IAAID,IAAJ,EAAU;UACN,KAAK3G,QAAL,CAAcgH,UAAd,CAAyBL,IAAzB,EAA+B/D,QAA/B,EAAyC,IAAzC;QACH;MACJ;IACJ,C,CAED;;;;WACA,6BAAoBgB,YAApB,EAAkC;MAC9B,KAAK,IAAI6C,CAAC,GAAG,CAAR,EAAWC,GAAG,GAAG9C,YAAY,CAACgC,MAAnC,EAA2Ca,CAAC,GAAGC,GAA/C,EAAoDD,CAAC,EAArD,EAAyD;QACrD,IAAME,IAAI,GAAG,KAAK3G,QAAL,CAAc4E,eAAd,CAA8B,KAA9B,EAAqChB,YAAY,CAAC6C,CAAD,CAAjD,EAAsDG,GAAtD,EAAb;;QACA,IAAID,IAAJ,EAAU;UACN,KAAK3G,QAAL,CAAciH,kBAAd,CAAiCN,IAAjC;QACH;MACJ;IACJ;;;WAED,qBAAYO,QAAZ,EAA0C;MAAA,IAApBC,WAAoB,uEAAN,IAAM;MACtC,IAAMjF,CAAC,GAAG,IAAV;MACA,IAAMkF,OAAO,GAAG,KAAKpH,QAAL,CAAcqH,OAAd,CAAsBrF,IAAtB,CAA2B2B,GAA3B,CAA+BK,IAA/C,CAFsC,CAEe;MACrD;MACA;;MACA,KAAKhE,QAAL,CAAcqH,OAAd,CAAsB3E,IAAtB,CAA2B4E,UAA3B,GAAwCH,WAAxC,CALsC,CAKe;;MAErD,IAAMI,QAAQ,GAAG,uCAAjB,CAPsC,CAOoB;;MAC1D,IAAMC,OAAO,GAAG,IAAIC,MAAJ,CAAWF,QAAX,EAAqB,IAArB,CAAhB,CARsC,CAQM;MAE5C;;MACAG,WAAW,CAACxF,CAAC,CAAClC,QAAH,EAAakH,QAAb,CAAX,CAXsC,CAatC;MACA;;MACA,SAASQ,WAAT,CAAqB1H,QAArB,EAA+B2H,SAA/B,EAA0C;QACtC,IAAI,CAACA,SAAL,EAAgB;UACZA,SAAS,GAAG,EAAZ,CADY,CACI;QACnB,CAHqC,CAKtC;;;QACA,SAASC,UAAT,CAAoBjB,IAApB,EAA0B;UACtB,IAAIA,IAAI,IAAIA,IAAI,CAACkB,OAAb,IAAwBlB,IAAI,CAACkB,OAAL,CAAajC,MAAb,GAAsB,CAAlD,EAAqD;YACjDe,IAAI,CAACS,OAAD,CAAJ,GAAgBT,IAAI,CAACkB,OAArB,CADiD,CACnB;UACjC;;UACD7H,QAAQ,CAAC+G,UAAT,CAAoBJ,IAApB,EAJsB,CAIK;;UAC3B,IAAIgB,SAAS,CAAC/B,MAAV,IAAoB,CAAxB,EAA2B;YACvB;YACA5F,QAAQ,CAAC8H,QAAT,CAAkBnB,IAAlB,EAFuB,CAGvB;;YACA,OAAO,IAAP;UACH,CAVqB,CAWtB;;;UACA,IACIA,IAAI,CAACS,OAAD,CAAJ,IACAT,IAAI,CAACS,OAAD,CAAJ,CAAcW,WAAd,GAA4BtC,OAA5B,CAAoCkC,SAAS,CAACI,WAAV,EAApC,KAAgE,CAAC,CAFrE,EAGE;YACE,IAAIZ,WAAJ,EAAiB;cACb;cACA;cACA;cACA;cACA,IAAMa,WAAW,GAAGL,SAAS,CAACM,OAAV,CAAkBT,OAAlB,EAA2B,UAASU,QAAT,EAAmB;gBAC9D;gBACA,OAAO,OAAOA,QAAd;cACH,CAHmB,CAApB;;cAIAvB,IAAI,CAACkB,OAAL,GAAelB,IAAI,CAACS,OAAD,CAAnB,CATa,CASiB;;cAC9B,IAAMe,SAAS,GAAG,IAAIV,MAAJ,CAAWO,WAAX,EAAwB,IAAxB,CAAlB,CAVa,CAUoC;cACjD;;cACArB,IAAI,CAACS,OAAD,CAAJ,GAAgBT,IAAI,CAACkB,OAAL,CAAaI,OAAb,CAAqBE,SAArB,EAAgC,UAASC,YAAT,EAAuB;gBACnE;gBACA,IAAMC,aAAa,GACf,4DACAD,YADA,GAEA,SAHJ;gBAIA,OAAOC,aAAP;cACH,CAPe,CAAhB;cAQArI,QAAQ,CAAC+G,UAAT,CAAoBJ,IAApB,EApBa,CAoBc;YAC9B;;YACD3G,QAAQ,CAAC8H,QAAT,CAAkBnB,IAAlB,EAvBF,CAuB2B;;YACzB,OAAO,IAAP,CAxBF,CAwBe;UAChB;;UAED3G,QAAQ,CAACsI,QAAT,CAAkB3B,IAAlB,EA1CsB,CA0CG;;UACzB,OAAO,KAAP,CA3CsB,CA2CR;QACjB;;QAED,IAAM4B,SAAS,GAAGvI,QAAQ,CAACwI,gBAAT,CAA0BZ,UAA1B,CAAlB,CApDsC,CAoDmB;;QACzDa,gBAAgB,CAACzI,QAAD,EAAWuI,SAAX,EAAsBZ,SAAtB,CAAhB,CArDsC,CAqDY;MACrD;MAED;AACR;AACA;;;MACQ,SAASc,gBAAT,CAA0BzI,QAA1B,EAAoCuI,SAApC,EAA+CZ,SAA/C,EAA0D;QACtD,IAAIY,SAAS,IAAIA,SAAS,CAAC3C,MAAV,GAAmB,CAApC,EAAuC;UACnC;UACA,IAAI+B,SAAS,CAAC/B,MAAV,GAAmB,CAAvB,EAA0B;YACtB/E,CAAC,CAAC6H,IAAF,CAAOH,SAAP,EAAkB,UAASI,CAAT,EAAYC,GAAZ,EAAiB;cAC/B,IAAMC,SAAS,GAAGD,GAAG,CAACE,OAAJ,EAAlB,CAD+B,CACE;;cACjC,IAAID,SAAS,IAAIA,SAAS,CAACjD,MAAV,GAAmB,CAApC,EAAuC;gBACnC;gBACA,KAAK,IAAIa,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGoC,SAAS,CAACjD,MAAV,GAAmB,CAAvC,EAA0Ca,CAAC,EAA3C,EAA+C;kBAC3CzG,QAAQ,CAAC8H,QAAT,CAAkBe,SAAS,CAACpC,CAAD,CAA3B,EAD2C,CACV;;kBACjCzG,QAAQ,CAAC6G,UAAT,CAAoBgC,SAAS,CAACpC,CAAD,CAA7B,EAAkC,IAAlC,EAF2C,CAEF;gBAC5C;cACJ;YACJ,CATD;UAUH,CAXD,MAWO;YACH;YACA,IAAMsC,SAAS,GAAG/I,QAAQ,CAAC4E,eAAT,CAAyB,OAAzB,EAAkC,GAAlC,CAAlB,CAFG,CAEuD;;YAC1D/D,CAAC,CAAC6H,IAAF,CAAOK,SAAP,EAAkB,UAASJ,CAAT,EAAYC,GAAZ,EAAiB;cAC/B5I,QAAQ,CAAC6G,UAAT,CAAoB+B,GAApB,EAAyB,IAAzB,EAD+B,CACC;YACnC,CAFD;UAGH;QACJ;MACJ;IACJ,C,CAED;;;;WACA,uBAAc;MACV,IAAI,KAAKjI,KAAL,CAAWC,SAAX,CAAqBoI,IAArB,MAA+B,EAAnC,EAAuC;MACvC,KAAKC,QAAL,CAAc;QACVrI,SAAS,EAAE;MADD,CAAd;MAGA,KAAKgB,WAAL,CAAiB,KAAKnC,KAAtB;IACH,C,CAED;;;;WACA,2BAAkB;MAAA;;MACd,OAAO,KAAKO,QAAL,CACFwI,gBADE,CACe,UAAA7B,IAAI,EAAI;QACtB;QACA,IAAI,MAAI,CAAClH,KAAL,CAAW8C,aAAf,EAA8B,OAAOoE,IAAI,CAACtC,OAAZ;QAC9B,OAAOsC,IAAI,CAACtC,OAAL,IAAgBsC,IAAI,CAACuC,iBAAL,IAA0B,CAAjD;MACH,CALE,EAMFrF,GANE,CAME,UAAAC,IAAI,EAAI;QACT,uCACOA,IADP;UAEIE,IAAI,EAAEF,IAAI,CAAC+D,OAAL,IAAgB/D,IAAI,CAACE,IAF/B,CAEqC;;QAFrC;MAIH,CAXE,CAAP;IAYH,C,CAED;;;;WACA,4BAAmB;MACf,OAAO,KAAKhE,QAAL,CAAc0D,gBAAd,GAAiCG,GAAjC,CAAqC,UAAAC,IAAI,EAAI;QAChD,uCACOA,IADP;UAEIE,IAAI,EAAEF,IAAI,CAAC+D,OAAL,IAAgB/D,IAAI,CAACE;QAF/B;MAIH,CALM,CAAP;IAMH,C,CAED;;;;WACA,qBAAY;MACR,KAAKhE,QAAL,CAAcuG,SAAd,CAAwB,IAAxB;IACH,C,CAED;;;;WACA,uBAAc;MACV,KAAKvG,QAAL,CAAcuG,SAAd,CAAwB,KAAxB;IACH;;;WAED,kBAAS;MACL,IAAMrE,CAAC,GAAG,IAAV;MACA,eAAqDA,CAAC,CAACzC,KAAvD;MAAA,IAAQ0J,SAAR,YAAQA,SAAR;MAAA,IAAmBC,UAAnB,YAAmBA,UAAnB;MAAA,IAA+BC,iBAA/B,YAA+BA,iBAA/B;MACA,oBACI;QACI,SAAS,EAAE,IAAAC,uBAAA,YAAcH,SAAd,6CACHA,SADG,kBACsBC,UADtB;MADf,GAKKA,UAAU,iBACP;QAAK,SAAS,YAAKD,SAAL;MAAd,gBACI,gCAAC,iBAAD;QACI,KAAK,EAAEjH,CAAC,CAACvB,KAAF,CAAQC,SADnB;QAEI,WAAW,EAAEyI,iBAAiB,IAAI,YAFtC;QAGI,QAAQ,EAAE,kBAAA7F,CAAC,EAAI;UACXtB,CAAC,CAAC+G,QAAF,CAAW;YACPrI,SAAS,EAAE4C,CAAC,CAAC+F,MAAF,CAASC;UADb,CAAX;UAGAtH,CAAC,CAAC1B,WAAF,CAAcgD,CAAC,CAAC+F,MAAF,CAASC,KAAT,CAAeR,IAAf,EAAd;QACH;MARL,EADJ,CANR,eAmBI;QAAK,EAAE,EAAE,KAAKtJ,MAAd;QAAsB,SAAS,EAAE,IAAA4J,uBAAA,EAAW,OAAX,EAAoBH,SAApB;MAAjC,EAnBJ,CADJ;IAuBH;;;;EAxciCM,iBAAA,CAAMC,S;;;;gBAAvBlK,Q,kBACK;EAClB4J,UAAU,EAAE,IADM;EAElBD,SAAS,EAAE;AAFO,C;;AA0c1B3J,QAAQ,CAACmK,SAAT,GAAqB;EACjBP,UAAU,EAAEQ,qBAAA,CAAUC,IADL;EAEjBR,iBAAiB,EAAEO,qBAAA,CAAUE,MAFZ;EAGjB9H,IAAI,EAAE4H,qBAAA,CAAUG,KAHC;EAIjBhI,WAAW,EAAE6H,qBAAA,CAAUI,MAJN;EAKjB/E,SAAS,EAAE2E,qBAAA,CAAUK,MALJ;EAMjB1H,aAAa,EAAEqH,qBAAA,CAAUC;AANR,CAArB"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["VtxZtree","props","treeId","Date","getTime","parseInt","Math","random","zTreeObj","treeSetting","treeNodes","keyNameMapping","searchTimeOutId","loadPromise","loadTreeResource","loadComplete","fuzzySearch","debounce","bind","state","searchVal","$","fn","zTree","treeAll","Promise","resolve","getScript","CONFIG","ztreeServer","attr","rel","type","href","appendTo","then","refreshTree","prevProps","isEqual","refreshFlag","data","destroy","t","check","enable","checkable","chkboxType","checkStrictly","Y","N","view","selectedMulti","multiple","showIcon","expandSpeed","showTitle","fontCss","treeNode","selectable","color","callback","beforeClick","beforeCheck","onClick","e","selectedNodes","getSelectedNodes","key","event","selectedKeys","map","item","selectedNames","name","onCheck","checkedNodes","getCheckedNodes","isChecked","checked","getChangeCheckedNodes","checkedKeys","checkedNames","onExpand","isExpand","expandedKeys","getNodesByParam","onCollapse","onRightClick","onDblClick","customCfg","merge","Array","isArray","chkDisabled","disableCheckboxAll","genNodes","nodes","indexOf","open","children","length","newNode","every","autoExpandParent","some","newProps","initTreeSetting","initTreeNodes","init","selectNodes","defaultExpandAll","expandAll","expandFlag","i","len","node","pop","expandNode","checkedFlag","updateNode","selectNode","cancelSelectedNode","keyworld","isHighLight","nameKey","setting","nameIsHTML","metaChar","rexMeta","RegExp","ztreeFilter","_keywords","filterFunc","oldname","showNode","toLowerCase","newKeywords","replace","matchStr","rexGlobal","originalText","highLightText","hideNode","nodesShow","getNodesByFilter","processShowNodes","each","n","obj","pathOfOne","getPath","rootNodes","trim","setState","check_Child_State","prefixCls","showSearch","searchPlaceholder","classnames","target","value","React","Component","propTypes","PropTypes","bool","string","array","number","object"],"sources":["vtx-ztree/index.jsx"],"sourcesContent":["/*\r\n * @Author: yemu\r\n * @Date: 2021-04-08 22:03:07\r\n * @LastEditTime: 2021-04-09 10:36:45\r\n * @LastEditors: yemu\r\n * @Description: 树形控件\r\n */\r\nimport React from 'react';\r\nimport Input from 'antd/lib/input';\r\nimport isEqual from 'lodash.isequal';\r\nimport merge from 'lodash.merge';\r\nimport debounce from 'lodash.debounce';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport CONFIG from '../config';\r\n\r\nexport default class VtxZtree extends React.Component {\r\n static defaultProps = {\r\n showSearch: true,\r\n prefixCls: 'vtx-ztree',\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.treeId = `tree-${new Date().getTime()}-${parseInt(Math.random() * 10000)}`;\r\n this.zTreeObj = null;\r\n this.treeSetting = {};\r\n this.treeNodes = [];\r\n this.keyNameMapping = {};\r\n this.searchTimeOutId = null;\r\n this.loadPromise = this.loadTreeResource();\r\n this.loadComplete = false;\r\n this.fuzzySearch = debounce(this.fuzzySearch.bind(this), 300);\r\n this.state = {\r\n searchVal: '',\r\n };\r\n }\r\n\r\n loadTreeResource() {\r\n if (!$.fn.zTree) {\r\n const treeAll = new Promise(resolve => {\r\n $.getScript(`${CONFIG.ztreeServer}/js/jquery.ztree.all.min.js`, function() {\r\n $.getScript(`${CONFIG.ztreeServer}/js/jquery.ztree.exhide.min.js`, function() {\r\n resolve();\r\n });\r\n });\r\n });\r\n $('<link>')\r\n .attr({\r\n rel: 'stylesheet',\r\n type: 'text/css',\r\n href: `${CONFIG.ztreeServer}/css/zTreeStyle/zTreeStyle.css`,\r\n })\r\n .appendTo('head');\r\n return treeAll;\r\n } else {\r\n return new Promise(resolve => {\r\n resolve();\r\n });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.loadPromise.then(() => {\r\n this.loadComplete = true;\r\n this.refreshTree(this.props);\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (!this.loadComplete) return;\r\n if (\r\n !isEqual(prevProps.refreshFlag, this.props.refreshFlag) ||\r\n !isEqual(prevProps.data, this.props.data)\r\n ) {\r\n this.refreshTree(this.props);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.zTreeObj && this.zTreeObj.destroy();\r\n }\r\n\r\n // 初始化树的配置\r\n initTreeSetting(props) {\r\n const t = this;\r\n // 初始化树的配置\r\n this.treeSetting = {\r\n check: {\r\n enable: !!props.checkable,\r\n chkboxType: props.checkStrictly ? { Y: '', N: '' } : { Y: 'ps', N: 'ps' },\r\n },\r\n view: {\r\n selectedMulti: !!props.multiple,\r\n showIcon: true,\r\n expandSpeed: 'normal',\r\n showTitle: false,\r\n fontCss: (treeId, treeNode) => {\r\n return treeNode.selectable ? {} : { color: '#B9B9B9' };\r\n },\r\n },\r\n callback: {\r\n beforeClick(treeId, treeNode) {\r\n return treeNode.selectable;\r\n },\r\n beforeCheck(treeId, treeNode) {\r\n return props.beforeCheck ? props.beforeCheck(treeNode) : true;\r\n },\r\n onClick(e, treeId, treeNode) {\r\n // console.log('点击节点信息',treeNode)\r\n if (typeof props.onClick == 'function') {\r\n const selectedNodes = t.getSelectedNodes();\r\n props.onClick({\r\n key: treeNode.key,\r\n event: e,\r\n treeNode,\r\n selectedNodes,\r\n selectedKeys: selectedNodes.map(item => item.key),\r\n selectedNames: selectedNodes.map(item => item.name),\r\n });\r\n }\r\n },\r\n onCheck(e, treeId, treeNode) {\r\n // console.log('勾选节点信息',treeNode)\r\n if (typeof props.onCheck == 'function') {\r\n const checkedNodes = t.getCheckedNodes();\r\n props.onCheck({\r\n key: treeNode.key,\r\n isChecked: treeNode.checked,\r\n treeNode: t.zTreeObj.getChangeCheckedNodes(),\r\n checkedNodes,\r\n checkedKeys: checkedNodes.map(item => item.key),\r\n checkedNames: checkedNodes.map(item => item.name),\r\n });\r\n }\r\n },\r\n onExpand(e, treeId, treeNode) {\r\n // console.log('展开节点信息',treeNode)\r\n if (typeof props.onExpand == 'function') {\r\n props.onExpand({\r\n key: treeNode.key,\r\n isExpand: true,\r\n treeNode,\r\n expandedKeys: t.zTreeObj\r\n .getNodesByParam('open', true)\r\n .map(item => item.key),\r\n });\r\n }\r\n },\r\n onCollapse(e, treeId, treeNode) {\r\n // console.log('收起节点信息',treeNode)\r\n if (typeof props.onExpand == 'function') {\r\n props.onExpand({\r\n key: treeNode.key,\r\n isExpand: false,\r\n treeNode,\r\n expandedKeys: t.zTreeObj\r\n .getNodesByParam('open', true)\r\n .map(item => item.key),\r\n });\r\n }\r\n },\r\n onRightClick(e, treeId, treeNode) {\r\n // console.log('右击节点信息',treeNode);\r\n if (typeof props.onRightClick == 'function') {\r\n props.onRightClick({\r\n event: e,\r\n key: treeNode.key,\r\n treeNode,\r\n });\r\n }\r\n },\r\n onDblClick(e, treeId, treeNode) {\r\n // console.log('双击节点信息',treeNode);\r\n if (typeof props.onDblClick == 'function') {\r\n props.onDblClick({\r\n event: e,\r\n key: treeNode.key,\r\n treeNode,\r\n });\r\n }\r\n },\r\n },\r\n };\r\n // 继承外部配置\r\n if (typeof this.props.customCfg == 'object') {\r\n merge(this.treeSetting, this.props.customCfg);\r\n }\r\n }\r\n\r\n // 初始化树的数据,对expandedKeys,checkedKeys做处理\r\n initTreeNodes(props) {\r\n const t = this;\r\n this.keyNameMapping = {};\r\n if (!Array.isArray(props.data)) {\r\n this.treeNodes = [];\r\n } else {\r\n const checkedKeys = props.checkedKeys || [];\r\n const expandedKeys = props.expandedKeys || [];\r\n const chkDisabled = !!props.disableCheckboxAll;\r\n this.treeNodes = (function genNodes(nodes) {\r\n return nodes\r\n .map(item => {\r\n const checked = checkedKeys.indexOf(item.key) != -1;\r\n const open = expandedKeys.indexOf(item.key) != -1;\r\n t.keyNameMapping[item.key] = item.name;\r\n if (Array.isArray(item.children) && item.children.length > 0) {\r\n return {\r\n chkDisabled,\r\n selectable: true,\r\n ...item,\r\n checked,\r\n open,\r\n children: genNodes(item.children),\r\n };\r\n } else {\r\n return {\r\n chkDisabled,\r\n selectable: true,\r\n ...item,\r\n checked,\r\n open,\r\n };\r\n }\r\n })\r\n .map(item => {\r\n if (Array.isArray(item.children) && item.children.length > 0) {\r\n const newNode = { ...item };\r\n // 如果子节点全部被勾选,父节点自动勾选\r\n if (item.children.every(item => item.checked)) {\r\n newNode.checked = true;\r\n }\r\n // 如果配置了自动展开父节点,父节点自动展开\r\n if (props.autoExpandParent && item.children.some(item => item.open)) {\r\n newNode.open = true;\r\n }\r\n return newNode;\r\n } else {\r\n return item;\r\n }\r\n });\r\n })(props.data);\r\n }\r\n }\r\n\r\n // 重新生成树\r\n refreshTree(newProps) {\r\n this.zTreeObj && this.zTreeObj.destroy();\r\n this.initTreeSetting(newProps);\r\n this.initTreeNodes(newProps);\r\n this.zTreeObj = $.fn.zTree.init($(`#${this.treeId}`), this.treeSetting, this.treeNodes);\r\n if (Array.isArray(newProps.selectedKeys)) {\r\n this.selectNodes(newProps.selectedKeys, newProps.multiple);\r\n }\r\n // 初始化全展开判断\r\n if (newProps.defaultExpandAll && !newProps.expandedKeys) {\r\n this.zTreeObj.expandAll(true);\r\n }\r\n }\r\n\r\n // 展开或折叠相关节点,expandFlag为true表示展开,false表示折叠\r\n expandNodes(expandedKeys, expandFlag = true) {\r\n for (let i = 0, len = expandedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', expandedKeys[i]).pop();\r\n if (node) {\r\n this.zTreeObj.expandNode(node, expandFlag, false, false);\r\n }\r\n }\r\n }\r\n\r\n // 勾选节点, checkedFlag为true表示勾选,false表示取消勾选\r\n checkNodes(checkedKeys, checkedFlag = true) {\r\n for (let i = 0, len = checkedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', checkedKeys[i]).pop();\r\n if (node) {\r\n // 隐藏节点的勾选状态也要改变\r\n node.checked = checkedFlag;\r\n this.zTreeObj.updateNode(node, true);\r\n // this.zTreeObj.checkNode(node,checkedFlag,false);\r\n }\r\n }\r\n }\r\n\r\n // 点击选择节点\r\n selectNodes(selectedKeys, multiple) {\r\n for (let i = 0, len = selectedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', selectedKeys[i]).pop();\r\n if (node) {\r\n this.zTreeObj.selectNode(node, multiple, true);\r\n }\r\n }\r\n }\r\n\r\n // 取消选择节点\r\n cancelSelectedNodes(selectedKeys) {\r\n for (let i = 0, len = selectedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', selectedKeys[i]).pop();\r\n if (node) {\r\n this.zTreeObj.cancelSelectedNode(node);\r\n }\r\n }\r\n }\r\n\r\n fuzzySearch(keyworld, isHighLight = true) {\r\n const t = this;\r\n const nameKey = this.zTreeObj.setting.data.key.name; // get the key of the node name\r\n // isHighLight = isHighLight===false?false:true;//default true, only use false to disable highlight\r\n // isExpand = isExpand?true:false; // not to expand in default\r\n this.zTreeObj.setting.view.nameIsHTML = isHighLight; // allow use html in node name for highlight use\r\n\r\n const metaChar = '[\\\\[\\\\]\\\\\\\\^\\\\$\\\\.\\\\|\\\\?\\\\*\\\\+\\\\(\\\\)]'; // js meta characters\r\n const rexMeta = new RegExp(metaChar, 'gi'); // regular expression to match meta characters\r\n\r\n // searchNodeLazy(keyworld);\r\n ztreeFilter(t.zTreeObj, keyworld);\r\n\r\n // -----------------------------内部函数----------------------------------\r\n // keywords filter function\r\n function ztreeFilter(zTreeObj, _keywords) {\r\n if (!_keywords) {\r\n _keywords = ''; // default blank for _keywords\r\n }\r\n\r\n // function to find the matching node\r\n function filterFunc(node) {\r\n if (node && node.oldname && node.oldname.length > 0) {\r\n node[nameKey] = node.oldname; // recover oldname of the node if exist\r\n }\r\n zTreeObj.updateNode(node); // update node to for modifications take effect\r\n if (_keywords.length == 0) {\r\n // return true to show all nodes if the keyword is blank\r\n zTreeObj.showNode(node);\r\n // zTreeObj.expandNode(node,isExpand);\r\n return true;\r\n }\r\n // transform node name and keywords to lowercase\r\n if (\r\n node[nameKey] &&\r\n node[nameKey].toLowerCase().indexOf(_keywords.toLowerCase()) != -1\r\n ) {\r\n if (isHighLight) {\r\n // highlight process\r\n // a new variable 'newKeywords' created to store the keywords information\r\n // keep the parameter '_keywords' as initial and it will be used in next node\r\n // process the meta characters in _keywords thus the RegExp can be correctly used in str.replace\r\n const newKeywords = _keywords.replace(rexMeta, function(matchStr) {\r\n // add escape character before meta characters\r\n return '\\\\' + matchStr;\r\n });\r\n node.oldname = node[nameKey]; // store the old name\r\n const rexGlobal = new RegExp(newKeywords, 'gi'); // 'g' for global,'i' for ignore case\r\n // use replace(RegExp,replacement) since replace(/substr/g,replacement) cannot be used here\r\n node[nameKey] = node.oldname.replace(rexGlobal, function(originalText) {\r\n // highlight the matching words in node name\r\n const highLightText =\r\n '<span style=\"color: whitesmoke;background-color:#f50;\">' +\r\n originalText +\r\n '</span>';\r\n return highLightText;\r\n });\r\n zTreeObj.updateNode(node); // update node for modifications take effect\r\n }\r\n zTreeObj.showNode(node); // show node with matching keywords\r\n return true; // return true and show this node\r\n }\r\n\r\n zTreeObj.hideNode(node); // hide node that not matched\r\n return false; // return false for node not matched\r\n }\r\n\r\n const nodesShow = zTreeObj.getNodesByFilter(filterFunc); // get all nodes that would be shown\r\n processShowNodes(zTreeObj, nodesShow, _keywords); // nodes should be reprocessed to show correctly\r\n }\r\n\r\n /**\r\n * reprocess of nodes before showing\r\n */\r\n function processShowNodes(zTreeObj, nodesShow, _keywords) {\r\n if (nodesShow && nodesShow.length > 0) {\r\n // process the ancient nodes if _keywords is not blank\r\n if (_keywords.length > 0) {\r\n $.each(nodesShow, function(n, obj) {\r\n const pathOfOne = obj.getPath(); // get all the ancient nodes including current node\r\n if (pathOfOne && pathOfOne.length > 0) {\r\n // i < pathOfOne.length-1 process every node in path except self\r\n for (let i = 0; i < pathOfOne.length - 1; i++) {\r\n zTreeObj.showNode(pathOfOne[i]); // show node\r\n zTreeObj.expandNode(pathOfOne[i], true); // expand node\r\n }\r\n }\r\n });\r\n } else {\r\n // show all nodes when _keywords is blank and expand the root nodes\r\n const rootNodes = zTreeObj.getNodesByParam('level', '0'); // get all root nodes\r\n $.each(rootNodes, function(n, obj) {\r\n zTreeObj.expandNode(obj, true); // expand all root nodes\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n // 清空搜索框数据(供外部调用)\r\n clearSearch() {\r\n if (this.state.searchVal.trim() == '') return;\r\n this.setState({\r\n searchVal: '',\r\n });\r\n this.refreshTree(this.props);\r\n }\r\n\r\n // 获取所有已被勾选的节点\r\n getCheckedNodes() {\r\n return this.zTreeObj\r\n .getNodesByFilter(node => {\r\n // 节点被勾选(非半勾状态)\r\n if (this.props.checkStrictly) return node.checked;\r\n return node.checked && node.check_Child_State != 1;\r\n })\r\n .map(item => {\r\n return {\r\n ...item,\r\n name: item.oldname || item.name, // 搜索树会改变节点的name\r\n };\r\n });\r\n }\r\n\r\n // 获取所有已被点击选中的节点\r\n getSelectedNodes() {\r\n return this.zTreeObj.getSelectedNodes().map(item => {\r\n return {\r\n ...item,\r\n name: item.oldname || item.name,\r\n };\r\n });\r\n }\r\n\r\n // 展开所有节点(供外部调用)\r\n expandAll() {\r\n this.zTreeObj.expandAll(true);\r\n }\r\n\r\n // 收起所有节点(供外部调用)\r\n collapseAll() {\r\n this.zTreeObj.expandAll(false);\r\n }\r\n\r\n render() {\r\n const t = this;\r\n const { prefixCls, showSearch, searchPlaceholder } = t.props;\r\n return (\r\n <div\r\n className={classnames(`${prefixCls}-wraaper`, {\r\n [`${prefixCls}-has-search`]: showSearch,\r\n })}\r\n >\r\n {showSearch && (\r\n <div className={`${prefixCls}-search`}>\r\n <Input\r\n value={t.state.searchVal}\r\n placeholder={searchPlaceholder || '请输入要查询的关键字'}\r\n onChange={e => {\r\n t.setState({\r\n searchVal: e.target.value,\r\n });\r\n t.fuzzySearch(e.target.value.trim());\r\n }}\r\n />\r\n </div>\r\n )}\r\n <div id={this.treeId} className={classnames('ztree', prefixCls)} />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nVtxZtree.propTypes = {\r\n showSearch: PropTypes.bool,\r\n searchPlaceholder: PropTypes.string,\r\n data: PropTypes.array,\r\n refreshFlag: PropTypes.number,\r\n customCfg: PropTypes.object,\r\n checkStrictly: PropTypes.bool,\r\n};\r\n"],"mappings":"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"}
|