feffery_utils_components 0.2.0-rc23 → 0.2.0-rc25
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/DESCRIPTION +1 -1
- package/MANIFEST.in +3 -8
- package/NAMESPACE +50 -49
- package/Project.toml +1 -1
- package/README.md +1 -1
- package/feffery_utils_components/FefferyDiv.py +12 -3
- package/feffery_utils_components/FefferyEventSource.py +11 -3
- package/feffery_utils_components/FefferyMotion.py +9 -3
- package/feffery_utils_components/FefferyNetwork.py +69 -0
- package/feffery_utils_components/__init__.py +1 -2
- package/feffery_utils_components/_imports_.py +100 -98
- package/feffery_utils_components/alias.py +2 -0
- package/feffery_utils_components/async-feffery_animated_3d_background_p5.js +3 -1
- package/feffery_utils_components/async-feffery_animated_3d_background_p5.js.map +1 -0
- package/feffery_utils_components/async-feffery_animated_3d_background_three.js +3 -1
- package/feffery_utils_components/async-feffery_animated_3d_background_three.js.map +1 -0
- package/feffery_utils_components/async-feffery_animated_image.js +4 -1
- package/feffery_utils_components/async-feffery_animated_image.js.map +1 -0
- package/feffery_utils_components/async-feffery_aplayer.js +3 -1
- package/feffery_utils_components/async-feffery_aplayer.js.map +1 -0
- package/feffery_utils_components/async-feffery_auto_animate.js +3 -1
- package/feffery_utils_components/async-feffery_auto_animate.js.map +1 -0
- package/feffery_utils_components/async-feffery_auto_fit.js +3 -10
- package/feffery_utils_components/async-feffery_auto_fit.js.map +1 -0
- package/feffery_utils_components/async-feffery_burger.js +3 -1
- package/feffery_utils_components/async-feffery_burger.js.map +1 -0
- package/feffery_utils_components/async-feffery_captcha.js +3 -1
- package/feffery_utils_components/async-feffery_captcha.js.map +1 -0
- package/feffery_utils_components/async-feffery_color_pickers.js +4 -1
- package/feffery_utils_components/async-feffery_color_pickers.js.map +1 -0
- package/feffery_utils_components/async-feffery_dom2image.js +4 -4
- package/feffery_utils_components/async-feffery_dom2image.js.map +1 -0
- package/feffery_utils_components/async-feffery_dplayer.js +4 -1
- package/feffery_utils_components/async-feffery_dplayer.js.map +1 -0
- package/feffery_utils_components/async-feffery_emoji_picker.js +4 -1
- package/feffery_utils_components/async-feffery_emoji_picker.js.map +1 -0
- package/feffery_utils_components/async-feffery_excel_preview.js +4 -1
- package/feffery_utils_components/async-feffery_excel_preview.js.map +1 -0
- package/feffery_utils_components/async-feffery_extra_spinner.js +4 -1
- package/feffery_utils_components/async-feffery_extra_spinner.js.map +1 -0
- package/feffery_utils_components/async-feffery_fancy_button.js +3 -1
- package/feffery_utils_components/async-feffery_fancy_button.js.map +1 -0
- package/feffery_utils_components/async-feffery_grid.js +3 -1
- package/feffery_utils_components/async-feffery_grid.js.map +1 -0
- package/feffery_utils_components/async-feffery_http_requests.js +4 -1
- package/feffery_utils_components/async-feffery_http_requests.js.map +1 -0
- package/feffery_utils_components/async-feffery_image_cropper.js +4 -1
- package/feffery_utils_components/async-feffery_image_cropper.js.map +1 -0
- package/feffery_utils_components/async-feffery_json_viewer.js +3 -1
- package/feffery_utils_components/async-feffery_json_viewer.js.map +1 -0
- package/feffery_utils_components/async-feffery_local_large_storage.js +4 -1
- package/feffery_utils_components/async-feffery_local_large_storage.js.map +1 -0
- package/feffery_utils_components/async-feffery_markdown_editor.js +3 -3
- package/feffery_utils_components/async-feffery_markdown_editor.js.map +1 -0
- package/feffery_utils_components/async-feffery_motion.js +3 -1
- package/feffery_utils_components/async-feffery_motion.js.map +1 -0
- package/feffery_utils_components/async-feffery_music_player.js +4 -1
- package/feffery_utils_components/async-feffery_music_player.js.map +1 -0
- package/feffery_utils_components/async-feffery_photo_sphere_viewer.js +4 -1
- package/feffery_utils_components/async-feffery_photo_sphere_viewer.js.LICENSE.txt +5 -5
- package/feffery_utils_components/async-feffery_photo_sphere_viewer.js.map +1 -0
- package/feffery_utils_components/async-feffery_resizable.js +3 -1
- package/feffery_utils_components/async-feffery_resizable.js.map +1 -0
- package/feffery_utils_components/async-feffery_rich_text_editor.js +4 -4
- package/feffery_utils_components/async-feffery_rich_text_editor.js.map +1 -0
- package/feffery_utils_components/async-feffery_rnd.js +3 -1
- package/feffery_utils_components/async-feffery_rnd.js.map +1 -0
- package/feffery_utils_components/async-feffery_seamless_scroll.js +3 -1
- package/feffery_utils_components/async-feffery_seamless_scroll.js.map +1 -0
- package/feffery_utils_components/async-feffery_shortcut_panel.js +32 -29
- package/feffery_utils_components/async-feffery_shortcut_panel.js.map +1 -0
- package/feffery_utils_components/async-feffery_slider_captcha.js +4 -1
- package/feffery_utils_components/async-feffery_slider_captcha.js.map +1 -0
- package/feffery_utils_components/async-feffery_sortable.js +3 -1
- package/feffery_utils_components/async-feffery_sortable.js.map +1 -0
- package/feffery_utils_components/async-feffery_vditor.js +4 -1
- package/feffery_utils_components/async-feffery_vditor.js.LICENSE.txt +26 -0
- package/feffery_utils_components/async-feffery_vditor.js.map +1 -0
- package/feffery_utils_components/async-feffery_word_preview.js +4 -1
- package/feffery_utils_components/async-feffery_word_preview.js.map +1 -0
- package/feffery_utils_components/async-fuc-shared.js +4 -135
- package/feffery_utils_components/async-fuc-shared.js.map +1 -0
- package/feffery_utils_components/feffery_utils_components.min.js +27 -30
- package/feffery_utils_components/feffery_utils_components.min.js.LICENSE.txt +0 -8
- package/feffery_utils_components/feffery_utils_components.min.js.map +1 -0
- package/feffery_utils_components/metadata.json +11388 -11129
- package/feffery_utils_components/package-info.json +2 -2
- package/package.json +2 -2
- package/setup.py +7 -5
- package/src/lib/components/animations/FefferyMotion.react.js +12 -0
- package/src/lib/components/{FefferyEventSource.react.js → communication/FefferyEventSource.react.js} +21 -1
- package/src/lib/components/{FefferyHttpRequests.react.js → communication/FefferyHttpRequests.react.js} +1 -1
- package/src/lib/components/{FefferyDiv.react.js → container/FefferyDiv.react.js} +115 -56
- package/src/lib/components/{FefferyHighlightWords.react.js → container/FefferyHighlightWords.react.js} +0 -1
- package/src/lib/components/{FefferyPortal.react.js → container/FefferyPortal.react.js} +0 -1
- package/src/lib/components/{FefferySticky.react.js → container/FefferySticky.react.js} +0 -1
- package/src/lib/components/{FefferyJsonViewer.react.js → dataDisplay/FefferyJsonViewer.react.js} +1 -1
- package/src/lib/components/{FefferyQRCode.react.js → dataDisplay/FefferyQRCode.react.js} +1 -1
- package/src/lib/components/{FefferySeamlessScroll.react.js → dataDisplay/FefferySeamlessScroll.react.js} +1 -1
- package/src/lib/components/{FefferyEmojiPicker.react.js → dataInput/FefferyEmojiPicker.react.js} +3 -3
- package/src/lib/components/{FefferyImagePaste.react.js → dataInput/FefferyImagePaste.react.js} +1 -1
- package/src/lib/components/{sortable → draggable}/FefferySortable.react.js +1 -1
- package/src/lib/components/{officePreview → filePreview}/FefferyExcelPreview.react.js +1 -1
- package/src/lib/components/{officePreview → filePreview}/FefferyWordPreview.react.js +1 -1
- package/src/lib/components/{FefferyBurger.react.js → general/FefferyBurger.react.js} +1 -1
- package/src/lib/components/{FefferyFancyButton.react.js → general/FefferyFancyButton.react.js} +1 -1
- package/src/lib/components/{FefferyAnimatedImage.react.js → images/FefferyAnimatedImage.react.js} +1 -1
- package/src/lib/components/{FefferyDom2Image.react.js → images/FefferyDom2Image.react.js} +1 -1
- package/src/lib/components/{FefferyPhotoSphereViewer.react.js → images/FefferyPhotoSphereViewer.react.js} +1 -1
- package/src/lib/components/listeners/FefferyNetwork.react.js +112 -0
- package/src/lib/components/{FefferyExtraSpinner.react.js → loadingAnimations/FefferyExtraSpinner.react.js} +1 -1
- package/src/lib/components/{FefferyTopProgress.react.js → loadingAnimations/FefferyTopProgress.react.js} +1 -1
- package/src/lib/components/{FefferyGuide.react.js → other/FefferyGuide.react.js} +1 -2
- package/src/lib/components/{FefferyShortcutPanel.react.js → other/FefferyShortcutPanel.react.js} +1 -1
- package/src/lib/components/{FefferyCaptcha.react.js → verification/FefferyCaptcha.react.js} +1 -1
- package/src/lib/components/{FefferySliderCaptcha.react.js → verification/FefferySliderCaptcha.react.js} +1 -1
- package/src/lib/fragments/animations/FefferyMotion.react.js +30 -23
- package/src/lib/fragments/{FefferyHttpRequests.react.js → communication/FefferyHttpRequests.react.js} +1 -1
- package/src/lib/fragments/{FefferyJsonViewer.react.js → dataDisplay/FefferyJsonViewer.react.js} +3 -3
- package/src/lib/fragments/{FefferySeamlessScroll.react.js → dataDisplay/FefferySeamlessScroll.react.js} +4 -4
- package/src/lib/fragments/{FefferyEmojiPicker.react.js → dataInput/FefferyEmojiPicker.react.js} +1 -1
- package/src/lib/fragments/draggable/FefferyGrid.react.js +1 -1
- package/src/lib/fragments/{sortable → draggable}/FefferySortable.react.js +1 -1
- package/src/lib/fragments/editor/FefferyMarkdownEditor.react.js +1 -1
- package/src/lib/fragments/{officePreview → filePreview}/FefferyExcelPreview.react.js +1 -1
- package/src/lib/fragments/{officePreview → filePreview}/FefferyWordPreview.react.js +1 -1
- package/src/lib/fragments/{FefferyBurger.react.js → general/FefferyBurger.react.js} +1 -1
- package/src/lib/fragments/{FefferyFancyButton.react.js → general/FefferyFancyButton.react.js} +2 -2
- package/src/lib/fragments/{FefferyAnimatedImage.react.js → images/FefferyAnimatedImage.react.js} +1 -1
- package/src/lib/fragments/{FefferyDom2Image.react.js → images/FefferyDom2Image.react.js} +1 -1
- package/src/lib/fragments/{FefferyPhotoSphereViewer.react.js → images/FefferyPhotoSphereViewer.react.js} +1 -1
- package/src/lib/fragments/{FefferyExtraSpinner.react.js → loadingAnimations/FefferyExtraSpinner.react.js} +1 -1
- package/src/lib/fragments/{FefferyShortcutPanel.react.js → other/FefferyShortcutPanel.react.js} +2 -2
- package/src/lib/fragments/{FefferyCaptcha.react.js → verification/FefferyCaptcha.react.js} +1 -1
- package/src/lib/fragments/{FefferySliderCaptcha.react.js → verification/FefferySliderCaptcha.react.js} +1 -1
- package/src/lib/index.js +246 -195
- package/tests/MotionTest/app.py +50 -0
- package/usage.py +30 -10
- package/webpack.config.js +3 -11
- /package/src/lib/components/{messenger → communication}/FefferyIframeMessenger.react.js +0 -0
- /package/src/lib/components/{messenger → communication}/FefferyTabMessenger.react.js +0 -0
- /package/src/lib/components/{FefferyWebSocket.react.js → communication/FefferyWebSocket.react.js} +0 -0
- /package/src/lib/components/{FefferyScrollbars.react.js → container/FefferyScrollbars.react.js} +0 -0
- /package/src/lib/components/{FefferyShadowDom.react.js → container/FefferyShadowDom.react.js} +0 -0
- /package/src/lib/components/{FefferyCompareSlider.react.js → dataDisplay/FefferyCompareSlider.react.js} +0 -0
- /package/src/lib/components/{FefferyCountUp.react.js → dataDisplay/FefferyCountUp.react.js} +0 -0
- /package/src/lib/components/{FefferyRawHTML.react.js → dataDisplay/FefferyRawHTML.react.js} +0 -0
- /package/src/lib/components/{FefferyFancyMessage.js → feedback/FefferyFancyMessage.js} +0 -0
- /package/src/lib/components/{FefferyFancyNotification.js → feedback/FefferyFancyNotification.js} +0 -0
- /package/src/lib/components/{FefferyCountDown.react.js → other/FefferyCountDown.react.js} +0 -0
- /package/src/lib/components/{FefferyExecuteJs.react.js → other/FefferyExecuteJs.react.js} +0 -0
- /package/src/lib/components/{FefferyTimeout.react.js → other/FefferyTimeout.react.js} +0 -0
- /package/src/lib/components/{FefferyFullscreen.react.js → pageControl/FefferyFullscreen.react.js} +0 -0
- /package/src/lib/components/{FefferyReload.react.js → pageControl/FefferyReload.react.js} +0 -0
- /package/src/lib/components/{FefferyScroll.react.js → pageControl/FefferyScroll.react.js} +0 -0
- /package/src/lib/components/{FefferySetFavicon.react.js → pageControl/FefferySetFavicon.react.js} +0 -0
- /package/src/lib/components/{FefferySetTitle.react.js → pageControl/FefferySetTitle.react.js} +0 -0
- /package/src/lib/components/{store → performance}/FefferyDebounceProp.react.js +0 -0
- /package/src/lib/components/{FefferyLazyLoad.react.js → performance/FefferyLazyLoad.react.js} +0 -0
- /package/src/lib/components/{store → performance}/FefferyThrottleProp.react.js +0 -0
- /package/src/lib/components/{FefferyVirtualList.react.js → performance/FefferyVirtualList.react.js} +0 -0
- /package/src/lib/components/{FefferyExternalCss.react.js → staticResourceControl/FefferyExternalCss.react.js} +0 -0
- /package/src/lib/components/{FefferyExternalJs.react.js → staticResourceControl/FefferyExternalJs.react.js} +0 -0
- /package/src/lib/components/{FefferyCssVar.react.js → styleControl/FefferyCssVar.react.js} +0 -0
- /package/src/lib/components/{FefferyStyle.react.js → styleControl/FefferyStyle.react.js} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "feffery_utils_components",
|
|
3
|
-
"version": "0.2.0-
|
|
3
|
+
"version": "0.2.0-rc25",
|
|
4
4
|
"description": "Build more utility components for Plotly Dash.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
"react": "^16.8.6",
|
|
135
135
|
"react-docgen": "^5.4.3",
|
|
136
136
|
"react-dom": "^16.8.6",
|
|
137
|
-
"sass": "
|
|
137
|
+
"sass": "1.77.6",
|
|
138
138
|
"sass-loader": "^10.0.0",
|
|
139
139
|
"style-loader": "^0.23.1",
|
|
140
140
|
"styled-jsx": "^3.4.7",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "feffery_utils_components",
|
|
3
|
-
"version": "0.2.0-
|
|
3
|
+
"version": "0.2.0-rc25",
|
|
4
4
|
"description": "Build more utility components for Plotly Dash.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
"react": "^16.8.6",
|
|
135
135
|
"react-docgen": "^5.4.3",
|
|
136
136
|
"react-dom": "^16.8.6",
|
|
137
|
-
"sass": "
|
|
137
|
+
"sass": "1.77.6",
|
|
138
138
|
"sass-loader": "^10.0.0",
|
|
139
139
|
"style-loader": "^0.23.1",
|
|
140
140
|
"styled-jsx": "^3.4.7",
|
package/setup.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import io
|
|
1
2
|
import json
|
|
2
|
-
import os
|
|
3
3
|
from setuptools import setup
|
|
4
4
|
|
|
5
5
|
|
|
@@ -11,21 +11,23 @@ package_name = package["name"].replace(" ", "_").replace("-", "_")
|
|
|
11
11
|
setup(
|
|
12
12
|
name=package_name,
|
|
13
13
|
version=package["version"],
|
|
14
|
-
author=package['author'],
|
|
15
14
|
author_email=package['email'],
|
|
15
|
+
homepage='https://github.com/CNFeffery/feffery-utils-components',
|
|
16
|
+
author=package['author'],
|
|
16
17
|
packages=[package_name],
|
|
17
18
|
include_package_data=True,
|
|
18
19
|
package_data={
|
|
19
|
-
'
|
|
20
|
+
'feffery_utils_components': ['*']
|
|
20
21
|
},
|
|
21
22
|
license=package['license'],
|
|
22
23
|
description=package.get('description', package_name),
|
|
24
|
+
long_description=io.open("README.md", encoding="utf-8").read(),
|
|
25
|
+
long_description_content_type="text/markdown",
|
|
23
26
|
install_requires=[
|
|
24
|
-
'dash>=2.
|
|
27
|
+
'dash>=2.17.1'
|
|
25
28
|
],
|
|
26
29
|
classifiers=[
|
|
27
30
|
'Framework :: Dash',
|
|
28
31
|
],
|
|
29
|
-
homepage='https://github.com/CNFeffery/feffery-utils-components',
|
|
30
32
|
url='https://github.com/CNFeffery/feffery-utils-components'
|
|
31
33
|
)
|
|
@@ -183,6 +183,17 @@ FefferyMotion.propTypes = {
|
|
|
183
183
|
*/
|
|
184
184
|
variants: PropTypes.objectOf(PropTypes.object),
|
|
185
185
|
|
|
186
|
+
/**
|
|
187
|
+
* 监听当前组件的`animate`目标动画过程是否已完成
|
|
188
|
+
*/
|
|
189
|
+
animated: PropTypes.bool,
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* 是否在动画完成后销毁当前组件
|
|
193
|
+
* 默认值:`false`
|
|
194
|
+
*/
|
|
195
|
+
destroyWhenAnimated: PropTypes.bool,
|
|
196
|
+
|
|
186
197
|
loading_state: PropTypes.shape({
|
|
187
198
|
/**
|
|
188
199
|
* Determines if the component is loading or not
|
|
@@ -207,6 +218,7 @@ FefferyMotion.propTypes = {
|
|
|
207
218
|
|
|
208
219
|
// 设置默认参数
|
|
209
220
|
FefferyMotion.defaultProps = {
|
|
221
|
+
destroyWhenAnimated: false
|
|
210
222
|
}
|
|
211
223
|
|
|
212
224
|
export default FefferyMotion;
|
package/src/lib/components/{FefferyEventSource.react.js → communication/FefferyEventSource.react.js}
RENAMED
|
@@ -16,7 +16,7 @@ const FefferyEventSource = (props) => {
|
|
|
16
16
|
loading_state
|
|
17
17
|
} = props;
|
|
18
18
|
|
|
19
|
-
const { status: _status, data: _data, event: _event, close, open } = useEventSource(
|
|
19
|
+
const { status: _status, data: _data, event: _event, close, open, error: _error } = useEventSource(
|
|
20
20
|
url,
|
|
21
21
|
events,
|
|
22
22
|
{
|
|
@@ -52,6 +52,16 @@ const FefferyEventSource = (props) => {
|
|
|
52
52
|
}
|
|
53
53
|
}, [operation])
|
|
54
54
|
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (_error) {
|
|
57
|
+
setProps({
|
|
58
|
+
errorEvent: {
|
|
59
|
+
timestamp: Date.now()
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
}
|
|
63
|
+
}, [_error])
|
|
64
|
+
|
|
55
65
|
return <></>;
|
|
56
66
|
}
|
|
57
67
|
|
|
@@ -120,6 +130,16 @@ FefferyEventSource.propTypes = {
|
|
|
120
130
|
*/
|
|
121
131
|
operation: PropTypes.oneOf(['open', 'close']),
|
|
122
132
|
|
|
133
|
+
/**
|
|
134
|
+
* 监听最新的异常错误事件
|
|
135
|
+
*/
|
|
136
|
+
errorEvent: PropTypes.shape({
|
|
137
|
+
/**
|
|
138
|
+
* 错误事件时间戳
|
|
139
|
+
*/
|
|
140
|
+
timestamp: PropTypes.number
|
|
141
|
+
}),
|
|
142
|
+
|
|
123
143
|
/**
|
|
124
144
|
* Dash-assigned callback that should be called to report property changes
|
|
125
145
|
* to Dash, to make them available for callbacks.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { Suspense } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
|
-
const LazyFefferyHttpRequests = React.lazy(() => import(/* webpackChunkName: "feffery_http_requests" */ '
|
|
4
|
+
const LazyFefferyHttpRequests = React.lazy(() => import(/* webpackChunkName: "feffery_http_requests" */ '../../fragments/communication/FefferyHttpRequests.react'));
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* http请求组件FefferyHttpRequests
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
// react核心
|
|
1
2
|
import React, { useEffect, useRef } from 'react';
|
|
2
|
-
import useCss from '../hooks/useCss'
|
|
3
|
-
import { isString, isNull } from 'lodash';
|
|
4
3
|
import PropTypes from 'prop-types';
|
|
4
|
+
// 辅助库
|
|
5
|
+
import { isString, isNull, isEqual } from 'lodash';
|
|
5
6
|
import { useElementBounding, useFocus } from '@reactuses/core';
|
|
6
7
|
import { useSize, useRequest, useHover, useClickAway } from 'ahooks';
|
|
7
|
-
|
|
8
|
+
// 自定义hooks
|
|
9
|
+
import useCss from '../../hooks/useCss'
|
|
8
10
|
|
|
9
11
|
// 定义兼容虚拟className的阴影效果、滚动条样式字典
|
|
10
12
|
const shadowVirtualClassName = new Map(
|
|
@@ -79,13 +81,13 @@ const scrollbarVirtualClassName = new Map(
|
|
|
79
81
|
* 进阶div容器组件FefferyDiv
|
|
80
82
|
*/
|
|
81
83
|
const FefferyDiv = (props) => {
|
|
82
|
-
// 取得必要属性或参数
|
|
83
84
|
let {
|
|
84
85
|
id,
|
|
85
86
|
key,
|
|
86
87
|
children,
|
|
87
88
|
style,
|
|
88
89
|
className,
|
|
90
|
+
enableEvents,
|
|
89
91
|
mouseEnterCount,
|
|
90
92
|
mouseLeaveCount,
|
|
91
93
|
nClicks,
|
|
@@ -111,10 +113,10 @@ const FefferyDiv = (props) => {
|
|
|
111
113
|
} = props;
|
|
112
114
|
|
|
113
115
|
const ref = useRef(null);
|
|
114
|
-
const size = useSize(ref);
|
|
115
|
-
const _bounding = useElementBounding(ref);
|
|
116
|
-
const _isHovering = useHover(ref);
|
|
117
|
-
const [_focus, setFocus] = useFocus(ref)
|
|
116
|
+
const size = useSize(enableEvents?.includes('size') ? ref : null);
|
|
117
|
+
const _bounding = useElementBounding(enableEvents?.includes('position') ? ref : null);
|
|
118
|
+
const _isHovering = useHover(enableEvents?.includes('hover') ? ref : null);
|
|
119
|
+
const [_focus, setFocus] = useFocus(enableEvents?.includes('focus') ? ref : null);
|
|
118
120
|
|
|
119
121
|
useEffect(() => {
|
|
120
122
|
setProps({
|
|
@@ -188,7 +190,7 @@ const FefferyDiv = (props) => {
|
|
|
188
190
|
}, [_isHovering])
|
|
189
191
|
|
|
190
192
|
// 监听元素外点击事件
|
|
191
|
-
if (enableClickAway) {
|
|
193
|
+
if (enableClickAway || enableEvents?.includes('clickaway')) {
|
|
192
194
|
useClickAway(() => {
|
|
193
195
|
setProps({ clickAwayCount: clickAwayCount + 1 })
|
|
194
196
|
}, ref);
|
|
@@ -282,53 +284,81 @@ const FefferyDiv = (props) => {
|
|
|
282
284
|
(className ? useCss(className) : undefined)
|
|
283
285
|
}
|
|
284
286
|
ref={ref}
|
|
285
|
-
onClick={
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
287
|
+
onClick={
|
|
288
|
+
enableEvents?.includes('click') ?
|
|
289
|
+
(e) => {
|
|
290
|
+
setProps({
|
|
291
|
+
nClicks: nClicks + 1,
|
|
292
|
+
clickEvent: {
|
|
293
|
+
pageX: e.pageX,
|
|
294
|
+
pageY: e.pageY,
|
|
295
|
+
clientX: e.clientX,
|
|
296
|
+
clientY: e.clientY,
|
|
297
|
+
screenX: e.screenX,
|
|
298
|
+
screenY: e.screenY,
|
|
299
|
+
timestamp: Date.now()
|
|
300
|
+
}
|
|
301
|
+
})
|
|
302
|
+
} :
|
|
303
|
+
undefined
|
|
304
|
+
}
|
|
305
|
+
onDoubleClick={
|
|
306
|
+
enableEvents?.includes('dbclick') ?
|
|
307
|
+
(e) => {
|
|
308
|
+
setProps({
|
|
309
|
+
nDoubleClicks: nDoubleClicks + 1,
|
|
310
|
+
doubleClickEvent: {
|
|
311
|
+
pageX: e.pageX,
|
|
312
|
+
pageY: e.pageY,
|
|
313
|
+
clientX: e.clientX,
|
|
314
|
+
clientY: e.clientY,
|
|
315
|
+
screenX: e.screenX,
|
|
316
|
+
screenY: e.screenY,
|
|
317
|
+
timestamp: Date.now()
|
|
318
|
+
}
|
|
319
|
+
})
|
|
320
|
+
} :
|
|
321
|
+
undefined
|
|
322
|
+
}
|
|
323
|
+
onContextMenu={
|
|
324
|
+
enableListenContextMenu || enableEvents?.includes('contextmenu') ?
|
|
325
|
+
(e) => {
|
|
326
|
+
e.preventDefault()
|
|
327
|
+
setProps({
|
|
328
|
+
contextMenuEvent: {
|
|
329
|
+
pageX: e.pageX,
|
|
330
|
+
pageY: e.pageY,
|
|
331
|
+
clientX: e.clientX,
|
|
332
|
+
clientY: e.clientY,
|
|
333
|
+
screenX: e.screenX,
|
|
334
|
+
screenY: e.screenY,
|
|
335
|
+
timestamp: Date.now()
|
|
336
|
+
}
|
|
337
|
+
})
|
|
338
|
+
} :
|
|
339
|
+
undefined
|
|
340
|
+
}
|
|
341
|
+
onMouseEnter={
|
|
342
|
+
enableEvents?.includes('mouseenter') ?
|
|
343
|
+
() => setProps({ mouseEnterCount: mouseEnterCount + 1 }) :
|
|
344
|
+
undefined
|
|
345
|
+
}
|
|
346
|
+
onMouseLeave={
|
|
347
|
+
enableEvents?.includes('mouseleave') ?
|
|
348
|
+
() => setProps({ mouseLeaveCount: mouseLeaveCount + 1 }) :
|
|
349
|
+
undefined
|
|
350
|
+
}
|
|
351
|
+
onTouchStart={
|
|
352
|
+
enableEvents?.includes('touch') ?
|
|
353
|
+
() => setProps({ isTouching: true }) :
|
|
354
|
+
undefined
|
|
355
|
+
}
|
|
356
|
+
onTouchEnd={
|
|
357
|
+
enableEvents?.includes('touch') ?
|
|
358
|
+
() => setProps({ isTouching: false }) :
|
|
359
|
+
undefined
|
|
360
|
+
}
|
|
361
|
+
tabIndex={enableFocus || enableEvents?.includes('focus') ? 0 : undefined}
|
|
332
362
|
data-dash-is-loading={
|
|
333
363
|
(loading_state && loading_state.is_loading) || undefined
|
|
334
364
|
} >
|
|
@@ -366,6 +396,29 @@ FefferyDiv.propTypes = {
|
|
|
366
396
|
PropTypes.object
|
|
367
397
|
]),
|
|
368
398
|
|
|
399
|
+
/**
|
|
400
|
+
* 控制要开启的事件监听类型数组,可选项有`'click'`(单击事件)、`'dbclick'`(双击事件)、`'size'`(尺寸变化事件)、
|
|
401
|
+
* `'mouseenter'`(鼠标移入事件),`'mouseleave'`(鼠标移出事件)、`'contextmenu'`(鼠标右键点击事件)、
|
|
402
|
+
* `'hover'`(鼠标悬停事件)、`'touch'`(移动端触碰事件)、`'clickaway'`(元素外点击事件)、`'position'`(左上角坐标位置变化事件)、
|
|
403
|
+
* `'focus'`(聚焦状态切换事件)
|
|
404
|
+
* 默认值:`['click', 'dbclick']`
|
|
405
|
+
*/
|
|
406
|
+
enableEvents: PropTypes.arrayOf(
|
|
407
|
+
PropTypes.oneOf([
|
|
408
|
+
'click',
|
|
409
|
+
'dbclick',
|
|
410
|
+
'size',
|
|
411
|
+
'mouseenter',
|
|
412
|
+
'mouseleave',
|
|
413
|
+
'contextmenu',
|
|
414
|
+
'hover',
|
|
415
|
+
'touch',
|
|
416
|
+
'clickaway',
|
|
417
|
+
'position',
|
|
418
|
+
'focus'
|
|
419
|
+
])
|
|
420
|
+
),
|
|
421
|
+
|
|
369
422
|
/**
|
|
370
423
|
* 监听容器像素宽度变化
|
|
371
424
|
*/
|
|
@@ -514,6 +567,11 @@ FefferyDiv.propTypes = {
|
|
|
514
567
|
*/
|
|
515
568
|
isHovering: PropTypes.bool,
|
|
516
569
|
|
|
570
|
+
/**
|
|
571
|
+
* 针对移动端场景,监听当前元素是否触碰中
|
|
572
|
+
*/
|
|
573
|
+
isTouching: PropTypes.bool,
|
|
574
|
+
|
|
517
575
|
/**
|
|
518
576
|
* 设置是否启用元素外点击事件监听,当页面中有大量FefferyDiv元素时,建议不要开启此特性,会导致明显的性能问题
|
|
519
577
|
* 默认为false
|
|
@@ -644,6 +702,7 @@ FefferyDiv.propTypes = {
|
|
|
644
702
|
|
|
645
703
|
// 设置默认参数
|
|
646
704
|
FefferyDiv.defaultProps = {
|
|
705
|
+
enableEvents: ['click', 'dbclick'],
|
|
647
706
|
mouseEnterCount: 0,
|
|
648
707
|
mouseLeaveCount: 0,
|
|
649
708
|
nClicks: 0,
|
package/src/lib/components/{FefferyJsonViewer.react.js → dataDisplay/FefferyJsonViewer.react.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { Suspense } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
|
-
const LazyFefferyJsonViewer = React.lazy(() => import(/* webpackChunkName: "feffery_json_viewer" */ '
|
|
4
|
+
const LazyFefferyJsonViewer = React.lazy(() => import(/* webpackChunkName: "feffery_json_viewer" */ '../../fragments/dataDisplay/FefferyJsonViewer.react'));
|
|
5
5
|
|
|
6
6
|
const FefferyJsonViewer = (props) => {
|
|
7
7
|
return (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Suspense } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
|
-
const LazyFefferySeamlessScroll = React.lazy(() => import(/* webpackChunkName: "feffery_seamless_scroll" */ '
|
|
4
|
+
const LazyFefferySeamlessScroll = React.lazy(() => import(/* webpackChunkName: "feffery_seamless_scroll" */ '../../fragments/dataDisplay/FefferySeamlessScroll.react'));
|
|
5
5
|
|
|
6
6
|
const FefferySeamlessScroll = (props) => {
|
|
7
7
|
return (
|
package/src/lib/components/{FefferyEmojiPicker.react.js → dataInput/FefferyEmojiPicker.react.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { Suspense } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
|
-
const LazyFefferyEmojiPicker = React.lazy(() => import(/* webpackChunkName: "feffery_emoji_picker" */ '
|
|
4
|
+
const LazyFefferyEmojiPicker = React.lazy(() => import(/* webpackChunkName: "feffery_emoji_picker" */ '../../fragments/dataInput/FefferyEmojiPicker.react'));
|
|
5
5
|
|
|
6
6
|
const FefferyEmojiPicker = (props) => {
|
|
7
7
|
return (
|
|
@@ -85,7 +85,7 @@ FefferyEmojiPicker.propTypes = {
|
|
|
85
85
|
/**
|
|
86
86
|
* 设置是否显示搜索框,默认为true
|
|
87
87
|
*/
|
|
88
|
-
customCategoryIcons
|
|
88
|
+
customCategoryIcons: PropTypes.shape({
|
|
89
89
|
/**
|
|
90
90
|
* 自定义emoji分组的图标
|
|
91
91
|
*/
|
|
@@ -338,7 +338,7 @@ FefferyEmojiPicker.defaultProps = {
|
|
|
338
338
|
navPosition: 'top',
|
|
339
339
|
noResultsEmoji: 'cry',
|
|
340
340
|
previewPosition: 'bottom',
|
|
341
|
-
searchPosition:'sticky',
|
|
341
|
+
searchPosition: 'sticky',
|
|
342
342
|
set: 'native',
|
|
343
343
|
skin: 1,
|
|
344
344
|
skinTonePosition: 'preview',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { Suspense } from "react";
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
|
-
const LazyFefferySortable = React.lazy(() => import(/* webpackChunkName: "feffery_sortable" */ '../../fragments/
|
|
4
|
+
const LazyFefferySortable = React.lazy(() => import(/* webpackChunkName: "feffery_sortable" */ '../../fragments/draggable/FefferySortable.react'));
|
|
5
5
|
|
|
6
6
|
const FefferySortable = (props) => {
|
|
7
7
|
return (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { Suspense } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
|
-
const LazyFefferyExcelPreview = React.lazy(() => import(/* webpackChunkName: "feffery_excel_preview" */ '../../fragments/
|
|
4
|
+
const LazyFefferyExcelPreview = React.lazy(() => import(/* webpackChunkName: "feffery_excel_preview" */ '../../fragments/filePreview/FefferyExcelPreview.react'));
|
|
5
5
|
|
|
6
6
|
const FefferyExcelPreview = (props) => {
|
|
7
7
|
return (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { Suspense } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
|
-
const LazyFefferyWordPreview = React.lazy(() => import(/* webpackChunkName: "feffery_word_preview" */ '../../fragments/
|
|
4
|
+
const LazyFefferyWordPreview = React.lazy(() => import(/* webpackChunkName: "feffery_word_preview" */ '../../fragments/filePreview/FefferyWordPreview.react'));
|
|
5
5
|
|
|
6
6
|
const FefferyWordPreview = (props) => {
|
|
7
7
|
return (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { Suspense } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
|
-
const LazyFefferyBurger = React.lazy(() => import(/* webpackChunkName: "feffery_burger" */ '
|
|
4
|
+
const LazyFefferyBurger = React.lazy(() => import(/* webpackChunkName: "feffery_burger" */ '../../fragments/general/FefferyBurger.react'));
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* 动态菜单图标组件FefferyBurger
|
package/src/lib/components/{FefferyFancyButton.react.js → general/FefferyFancyButton.react.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { Suspense } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
|
-
const LazyFefferyFancyButton = React.lazy(() => import(/* webpackChunkName: "feffery_fancy_button" */ '
|
|
4
|
+
const LazyFefferyFancyButton = React.lazy(() => import(/* webpackChunkName: "feffery_fancy_button" */ '../../fragments/general/FefferyFancyButton.react'));
|
|
5
5
|
|
|
6
6
|
const FefferyFancyButton = (props) => {
|
|
7
7
|
return (
|
package/src/lib/components/{FefferyAnimatedImage.react.js → images/FefferyAnimatedImage.react.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { Suspense } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
|
-
const LazyFefferyAnimatedImage = React.lazy(() => import(/* webpackChunkName: "feffery_animated_image" */ '
|
|
4
|
+
const LazyFefferyAnimatedImage = React.lazy(() => import(/* webpackChunkName: "feffery_animated_image" */ '../../fragments/images/FefferyAnimatedImage.react'));
|
|
5
5
|
|
|
6
6
|
const FefferyAnimatedImage = (props) => {
|
|
7
7
|
return (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { Suspense } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
|
-
const LazyFefferyDom2Image = React.lazy(() => import(/* webpackChunkName: "feffery_dom2image" */ '
|
|
4
|
+
const LazyFefferyDom2Image = React.lazy(() => import(/* webpackChunkName: "feffery_dom2image" */ '../../fragments/images/FefferyDom2Image.react'));
|
|
5
5
|
|
|
6
6
|
const FefferyDom2Image = (props) => {
|
|
7
7
|
return (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Suspense } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
|
-
const LazyFefferyPhotoSphereViewer = React.lazy(() => import(/* webpackChunkName: "feffery_photo_sphere_viewer" */ '
|
|
4
|
+
const LazyFefferyPhotoSphereViewer = React.lazy(() => import(/* webpackChunkName: "feffery_photo_sphere_viewer" */ '../../fragments/images/FefferyPhotoSphereViewer.react'));
|
|
5
5
|
|
|
6
6
|
const FefferyPhotoSphereViewer = (props) => {
|
|
7
7
|
return (
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useNetwork } from 'ahooks';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 网络状态信息监听组件FefferyNetwork
|
|
7
|
+
*/
|
|
8
|
+
const FefferyNetwork = (props) => {
|
|
9
|
+
const {
|
|
10
|
+
id,
|
|
11
|
+
key,
|
|
12
|
+
online,
|
|
13
|
+
since,
|
|
14
|
+
rtt,
|
|
15
|
+
type,
|
|
16
|
+
downlink,
|
|
17
|
+
downlinkMax,
|
|
18
|
+
saveData,
|
|
19
|
+
effectiveType,
|
|
20
|
+
setProps,
|
|
21
|
+
loading_state
|
|
22
|
+
} = props;
|
|
23
|
+
|
|
24
|
+
const networkState = useNetwork();
|
|
25
|
+
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
setProps({
|
|
28
|
+
...JSON.parse(JSON.stringify(networkState))
|
|
29
|
+
});
|
|
30
|
+
}, [networkState]);
|
|
31
|
+
|
|
32
|
+
return <></>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
FefferyNetwork.propTypes = {
|
|
36
|
+
/**
|
|
37
|
+
* 组件id
|
|
38
|
+
*/
|
|
39
|
+
id: PropTypes.string,
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 强制刷新用key值
|
|
43
|
+
*/
|
|
44
|
+
key: PropTypes.string,
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* 网络是否为在线
|
|
48
|
+
*/
|
|
49
|
+
online: PropTypes.bool,
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* `online`最后改变时间
|
|
53
|
+
*/
|
|
54
|
+
since: PropTypes.string,
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* 当前连接下评估的往返时延
|
|
58
|
+
*/
|
|
59
|
+
rtt: PropTypes.number,
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 设备使用与所述网络进行通信的连接的类型,可选项有'bluetooth'、'cellular'、'ethernet'、'none'、'wifi'、'wimax'、'other'、'unknown'
|
|
63
|
+
*/
|
|
64
|
+
type: PropTypes.oneOf(['bluetooth', 'cellular', 'ethernet', 'none', 'wifi', 'wimax', 'other', 'unknown']),
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* 有效带宽估算(单位:兆比特/秒)
|
|
68
|
+
*/
|
|
69
|
+
downlink: PropTypes.number,
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* 最大下行速度(单位:兆比特/秒)
|
|
73
|
+
*/
|
|
74
|
+
downlinkMax: PropTypes.number,
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* 用户代理是否设置了减少数据使用的选项
|
|
78
|
+
*/
|
|
79
|
+
saveData: PropTypes.bool,
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* 网络连接的类型,可选的值有'slow-2g'、'2g'、'3g'、'4g'
|
|
83
|
+
*/
|
|
84
|
+
effectiveType: PropTypes.oneOf(['slow-2g', '2g', '3g', '4g']),
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Dash-assigned callback that should be called to report property changes
|
|
88
|
+
* to Dash, to make them available for callbacks.
|
|
89
|
+
*/
|
|
90
|
+
setProps: PropTypes.func,
|
|
91
|
+
|
|
92
|
+
loading_state: PropTypes.shape({
|
|
93
|
+
/**
|
|
94
|
+
* Determines if the component is loading or not
|
|
95
|
+
*/
|
|
96
|
+
is_loading: PropTypes.bool,
|
|
97
|
+
/**
|
|
98
|
+
* Holds which property is loading
|
|
99
|
+
*/
|
|
100
|
+
prop_name: PropTypes.string,
|
|
101
|
+
/**
|
|
102
|
+
* Holds the name of the component that is loading
|
|
103
|
+
*/
|
|
104
|
+
component_name: PropTypes.string
|
|
105
|
+
})
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
// 设置默认参数
|
|
109
|
+
FefferyNetwork.defaultProps = {
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export default FefferyNetwork;
|