feffery_utils_components 0.2.0-rc20 → 0.2.0-rc22

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.
Files changed (55) hide show
  1. package/DESCRIPTION +1 -1
  2. package/NAMESPACE +2 -0
  3. package/Project.toml +1 -1
  4. package/README.md +1 -1
  5. package/feffery_utils_components/FefferyGrid.py +13 -8
  6. package/feffery_utils_components/FefferyListenDrag.py +51 -0
  7. package/feffery_utils_components/FefferyListenDrop.py +103 -0
  8. package/feffery_utils_components/_imports_.py +4 -0
  9. package/feffery_utils_components/async-feffery_animated_3d_background_p5.js +1 -1
  10. package/feffery_utils_components/async-feffery_animated_3d_background_three.js +1 -1
  11. package/feffery_utils_components/async-feffery_animated_image.js +1 -1
  12. package/feffery_utils_components/async-feffery_aplayer.js +1 -1
  13. package/feffery_utils_components/async-feffery_auto_animate.js +1 -1
  14. package/feffery_utils_components/async-feffery_auto_fit.js +2 -2
  15. package/feffery_utils_components/async-feffery_burger.js +1 -1
  16. package/feffery_utils_components/async-feffery_captcha.js +1 -1
  17. package/feffery_utils_components/async-feffery_color_pickers.js +1 -1
  18. package/feffery_utils_components/async-feffery_dom2image.js +2 -2
  19. package/feffery_utils_components/async-feffery_dplayer.js +1 -1
  20. package/feffery_utils_components/async-feffery_emoji_picker.js +1 -1
  21. package/feffery_utils_components/async-feffery_excel_preview.js +1 -1
  22. package/feffery_utils_components/async-feffery_extra_spinner.js +1 -1
  23. package/feffery_utils_components/async-feffery_fancy_button.js +1 -1
  24. package/feffery_utils_components/async-feffery_grid.js +1 -1
  25. package/feffery_utils_components/async-feffery_http_requests.js +1 -1
  26. package/feffery_utils_components/async-feffery_image_cropper.js +1 -1
  27. package/feffery_utils_components/async-feffery_json_viewer.js +1 -1
  28. package/feffery_utils_components/async-feffery_local_large_storage.js +1 -1
  29. package/feffery_utils_components/async-feffery_markdown_editor.js +2 -2
  30. package/feffery_utils_components/async-feffery_motion.js +1 -1
  31. package/feffery_utils_components/async-feffery_music_player.js +1 -1
  32. package/feffery_utils_components/async-feffery_photo_sphere_viewer.js +1 -1
  33. package/feffery_utils_components/async-feffery_photo_sphere_viewer.js.LICENSE.txt +8 -2
  34. package/feffery_utils_components/async-feffery_resizable.js +1 -1
  35. package/feffery_utils_components/async-feffery_rich_text_editor.js +3 -3
  36. package/feffery_utils_components/async-feffery_rnd.js +1 -1
  37. package/feffery_utils_components/async-feffery_seamless_scroll.js +1 -1
  38. package/feffery_utils_components/async-feffery_shortcut_panel.js +16 -16
  39. package/feffery_utils_components/async-feffery_slider_captcha.js +1 -1
  40. package/feffery_utils_components/async-feffery_sortable.js +1 -1
  41. package/feffery_utils_components/async-feffery_vditor.js +1 -1
  42. package/feffery_utils_components/async-feffery_word_preview.js +1 -1
  43. package/feffery_utils_components/async-fuc-shared.js +15 -15
  44. package/feffery_utils_components/feffery_utils_components.min.js +7 -7
  45. package/feffery_utils_components/metadata.json +228 -3
  46. package/feffery_utils_components/package-info.json +1 -1
  47. package/package.json +1 -1
  48. package/src/lib/components/draggable/FefferyGrid.react.js +12 -1
  49. package/src/lib/components/listeners/FefferyListenDrag.react.js +83 -0
  50. package/src/lib/components/listeners/FefferyListenDrop.react.js +177 -0
  51. package/src/lib/components/styles.css +126 -124
  52. package/src/lib/fragments/draggable/FefferyGrid.react.js +112 -107
  53. package/src/lib/index.js +5 -1
  54. package/usage.py +61 -12
  55. package/.vscode/settings.json +0 -11
@@ -4383,26 +4383,33 @@
4383
4383
  "required": false,
4384
4384
  "description": "\u4f20\u5165\u5185\u90e8\u7684\u5404\u4e2aFefferyGridItem\u5143\u7d20"
4385
4385
  },
4386
+ "placeholder": {
4387
+ "type": {
4388
+ "name": "node"
4389
+ },
4390
+ "required": false,
4391
+ "description": "\u5360\u4f4d\u5143\u7d20\uff0c\u7528\u4e8e\u5728children\u4e3a\u7a7a\u65f6\u5448\u73b0\u76f8\u5173\u63d0\u793a\u4fe1\u606f"
4392
+ },
4386
4393
  "key": {
4387
4394
  "type": {
4388
4395
  "name": "string"
4389
4396
  },
4390
4397
  "required": false,
4391
- "description": "\u552f\u4e00\u6807\u8bc6\u7b26\uff0c\u5f3a\u5236\u5237\u65b0\u7528"
4398
+ "description": "\u5f3a\u5236\u5237\u65b0\u7528"
4392
4399
  },
4393
4400
  "style": {
4394
4401
  "type": {
4395
4402
  "name": "object"
4396
4403
  },
4397
4404
  "required": false,
4398
- "description": ""
4405
+ "description": "\u5f53\u524d\u7ec4\u4ef6css\u6837\u5f0f"
4399
4406
  },
4400
4407
  "className": {
4401
4408
  "type": {
4402
4409
  "name": "string"
4403
4410
  },
4404
4411
  "required": false,
4405
- "description": ""
4412
+ "description": "\u5f53\u524d\u7ec4\u4ef6css\u7c7b\u540d"
4406
4413
  },
4407
4414
  "height": {
4408
4415
  "type": {
@@ -18338,6 +18345,224 @@
18338
18345
  }
18339
18346
  }
18340
18347
  },
18348
+ "src/lib/components/listeners/FefferyListenDrag.react.js": {
18349
+ "description": "\u62d6\u62fd\u4e8b\u4ef6\u76d1\u542c\u7ec4\u4ef6FefferyListenDrag",
18350
+ "displayName": "FefferyListenDrag",
18351
+ "methods": [],
18352
+ "props": {
18353
+ "id": {
18354
+ "type": {
18355
+ "name": "string"
18356
+ },
18357
+ "required": false,
18358
+ "description": "\u7ec4\u4ef6id"
18359
+ },
18360
+ "targetSelector": {
18361
+ "type": {
18362
+ "name": "string"
18363
+ },
18364
+ "required": false,
18365
+ "description": "\u62d6\u62fd\u4e8b\u4ef6\u76d1\u542c\u76ee\u6807\u9009\u62e9\u5668\u89c4\u5219\u5b57\u7b26\u4e32"
18366
+ },
18367
+ "data": {
18368
+ "type": {
18369
+ "name": "any"
18370
+ },
18371
+ "required": false,
18372
+ "description": "\u5f53\u524d\u76d1\u542c\u76ee\u6807\u6240\u643a\u5e26\u7684\u6570\u636e\uff0c\u914d\u5408**FefferyListenDrop**\u4f7f\u7528"
18373
+ },
18374
+ "isDragging": {
18375
+ "type": {
18376
+ "name": "bool"
18377
+ },
18378
+ "required": false,
18379
+ "description": "\u76d1\u542c\u76ee\u6807\u662f\u5426\u5904\u4e8e\u62d6\u62fd\u4e2d\u72b6\u6001"
18380
+ },
18381
+ "setProps": {
18382
+ "type": {
18383
+ "name": "func"
18384
+ },
18385
+ "required": false,
18386
+ "description": "Dash-assigned callback that should be called to report property changes\r\nto Dash, to make them available for callbacks."
18387
+ },
18388
+ "loading_state": {
18389
+ "type": {
18390
+ "name": "shape",
18391
+ "value": {
18392
+ "is_loading": {
18393
+ "name": "bool",
18394
+ "description": "Determines if the component is loading or not",
18395
+ "required": false
18396
+ },
18397
+ "prop_name": {
18398
+ "name": "string",
18399
+ "description": "Holds which property is loading",
18400
+ "required": false
18401
+ },
18402
+ "component_name": {
18403
+ "name": "string",
18404
+ "description": "Holds the name of the component that is loading",
18405
+ "required": false
18406
+ }
18407
+ }
18408
+ },
18409
+ "required": false,
18410
+ "description": ""
18411
+ }
18412
+ }
18413
+ },
18414
+ "src/lib/components/listeners/FefferyListenDrop.react.js": {
18415
+ "description": "\u653e\u7f6e\u4e8b\u4ef6\u76d1\u542c\u7ec4\u4ef6FefferyListenDrop",
18416
+ "displayName": "FefferyListenDrop",
18417
+ "methods": [],
18418
+ "props": {
18419
+ "id": {
18420
+ "type": {
18421
+ "name": "string"
18422
+ },
18423
+ "required": false,
18424
+ "description": "\u7ec4\u4ef6id"
18425
+ },
18426
+ "targetSelector": {
18427
+ "type": {
18428
+ "name": "string"
18429
+ },
18430
+ "required": false,
18431
+ "description": "\u653e\u7f6e\u4e8b\u4ef6\u76d1\u542c\u76ee\u6807\u5bb9\u5668\u9009\u62e9\u5668\u89c4\u5219\u5b57\u7b26\u4e32"
18432
+ },
18433
+ "dropEvent": {
18434
+ "type": {
18435
+ "name": "shape",
18436
+ "value": {
18437
+ "time": {
18438
+ "name": "number",
18439
+ "description": "\u4e8b\u4ef6\u5bf9\u5e94\u65f6\u95f4\u6233",
18440
+ "required": false
18441
+ },
18442
+ "data": {
18443
+ "name": "any",
18444
+ "description": "\u4e8b\u4ef6\u643a\u5e26\u6570\u636e",
18445
+ "required": false
18446
+ },
18447
+ "pageX": {
18448
+ "name": "number",
18449
+ "description": "\u4ee5\u9875\u9762\u6574\u4f53\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9\uff0c\u8bb0\u5f55x\u5750\u6807",
18450
+ "required": false
18451
+ },
18452
+ "pageY": {
18453
+ "name": "number",
18454
+ "description": "\u4ee5\u9875\u9762\u6574\u4f53\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9\uff0c\u8bb0\u5f55y\u5750\u6807",
18455
+ "required": false
18456
+ },
18457
+ "clientX": {
18458
+ "name": "number",
18459
+ "description": "\u4ee5\u6d4f\u89c8\u5668\u7a97\u53e3\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9\uff0c\u8bb0\u5f55x\u5750\u6807",
18460
+ "required": false
18461
+ },
18462
+ "clientY": {
18463
+ "name": "number",
18464
+ "description": "\u4ee5\u6d4f\u89c8\u5668\u7a97\u53e3\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9\uff0c\u8bb0\u5f55y\u5750\u6807",
18465
+ "required": false
18466
+ },
18467
+ "screenX": {
18468
+ "name": "number",
18469
+ "description": "\u4ee5\u5c4f\u5e55\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9\uff0c\u8bb0\u5f55x\u5750\u6807",
18470
+ "required": false
18471
+ },
18472
+ "screenY": {
18473
+ "name": "number",
18474
+ "description": "\u4ee5\u5c4f\u5e55\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9\uff0c\u8bb0\u5f55y\u5750\u6807",
18475
+ "required": false
18476
+ }
18477
+ }
18478
+ },
18479
+ "required": false,
18480
+ "description": "\u76d1\u542c\u6700\u8fd1\u4e00\u6b21\u57fa\u4e8eFefferyListenDrag\u7684\u5143\u7d20\u62d6\u62fd\u653e\u7f6e\u4e8b\u4ef6"
18481
+ },
18482
+ "isHovering": {
18483
+ "type": {
18484
+ "name": "bool"
18485
+ },
18486
+ "required": false,
18487
+ "description": "\u76d1\u542c\u653e\u7f6e\u4e8b\u4ef6\u76d1\u542c\u76ee\u6807\u5bb9\u5668\u662f\u5426\u6b63\u5904\u4e8e\u5f85\u653e\u7f6e\u9f20\u6807\u60ac\u505c\u72b6\u6001"
18488
+ },
18489
+ "hoverEvent": {
18490
+ "type": {
18491
+ "name": "shape",
18492
+ "value": {
18493
+ "time": {
18494
+ "name": "number",
18495
+ "description": "\u4e8b\u4ef6\u5bf9\u5e94\u65f6\u95f4\u6233",
18496
+ "required": false
18497
+ },
18498
+ "pageX": {
18499
+ "name": "number",
18500
+ "description": "\u4ee5\u9875\u9762\u6574\u4f53\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9\uff0c\u8bb0\u5f55x\u5750\u6807",
18501
+ "required": false
18502
+ },
18503
+ "pageY": {
18504
+ "name": "number",
18505
+ "description": "\u4ee5\u9875\u9762\u6574\u4f53\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9\uff0c\u8bb0\u5f55y\u5750\u6807",
18506
+ "required": false
18507
+ },
18508
+ "clientX": {
18509
+ "name": "number",
18510
+ "description": "\u4ee5\u6d4f\u89c8\u5668\u7a97\u53e3\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9\uff0c\u8bb0\u5f55x\u5750\u6807",
18511
+ "required": false
18512
+ },
18513
+ "clientY": {
18514
+ "name": "number",
18515
+ "description": "\u4ee5\u6d4f\u89c8\u5668\u7a97\u53e3\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9\uff0c\u8bb0\u5f55y\u5750\u6807",
18516
+ "required": false
18517
+ },
18518
+ "screenX": {
18519
+ "name": "number",
18520
+ "description": "\u4ee5\u5c4f\u5e55\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9\uff0c\u8bb0\u5f55x\u5750\u6807",
18521
+ "required": false
18522
+ },
18523
+ "screenY": {
18524
+ "name": "number",
18525
+ "description": "\u4ee5\u5c4f\u5e55\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9\uff0c\u8bb0\u5f55y\u5750\u6807",
18526
+ "required": false
18527
+ }
18528
+ }
18529
+ },
18530
+ "required": false,
18531
+ "description": "\u76d1\u542c\u6700\u8fd1\u4e00\u6b21\u6b63\u5904\u4e8e\u5f85\u653e\u7f6e\u9f20\u6807\u60ac\u505c\u72b6\u6001\u65f6\u7684\u4e8b\u4ef6"
18532
+ },
18533
+ "setProps": {
18534
+ "type": {
18535
+ "name": "func"
18536
+ },
18537
+ "required": false,
18538
+ "description": "Dash-assigned callback that should be called to report property changes\r\nto Dash, to make them available for callbacks."
18539
+ },
18540
+ "loading_state": {
18541
+ "type": {
18542
+ "name": "shape",
18543
+ "value": {
18544
+ "is_loading": {
18545
+ "name": "bool",
18546
+ "description": "Determines if the component is loading or not",
18547
+ "required": false
18548
+ },
18549
+ "prop_name": {
18550
+ "name": "string",
18551
+ "description": "Holds which property is loading",
18552
+ "required": false
18553
+ },
18554
+ "component_name": {
18555
+ "name": "string",
18556
+ "description": "Holds the name of the component that is loading",
18557
+ "required": false
18558
+ }
18559
+ }
18560
+ },
18561
+ "required": false,
18562
+ "description": ""
18563
+ }
18564
+ }
18565
+ },
18341
18566
  "src/lib/components/listeners/FefferyListenElementSize.react.js": {
18342
18567
  "description": "\u5143\u7d20\u5c3a\u5bf8\u76d1\u542c\u7ec4\u4ef6FefferyListenElementSize",
18343
18568
  "displayName": "FefferyListenElementSize",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feffery_utils_components",
3
- "version": "0.2.0-rc20",
3
+ "version": "0.2.0-rc22",
4
4
  "description": "Build more utility components for Plotly Dash.",
5
5
  "repository": {
6
6
  "type": "git",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feffery_utils_components",
3
- "version": "0.2.0-rc20",
3
+ "version": "0.2.0-rc22",
4
4
  "description": "Build more utility components for Plotly Dash.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,12 +24,23 @@ FefferyGrid.propTypes = {
24
24
  children: PropTypes.node,
25
25
 
26
26
  /**
27
- * 唯一标识符,强制刷新用
27
+ * 占位元素,用于在children为空时呈现相关提示信息
28
+ */
29
+ placeholder: PropTypes.node,
30
+
31
+ /**
32
+ * 强制刷新用
28
33
  */
29
34
  key: PropTypes.string,
30
35
 
36
+ /**
37
+ * 当前组件css样式
38
+ */
31
39
  style: PropTypes.object,
32
40
 
41
+ /**
42
+ * 当前组件css类名
43
+ */
33
44
  className: PropTypes.string,
34
45
 
35
46
  /**
@@ -0,0 +1,83 @@
1
+ import { useDrag } from 'ahooks';
2
+ import PropTypes from 'prop-types';
3
+
4
+ /**
5
+ * 拖拽事件监听组件FefferyListenDrag
6
+ */
7
+ const FefferyListenDrag = (props) => {
8
+ const {
9
+ targetSelector,
10
+ data,
11
+ isDragging,
12
+ setProps,
13
+ loading_state
14
+ } = props;
15
+
16
+ useDrag(
17
+ data,
18
+ () => document.querySelector(targetSelector),
19
+ {
20
+ onDragStart: (e) => {
21
+ setProps({
22
+ isDragging: true
23
+ })
24
+ },
25
+ onDragEnd: (e) => {
26
+ setProps({
27
+ isDragging: false
28
+ })
29
+ }
30
+ }
31
+ )
32
+
33
+ return <></>;
34
+ }
35
+
36
+ FefferyListenDrag.propTypes = {
37
+ /**
38
+ * 组件id
39
+ */
40
+ id: PropTypes.string,
41
+
42
+ /**
43
+ * 拖拽事件监听目标选择器规则字符串
44
+ */
45
+ targetSelector: PropTypes.string,
46
+
47
+ /**
48
+ * 当前监听目标所携带的数据,配合**FefferyListenDrop**使用
49
+ */
50
+ data: PropTypes.any,
51
+
52
+ /**
53
+ * 监听目标是否处于拖拽中状态
54
+ */
55
+ isDragging: PropTypes.bool,
56
+
57
+ /**
58
+ * Dash-assigned callback that should be called to report property changes
59
+ * to Dash, to make them available for callbacks.
60
+ */
61
+ setProps: PropTypes.func,
62
+
63
+ loading_state: PropTypes.shape({
64
+ /**
65
+ * Determines if the component is loading or not
66
+ */
67
+ is_loading: PropTypes.bool,
68
+ /**
69
+ * Holds which property is loading
70
+ */
71
+ prop_name: PropTypes.string,
72
+ /**
73
+ * Holds the name of the component that is loading
74
+ */
75
+ component_name: PropTypes.string
76
+ })
77
+ };
78
+
79
+ // 设置默认参数
80
+ FefferyListenDrag.defaultProps = {
81
+ }
82
+
83
+ export default FefferyListenDrag;
@@ -0,0 +1,177 @@
1
+ import { useDrop, useRequest } from 'ahooks';
2
+ import PropTypes from 'prop-types';
3
+
4
+ /**
5
+ * 放置事件监听组件FefferyListenDrop
6
+ */
7
+ const FefferyListenDrop = (props) => {
8
+ const {
9
+ targetSelector,
10
+ hoverEvent,
11
+ setProps,
12
+ loading_state
13
+ } = props;
14
+
15
+ const { run: onDragOver } = useRequest(
16
+ (e) => {
17
+ if (!(e.pageX === hoverEvent?.pageX && e.pageY === hoverEvent?.pageY)) {
18
+ setProps({
19
+ hoverEvent: {
20
+ time: Date.now(),
21
+ pageX: e.pageX,
22
+ pageY: e.pageY,
23
+ clientX: e.clientX,
24
+ clientY: e.clientY,
25
+ screenX: e.screenX,
26
+ screenY: e.screenY
27
+ }
28
+ })
29
+ }
30
+ },
31
+ {
32
+ throttleWait: 200,
33
+ manual: true
34
+ });
35
+
36
+ useDrop(
37
+ () => document.querySelector(targetSelector),
38
+ {
39
+ onDom: (content, e) => {
40
+ setProps({
41
+ dropEvent: {
42
+ time: Date.now(),
43
+ data: content,
44
+ pageX: e.pageX,
45
+ pageY: e.pageY,
46
+ clientX: e.clientX,
47
+ clientY: e.clientY,
48
+ screenX: e.screenX,
49
+ screenY: e.screenY
50
+ },
51
+ isHovering: false
52
+ })
53
+ },
54
+ onDragEnter: () => setProps({ isHovering: true }),
55
+ onDragLeave: () => setProps({ isHovering: false }),
56
+ onDragOver: onDragOver
57
+ }
58
+ )
59
+
60
+ return <></>;
61
+ }
62
+
63
+ FefferyListenDrop.propTypes = {
64
+ /**
65
+ * 组件id
66
+ */
67
+ id: PropTypes.string,
68
+
69
+ /**
70
+ * 放置事件监听目标容器选择器规则字符串
71
+ */
72
+ targetSelector: PropTypes.string,
73
+
74
+ /**
75
+ * 监听最近一次基于FefferyListenDrag的元素拖拽放置事件
76
+ */
77
+ dropEvent: PropTypes.shape({
78
+ /**
79
+ * 事件对应时间戳
80
+ */
81
+ time: PropTypes.number,
82
+ /**
83
+ * 事件携带数据
84
+ */
85
+ data: PropTypes.any,
86
+ /**
87
+ * 以页面整体左上角为原点,记录x坐标
88
+ */
89
+ pageX: PropTypes.number,
90
+ /**
91
+ * 以页面整体左上角为原点,记录y坐标
92
+ */
93
+ pageY: PropTypes.number,
94
+ /**
95
+ * 以浏览器窗口左上角为原点,记录x坐标
96
+ */
97
+ clientX: PropTypes.number,
98
+ /**
99
+ * 以浏览器窗口左上角为原点,记录y坐标
100
+ */
101
+ clientY: PropTypes.number,
102
+ /**
103
+ * 以屏幕左上角为原点,记录x坐标
104
+ */
105
+ screenX: PropTypes.number,
106
+ /**
107
+ * 以屏幕左上角为原点,记录y坐标
108
+ */
109
+ screenY: PropTypes.number,
110
+ }),
111
+
112
+ /**
113
+ * 监听放置事件监听目标容器是否正处于待放置鼠标悬停状态
114
+ */
115
+ isHovering: PropTypes.bool,
116
+
117
+ /**
118
+ * 监听最近一次正处于待放置鼠标悬停状态时的事件
119
+ */
120
+ hoverEvent: PropTypes.shape({
121
+ /**
122
+ * 事件对应时间戳
123
+ */
124
+ time: PropTypes.number,
125
+ /**
126
+ * 以页面整体左上角为原点,记录x坐标
127
+ */
128
+ pageX: PropTypes.number,
129
+ /**
130
+ * 以页面整体左上角为原点,记录y坐标
131
+ */
132
+ pageY: PropTypes.number,
133
+ /**
134
+ * 以浏览器窗口左上角为原点,记录x坐标
135
+ */
136
+ clientX: PropTypes.number,
137
+ /**
138
+ * 以浏览器窗口左上角为原点,记录y坐标
139
+ */
140
+ clientY: PropTypes.number,
141
+ /**
142
+ * 以屏幕左上角为原点,记录x坐标
143
+ */
144
+ screenX: PropTypes.number,
145
+ /**
146
+ * 以屏幕左上角为原点,记录y坐标
147
+ */
148
+ screenY: PropTypes.number,
149
+ }),
150
+
151
+ /**
152
+ * Dash-assigned callback that should be called to report property changes
153
+ * to Dash, to make them available for callbacks.
154
+ */
155
+ setProps: PropTypes.func,
156
+
157
+ loading_state: PropTypes.shape({
158
+ /**
159
+ * Determines if the component is loading or not
160
+ */
161
+ is_loading: PropTypes.bool,
162
+ /**
163
+ * Holds which property is loading
164
+ */
165
+ prop_name: PropTypes.string,
166
+ /**
167
+ * Holds the name of the component that is loading
168
+ */
169
+ component_name: PropTypes.string
170
+ })
171
+ };
172
+
173
+ // 设置默认参数
174
+ FefferyListenDrop.defaultProps = {
175
+ }
176
+
177
+ export default FefferyListenDrop;