@riil-frontend/component-topology 2.3.21 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/build/1.js +2 -2
  2. package/build/2.js +1 -1
  3. package/build/index.css +1 -1
  4. package/build/index.js +28 -28
  5. package/demo/5/345/205/266/344/273/226/347/273/204/344/273/266//345/233/276/346/240/207/351/200/211/346/213/251.md +5 -5
  6. package/es/components/Drawer/index.js +2 -1
  7. package/es/components/Drawer/index.module.scss +13 -0
  8. package/es/components/ResourceList/ResourceSelect.js +3 -2
  9. package/es/components/ResourceList/ResourceSelect.module.scss +7 -0
  10. package/es/components/ResourceSelect/ResourceSelectDrawer.js +3 -1
  11. package/es/core/{editor/components/settings/group/GroupNodeList → common}/icons/defaultIcons.d.ts +15 -0
  12. package/es/core/{editor/components/settings/group/GroupNodeList → common}/icons/defaultIcons.js +62 -0
  13. package/es/core/common/text.module.scss +5 -0
  14. package/es/core/editor/components/LinkDynamicStyleSettingDrawer/rule/ColorPicker.module.scss +7 -3
  15. package/es/core/editor/components/iconManage/UploadIconDialog.js +2 -2
  16. package/es/core/editor/components/settings/Settings.js +47 -42
  17. package/es/core/editor/components/settings/Settings.module.scss +6 -1
  18. package/es/core/editor/components/settings/common/{NodeSizeInput.d.ts → NodeSizeInput/NodeSizeInput.d.ts} +0 -0
  19. package/es/core/editor/components/settings/common/{NodeSizeInput.js → NodeSizeInput/NodeSizeInput.js} +2 -0
  20. package/es/core/editor/components/settings/common/NodeSizeInput/img/icon_/350/247/243/351/224/201.svg +16 -0
  21. package/es/core/editor/components/settings/common/NodeSizeInput/img/icon_/351/224/201.svg +15 -0
  22. package/es/core/editor/components/settings/common/text/FontStyleCheckbox.d.ts +1 -0
  23. package/es/core/editor/components/settings/common/text/FontStyleCheckbox.js +50 -0
  24. package/es/core/editor/components/settings/common/text/FontStyleCheckbox.module.scss +31 -0
  25. package/es/core/editor/components/settings/common/text/TextStyle.d.ts +1 -0
  26. package/es/core/editor/components/settings/common/text/TextStyle.js +133 -0
  27. package/es/core/editor/components/settings/common/text/fontStyleUtil.d.ts +19 -0
  28. package/es/core/editor/components/settings/common/text/fontStyleUtil.js +53 -0
  29. package/es/core/editor/components/settings/common/text/img/bold.svg +12 -0
  30. package/es/core/editor/components/settings/common/text/img/italics.svg +10 -0
  31. package/es/core/editor/components/settings/common/text/img/underline.svg +12 -0
  32. package/es/core/editor/components/settings/group/GroupNodeList/ResourceList.js +22 -6
  33. package/es/core/editor/components/settings/group/GroupNodeList/ResourceList.module.scss +16 -0
  34. package/es/core/editor/components/settings/group/GroupNodeList/icon.d.ts +10 -0
  35. package/es/core/editor/components/settings/group/GroupNodeList/icon.js +20 -1
  36. package/es/core/editor/components/settings/node/NodeIconSelect.d.ts +1 -0
  37. package/es/core/editor/components/settings/node/NodeIconSelect.js +42 -0
  38. package/es/core/editor/components/settings/node/NodePropertyView.d.ts +1 -1
  39. package/es/core/editor/components/settings/node/NodePropertyView.js +68 -86
  40. package/es/core/editor/components/settings/node/NodeRelateResourceButton.d.ts +4 -0
  41. package/es/core/editor/components/settings/node/NodeRelateResourceButton.js +22 -0
  42. package/es/core/editor/components/settings/node/TopoTreeSelect.d.ts +1 -0
  43. package/es/core/editor/components/settings/node/TopoTreeSelect.js +40 -0
  44. package/es/core/editor/components/settings/text/TextPropertyView.js +31 -144
  45. package/es/core/editor/components/settings/view/ViewPropertyView.js +1 -1
  46. package/es/core/editor/{buildContextmenu.d.ts → contextmenu/buildContextmenu.d.ts} +1 -4
  47. package/es/core/editor/contextmenu/buildContextmenu.js +10 -0
  48. package/es/hooks/useSelection.js +9 -3
  49. package/es/plugins/useSelectionPlugin.d.ts +23 -0
  50. package/es/plugins/useSelectionPlugin.js +84 -0
  51. package/es/style.js +1 -0
  52. package/es/utils/topoData.js +1 -1
  53. package/lib/components/Drawer/index.js +2 -1
  54. package/lib/components/Drawer/index.module.scss +13 -0
  55. package/lib/components/ResourceList/ResourceSelect.js +4 -2
  56. package/lib/components/ResourceList/ResourceSelect.module.scss +7 -0
  57. package/lib/components/ResourceSelect/ResourceSelectDrawer.js +3 -1
  58. package/lib/core/{editor/components/settings/group/GroupNodeList → common}/icons/defaultIcons.d.ts +15 -0
  59. package/lib/core/{editor/components/settings/group/GroupNodeList → common}/icons/defaultIcons.js +68 -1
  60. package/lib/core/common/text.module.scss +5 -0
  61. package/lib/core/editor/components/LinkDynamicStyleSettingDrawer/rule/ColorPicker.module.scss +7 -3
  62. package/lib/core/editor/components/iconManage/UploadIconDialog.js +2 -2
  63. package/lib/core/editor/components/settings/Settings.js +45 -42
  64. package/lib/core/editor/components/settings/Settings.module.scss +6 -1
  65. package/lib/core/editor/components/settings/common/{NodeSizeInput.d.ts → NodeSizeInput/NodeSizeInput.d.ts} +0 -0
  66. package/lib/core/editor/components/settings/common/{NodeSizeInput.js → NodeSizeInput/NodeSizeInput.js} +2 -0
  67. package/lib/core/editor/components/settings/common/NodeSizeInput/img/icon_/350/247/243/351/224/201.svg +16 -0
  68. package/lib/core/editor/components/settings/common/NodeSizeInput/img/icon_/351/224/201.svg +15 -0
  69. package/lib/core/editor/components/settings/common/text/FontStyleCheckbox.d.ts +1 -0
  70. package/lib/core/editor/components/settings/common/text/FontStyleCheckbox.js +68 -0
  71. package/lib/core/editor/components/settings/common/text/FontStyleCheckbox.module.scss +31 -0
  72. package/lib/core/editor/components/settings/common/text/TextStyle.d.ts +1 -0
  73. package/lib/core/editor/components/settings/common/text/TextStyle.js +150 -0
  74. package/lib/core/editor/components/settings/common/text/fontStyleUtil.d.ts +19 -0
  75. package/lib/core/editor/components/settings/common/text/fontStyleUtil.js +58 -0
  76. package/lib/core/editor/components/settings/common/text/img/bold.svg +12 -0
  77. package/lib/core/editor/components/settings/common/text/img/italics.svg +10 -0
  78. package/lib/core/editor/components/settings/common/text/img/underline.svg +12 -0
  79. package/lib/core/editor/components/settings/group/GroupNodeList/ResourceList.js +22 -7
  80. package/lib/core/editor/components/settings/group/GroupNodeList/ResourceList.module.scss +16 -0
  81. package/lib/core/editor/components/settings/group/GroupNodeList/icon.d.ts +10 -0
  82. package/lib/core/editor/components/settings/group/GroupNodeList/icon.js +23 -1
  83. package/lib/core/editor/components/settings/node/NodeIconSelect.d.ts +1 -0
  84. package/lib/core/editor/components/settings/node/NodeIconSelect.js +57 -0
  85. package/lib/core/editor/components/settings/node/NodePropertyView.d.ts +1 -1
  86. package/lib/core/editor/components/settings/node/NodePropertyView.js +74 -89
  87. package/lib/core/editor/components/settings/node/NodeRelateResourceButton.d.ts +4 -0
  88. package/lib/core/editor/components/settings/node/NodeRelateResourceButton.js +31 -0
  89. package/lib/core/editor/components/settings/node/TopoTreeSelect.d.ts +1 -0
  90. package/lib/core/editor/components/settings/node/TopoTreeSelect.js +53 -0
  91. package/lib/core/editor/components/settings/text/TextPropertyView.js +30 -149
  92. package/lib/core/editor/components/settings/view/ViewPropertyView.js +1 -1
  93. package/lib/core/editor/{buildContextmenu.d.ts → contextmenu/buildContextmenu.d.ts} +1 -4
  94. package/lib/core/editor/{buildContextmenu.js → contextmenu/buildContextmenu.js} +3 -7
  95. package/lib/hooks/useSelection.js +9 -3
  96. package/lib/plugins/useSelectionPlugin.d.ts +23 -0
  97. package/lib/plugins/useSelectionPlugin.js +90 -0
  98. package/lib/style.js +1 -0
  99. package/lib/utils/topoData.js +1 -1
  100. package/package.json +6 -6
  101. package/es/core/editor/buildContextmenu.js +0 -14
@@ -27,9 +27,30 @@ var _ViewPropertyView = _interopRequireDefault(require("./view/ViewPropertyView"
27
27
 
28
28
  var _LinkPropertyView = _interopRequireDefault(require("./link/LinkPropertyView"));
29
29
 
30
- function Settings(props) {
31
- var _selection$;
30
+ function getElementType(selection) {
31
+ var selectionElement = selection[0];
32
+ var selectionSize = selection.length;
33
+ var elementType;
32
34
 
35
+ if (!selectionSize) {
36
+ elementType = 'view';
37
+ } else if ((0, _htElementDataUtil.isGroup)(selectionElement)) {
38
+ elementType = 'group';
39
+ } else if ((0, _htElementDataUtil.isNode)(selectionElement)) {
40
+ elementType = 'node';
41
+ } else if ((0, _htElementDataUtil.isEdge)(selectionElement)) {
42
+ elementType = 'line';
43
+ } else if ((0, _htElementDataUtil.isLayer)(selectionElement)) {
44
+ // 分层
45
+ elementType = 'layer';
46
+ } else if ((0, _htElementDataUtil.isText)(selectionElement)) {
47
+ elementType = 'text';
48
+ }
49
+
50
+ return elementType;
51
+ }
52
+
53
+ function Settings(props) {
33
54
  var topo = props.topo,
34
55
  topoEditApi = props.topoEditApi,
35
56
  selection = props.selection,
@@ -41,9 +62,27 @@ function Settings(props) {
41
62
  (0, _react.useEffect)(function () {// const selectionModel = topo.getSelectionModel();
42
63
  // console.info('selection change', selection)
43
64
  }, [selection]);
44
- var attrTypes = ['attrObject', 'position', 'styleMap']; // TODO 待优化
65
+ var propertyPanelMap = {
66
+ view: _SettingsForm["default"],
67
+ node: _NodePropertyView["default"],
68
+ layer: _LayerSettingsForm["default"],
69
+ text: _TextPropertyView["default"]
70
+ };
71
+
72
+ if (localStorage.getItem('topo.debug') === 'true') {
73
+ Object.assign(propertyPanelMap, {
74
+ line: _LinkPropertyView["default"],
75
+ view: _ViewPropertyView["default"]
76
+ });
77
+ } else {
78
+ if (!selectionSize) {
79
+ // 未选择元素
80
+ return null;
81
+ }
82
+ } // TODO 待优化
83
+
45
84
 
46
- var updateElementProperty = (0, _react.useCallback)(function (name, value) {
85
+ var updateElementProperty = function updateElementProperty(name, value) {
47
86
  // const element = topo.getDataModel().getDataById(selection[0].id);
48
87
  var element = topo.getSelectionModel().getFirstData(); // console.info('updateElementProperty', {selection, element, name, value});
49
88
 
@@ -62,52 +101,16 @@ function Settings(props) {
62
101
  } else if (name === 'image') {
63
102
  element.setImage(value);
64
103
  }
65
- }, [(_selection$ = selection[0]) === null || _selection$ === void 0 ? void 0 : _selection$.id]);
66
- var propertyPanelMap = {
67
- view: _SettingsForm["default"],
68
- layer: _LayerSettingsForm["default"] // text: TextPropertyView,
69
- // node: NodePropertyView,
70
-
71
104
  };
72
105
 
73
- if (localStorage.getItem('topo.debug') === 'true') {
74
- Object.assign(propertyPanelMap, {
75
- text: _TextPropertyView["default"],
76
- node: _NodePropertyView["default"],
77
- line: _LinkPropertyView["default"],
78
- view: _ViewPropertyView["default"]
79
- });
80
- } else {
81
- if (!selectionSize) {
82
- // 未选择元素
83
- return null;
84
- }
85
- }
86
-
87
- var elementType;
88
- var selectionElement = selection[0];
89
-
90
- if (!selectionSize) {
91
- elementType = 'view';
92
- } else if ((0, _htElementDataUtil.isGroup)(selectionElement)) {
93
- elementType = 'group';
94
- } else if ((0, _htElementDataUtil.isNode)(selectionElement)) {
95
- elementType = 'node';
96
- } else if ((0, _htElementDataUtil.isEdge)(selectionElement)) {
97
- elementType = 'line';
98
- } else if ((0, _htElementDataUtil.isLayer)(selectionElement)) {
99
- // 分层
100
- elementType = 'layer';
101
- } else if ((0, _htElementDataUtil.isText)(selectionElement)) {
102
- elementType = 'text';
103
- }
104
-
106
+ var elementType = getElementType(selection);
105
107
  var Component = propertyPanelMap[elementType];
106
108
 
107
109
  if (!Component) {
108
110
  return null;
109
111
  }
110
112
 
113
+ var attrTypes = ['attrObject', 'position', 'styleMap'];
111
114
  var values = (0, _extends2["default"])({}, selection[0]);
112
115
  attrTypes.forEach(function (type) {
113
116
  Object.keys(values[type] || {}).forEach(function (key) {
@@ -1,5 +1,5 @@
1
1
  .settingsPanel {
2
- width: 260px;
2
+ width: 280px;
3
3
  height: 100%;
4
4
  position: absolute;
5
5
  top: 0;
@@ -34,6 +34,11 @@
34
34
  }
35
35
  .next-collapse-panel-title {
36
36
  background: none;
37
+ font-size: 12px;
38
+ padding-bottom: 0;
39
+ }
40
+ .next-collapse-panel-content {
41
+ padding-left: 32px;
37
42
  }
38
43
  }
39
44
 
@@ -48,6 +48,7 @@ function NodeSizeInput(props) {
48
48
  }, /*#__PURE__*/_react["default"].createElement(_numberPicker["default"], {
49
49
  name: "width",
50
50
  min: 1,
51
+ max: 2000,
51
52
  placeholder: "\u8BF7\u8F93\u5165",
52
53
  style: {
53
54
  width: '100%'
@@ -58,6 +59,7 @@ function NodeSizeInput(props) {
58
59
  }, /*#__PURE__*/_react["default"].createElement(_numberPicker["default"], {
59
60
  name: "height",
60
61
  min: 1,
62
+ max: 2000,
61
63
  placeholder: "\u8BF7\u8F93\u5165",
62
64
  style: {
63
65
  width: '100%'
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
4
+ <title>topo/source/Icon/解锁</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <g id="topo/source/Icon/解锁" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
7
+ <g id="Icon-HTSCIT_lianjieduankai" fill-rule="nonzero">
8
+ <g id="编组">
9
+ <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="16" height="16"></rect>
10
+ <path d="M12.16836,11.80814 L4.69432,4.33403 L5.41203,3.61632 L12.88607,11.09043 L12.16836,11.80814 Z M6.20072,10.5109 L5.48301,9.79326 L6.9976,8.27867 L7.71531,8.99638 L6.20072,10.5109 Z" id="形状" fill="#4D6277"></path>
11
+ <polygon id="路径" fill="#4D6277" points="9.79536 5.48126 10.51307 6.19897 8.99848 7.71363 8.28077 6.99592"></polygon>
12
+ <path d="M9.729,3.303 L12.704,6.271 L10.128,8.847 L10.842,9.554 L13.775,6.621 L14.132,6.264 L13.775,5.907 L10.086,2.225 L9.729,1.868 L9.379,2.225 L6.439,5.158 L7.16,5.872 L9.729,3.303 Z M6.264,12.711 L3.296,9.743 L5.879,7.16 L5.158,6.439 L2.225,9.372 L1.868,9.729 L2.225,10.086 L5.914,13.775 L6.271,14.132 L6.621,13.775 L9.561,10.842 L8.847,10.128 L6.264,12.711 Z" id="形状" fill="#4D6277"></path>
13
+ </g>
14
+ </g>
15
+ </g>
16
+ </svg>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
4
+ <title>topo/source/Icon/锁</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <g id="topo/source/Icon/锁" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
7
+ <g id="Icon-HTSCIT_lianjie" fill-rule="nonzero">
8
+ <g id="编组">
9
+ <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="16" height="16"></rect>
10
+ <path d="M6.264,12.711 L3.296,9.743 L5.879,7.16 L5.158,6.439 L2.225,9.372 L1.868,9.729 L2.225,10.086 L5.914,13.775 L6.271,14.132 L6.621,13.775 L9.561,10.842 L8.847,10.128 L6.264,12.711 Z M9.729,3.303 L12.704,6.271 L10.128,8.847 L10.842,9.554 L13.775,6.621 L14.132,6.264 L13.775,5.907 L10.086,2.225 L9.729,1.868 L9.379,2.225 L6.439,5.158 L7.16,5.872 L9.729,3.303 Z" id="形状" fill="#4D6277"></path>
11
+ <polygon id="路径" fill="#4D6277" points="10.51846 6.20114 6.20226 10.51727 5.48462 9.79956 9.80075 5.48336"></polygon>
12
+ </g>
13
+ </g>
14
+ </g>
15
+ </svg>
@@ -0,0 +1 @@
1
+ export default function FontStyleCheckbox(props: any): JSX.Element;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
7
+ exports.__esModule = true;
8
+ exports["default"] = FontStyleCheckbox;
9
+
10
+ var _button = _interopRequireDefault(require("@alifd/next/lib/button"));
11
+
12
+ var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _classnames2 = _interopRequireDefault(require("classnames"));
17
+
18
+ var _FontStyleCheckboxModule = _interopRequireDefault(require("./FontStyleCheckbox.module.scss"));
19
+
20
+ var _bold = _interopRequireDefault(require("./img/bold.svg"));
21
+
22
+ var _italics = _interopRequireDefault(require("./img/italics.svg"));
23
+
24
+ var _underline = _interopRequireDefault(require("./img/underline.svg"));
25
+
26
+ function FontStyleCheckbox(props) {
27
+ var value = props.value,
28
+ onChange = props.onChange;
29
+ var options = [{
30
+ name: 'bold',
31
+ img: _bold["default"],
32
+ title: '粗体'
33
+ }, {
34
+ name: 'italic',
35
+ img: _italics["default"],
36
+ title: '斜体'
37
+ }, {
38
+ name: 'underline',
39
+ img: _underline["default"],
40
+ title: '下划线'
41
+ }];
42
+
43
+ var handleClick = function handleClick(name) {
44
+ var _extends2;
45
+
46
+ onChange((0, _extends3["default"])({}, value, (_extends2 = {}, _extends2[name] = !value[name], _extends2)));
47
+ };
48
+
49
+ return /*#__PURE__*/_react["default"].createElement(_button["default"].Group, {
50
+ className: _FontStyleCheckboxModule["default"].buttonGroup
51
+ }, options.map(function (item) {
52
+ var _classnames;
53
+
54
+ return /*#__PURE__*/_react["default"].createElement(_button["default"], {
55
+ key: item.name,
56
+ className: (0, _classnames2["default"])(_FontStyleCheckboxModule["default"].button, (_classnames = {}, _classnames[_FontStyleCheckboxModule["default"].checked] = value[item.name], _classnames)),
57
+ onClick: function onClick() {
58
+ handleClick(item.name);
59
+ },
60
+ title: item.title
61
+ }, /*#__PURE__*/_react["default"].createElement("img", {
62
+ src: item.img,
63
+ alt: ""
64
+ }));
65
+ }));
66
+ }
67
+
68
+ ;
@@ -0,0 +1,31 @@
1
+ @import "@alifd/theme-19926/variables";
2
+
3
+ .buttonGroup {
4
+ display: flex;
5
+ }
6
+
7
+ .button {
8
+ flex: 1;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+
13
+ &:global {
14
+ &.next-btn.next-btn-normal:hover {
15
+ background: #F2F7FD;
16
+ border: 1px solid $input-border-color;
17
+ }
18
+ }
19
+
20
+ }
21
+
22
+ .checked {
23
+
24
+ &:global {
25
+ &.next-btn.next-btn-normal {
26
+ background: #F2F7FD;
27
+ }
28
+ }
29
+
30
+ }
31
+
@@ -0,0 +1 @@
1
+ export default function TextStyle(props: any): JSX.Element;
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
7
+ exports.__esModule = true;
8
+ exports["default"] = TextStyle;
9
+
10
+ var _numberPicker = _interopRequireDefault(require("@alifd/next/lib/number-picker"));
11
+
12
+ var _form = _interopRequireDefault(require("@alifd/next/lib/form"));
13
+
14
+ var _field = _interopRequireDefault(require("@alifd/next/lib/field"));
15
+
16
+ var _select = _interopRequireDefault(require("@alifd/next/lib/select"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _ColorPicker = _interopRequireDefault(require("../../../LinkDynamicStyleSettingDrawer/rule/ColorPicker"));
21
+
22
+ var _FontStyleCheckbox = _interopRequireDefault(require("./FontStyleCheckbox"));
23
+
24
+ var Option = _select["default"].Option;
25
+
26
+ function parseValue(value) {
27
+ return {
28
+ fontFamily: value.font.fontFamily || '黑体',
29
+ fontSize: value.font.fontSize || 12,
30
+ color: value.color || '#000000',
31
+ fontStyleChecked: {
32
+ underline: value.underline,
33
+ bold: value.font.bold,
34
+ italic: value.font.italic
35
+ }
36
+ };
37
+ }
38
+
39
+ function TextStyle(props) {
40
+ var value = props.value,
41
+ _onChange = props.onChange;
42
+
43
+ var field = _field["default"].useField({
44
+ autoUnmount: false,
45
+ values: parseValue(value),
46
+ onChange: function onChange(name, value) {
47
+ var values = field.getValues();
48
+ var aValues = {
49
+ color: values.color,
50
+ underline: values.fontStyleChecked.underline,
51
+ font: {
52
+ fontFamily: values.fontFamily,
53
+ fontSize: values.fontSize,
54
+ bold: values.fontStyleChecked.bold,
55
+ italic: values.fontStyleChecked.italic
56
+ }
57
+ };
58
+ _onChange && _onChange(aValues);
59
+ }
60
+ });
61
+
62
+ (0, _react.useEffect)(function () {
63
+ field.setValues(parseValue(value));
64
+ }, [value]);
65
+ return /*#__PURE__*/_react["default"].createElement(_form["default"], {
66
+ field: field,
67
+ labelAlign: "top",
68
+ component: "div"
69
+ }, /*#__PURE__*/_react["default"].createElement(_form["default"].Item, null, /*#__PURE__*/_react["default"].createElement("div", {
70
+ style: {
71
+ display: 'flex'
72
+ }
73
+ }, /*#__PURE__*/_react["default"].createElement("div", {
74
+ style: {
75
+ flex: 1,
76
+ paddingRight: 12
77
+ }
78
+ }, /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
79
+ label: "\u5B57\u4F53"
80
+ }, /*#__PURE__*/_react["default"].createElement(_select["default"], {
81
+ defaultValue: "\u9ED1\u4F53",
82
+ name: "fontFamily",
83
+ style: {
84
+ width: '100%',
85
+ marginRight: 8
86
+ }
87
+ }, /*#__PURE__*/_react["default"].createElement(Option, {
88
+ value: "\u5B8B\u4F53"
89
+ }, /*#__PURE__*/_react["default"].createElement("div", {
90
+ style: {
91
+ fontFamily: '宋体'
92
+ }
93
+ }, "\u5B8B\u4F53")), /*#__PURE__*/_react["default"].createElement(Option, {
94
+ value: "\u9ED1\u4F53"
95
+ }, /*#__PURE__*/_react["default"].createElement("div", {
96
+ style: {
97
+ fontFamily: '黑体'
98
+ }
99
+ }, "\u9ED1\u4F53")), /*#__PURE__*/_react["default"].createElement(Option, {
100
+ value: "Arial"
101
+ }, /*#__PURE__*/_react["default"].createElement("div", {
102
+ style: {
103
+ fontFamily: 'Arial'
104
+ }
105
+ }, "Arial"))))), /*#__PURE__*/_react["default"].createElement("div", {
106
+ style: {
107
+ width: 70
108
+ }
109
+ }, /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
110
+ label: "\u5B57\u53F7",
111
+ hasFeedback: true,
112
+ required: true,
113
+ requiredMessage: "\u4E0D\u80FD\u4E3A\u7A7A",
114
+ requiredTrigger: "onBlur",
115
+ asterisk: false
116
+ }, /*#__PURE__*/_react["default"].createElement(_numberPicker["default"], {
117
+ name: "fontSize",
118
+ min: 8,
119
+ max: 36,
120
+ style: {
121
+ width: '100%',
122
+ marginRight: 8
123
+ },
124
+ placeholder: "\u8BF7\u8F93\u5165"
125
+ })))), /*#__PURE__*/_react["default"].createElement("div", {
126
+ style: {
127
+ display: 'flex'
128
+ }
129
+ }, /*#__PURE__*/_react["default"].createElement("div", {
130
+ style: {
131
+ flex: 1,
132
+ paddingRight: 12
133
+ }
134
+ }, /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
135
+ label: "\u6837\u5F0F"
136
+ }, /*#__PURE__*/_react["default"].createElement(_FontStyleCheckbox["default"], {
137
+ name: "fontStyleChecked"
138
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
139
+ style: {
140
+ width: 70
141
+ }
142
+ }, /*#__PURE__*/_react["default"].createElement(_form["default"].Item, {
143
+ label: "\u989C\u8272"
144
+ }, /*#__PURE__*/_react["default"].createElement(_ColorPicker["default"], {
145
+ name: "color",
146
+ align: "br"
147
+ }))))));
148
+ }
149
+
150
+ ;
@@ -0,0 +1,19 @@
1
+ export default fontStyleUtil;
2
+ declare namespace fontStyleUtil {
3
+ export function toMap(font?: string): {
4
+ fontFamily: string;
5
+ fontSize: number;
6
+ bold: boolean;
7
+ italic: boolean;
8
+ };
9
+ export function toMap(font?: string): {
10
+ fontFamily: string;
11
+ fontSize: number;
12
+ bold: boolean;
13
+ italic: boolean;
14
+ };
15
+ export function build(style: any): string;
16
+ export function build(style: any): string;
17
+ export function getFontStyleMap(obj: any, prefix: any): {};
18
+ export function getFontStyleMap(obj: any, prefix: any): {};
19
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+ var fontStyleUtil = {
6
+ // 字体样式格式: bold italic 12px 黑体 或 12px 黑体
7
+ toMap: function toMap(font) {
8
+ if (font === void 0) {
9
+ font = '';
10
+ }
11
+
12
+ var arr = font.trim().split(' ');
13
+ var bold = font.indexOf('bold') > -1;
14
+ var italic = font.indexOf('italic') > -1;
15
+ var fontFamily, fontSize;
16
+
17
+ if (arr.length) {
18
+ fontFamily = arr[arr.length - 1];
19
+ }
20
+
21
+ if (arr.length >= 2) {
22
+ fontSize = parseInt(arr[arr.length - 2].replace('px', ''), 10);
23
+ }
24
+
25
+ return {
26
+ fontFamily: fontFamily,
27
+ fontSize: fontSize,
28
+ bold: bold,
29
+ italic: italic
30
+ };
31
+ },
32
+ // 字体样式格式: bold italic 12px 黑体 或 12px 黑体
33
+ build: function build(style) {
34
+ var font = '';
35
+
36
+ if (style.font.bold) {
37
+ font += 'bold ';
38
+ }
39
+
40
+ if (style.font.italic) {
41
+ font += 'italic ';
42
+ }
43
+
44
+ return "" + font + style.font.fontSize + "px " + style.font.fontFamily;
45
+ },
46
+ getFontStyleMap: function getFontStyleMap(obj, prefix) {
47
+ var map = {};
48
+ Object.keys(obj).forEach(function (key) {
49
+ if (key.startsWith(prefix)) {
50
+ map[key.replace(prefix, '')] = obj[key];
51
+ }
52
+ });
53
+ console.error(obj, prefix, map);
54
+ return map;
55
+ }
56
+ };
57
+ var _default = fontStyleUtil;
58
+ exports["default"] = _default;
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
4
+ <title>topo/source/Icon/bold</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <g id="topo/source/Icon/bold" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
7
+ <rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="16" height="16"></rect>
8
+ <g id="Icon-zitijiacu" transform="translate(4.000000, 3.000000)" fill="#4D6277" fill-rule="nonzero">
9
+ <path d="M7.01125,5.739125 C6.75175,5.339375 6.368875,5.0735 5.863,4.941875 L5.863,4.916375 C6.131125,4.788875 6.3565,4.646375 6.539125,4.488875 C6.722125,4.34 6.862375,4.1825 6.96025,4.01675 C7.1515,3.668 7.243,3.302375 7.234375,2.9195 C7.234375,2.171 7.002625,1.569125 6.539125,1.113875 C6.07975,0.663125 5.39275,0.433625 4.4785,0.425 L0.52225,0.425 L0.52225,9.7265 L4.79125,9.7265 C5.522875,9.7265 6.133,9.482 6.622375,8.992625 C7.115875,8.524625 7.36675,7.889 7.375,7.085375 C7.375,6.6005 7.253875,6.151625 7.01125,5.739125 Z M2.035,1.681625 L4.319125,1.681625 C4.833625,1.69025 5.212375,1.8155 5.454625,2.058125 C5.701375,2.317625 5.82475,2.6345 5.82475,3.00875 C5.82475,3.383 5.701375,3.6935 5.454625,3.94025 C5.212375,4.208 4.833625,4.34225 4.319125,4.34225 L2.035,4.34225 L2.035,1.681625 Z M5.601625,7.965875 C5.359375,8.24225 4.9765,8.38475 4.453375,8.393375 L2.035,8.393375 L2.035,5.59925 L4.453,5.59925 C4.976125,5.6075 5.359,5.745875 5.60125,6.014 C5.8435,6.28625 5.965,6.613625 5.965,6.9965 C5.965,7.370375 5.843875,7.693625 5.601625,7.965875 L5.601625,7.965875 Z" id="形状"></path>
10
+ </g>
11
+ </g>
12
+ </svg>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
4
+ <title>topo/source/Icon/italics</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <g id="topo/source/Icon/italics" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
7
+ <rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="2" y="2" width="12" height="12"></rect>
8
+ <polygon id="路径" fill="#4D6277" fill-rule="nonzero" points="8.77666667 4.29166666 7.19333333 12.2083333 8.77666667 12.2083333 8.77666667 13 4.02666667 13 4.02666667 12.2083333 5.60999999 12.2083333 7.19333333 4.29166666 5.60999999 4.29166666 5.60999999 3.5 10.36 3.5 10.36 4.29166666"></polygon>
9
+ </g>
10
+ </svg>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
4
+ <title>topo/source/Icon/underline</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <g id="topo/source/Icon/underline" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
7
+ <rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="16" height="16"></rect>
8
+ <g id="Icon-zitixiahuaxian" transform="translate(3.000000, 3.000000)" fill="#4D6277" fill-rule="nonzero">
9
+ <path d="M5,8.507375 C7.01929112,8.507375 8.65625,6.87041612 8.65625,4.851125 L8.65625,0.05 L7.34375,0.05 L7.34375,4.851125 C7.34375,6.14554238 6.29441738,7.194875 5,7.194875 C3.70558262,7.194875 2.65625,6.14554238 2.65625,4.851125 L2.65625,0.05 L1.34375,0.05 L1.34375,4.851125 C1.34375,6.87041612 2.98070888,8.507375 5,8.507375 Z M9.125,9.380375 L0.875,9.380375 C0.667893219,9.380375 0.5,9.54826822 0.5,9.755375 C0.5,9.96248178 0.667893219,10.130375 0.875,10.130375 L9.125,10.130375 C9.33210678,10.130375 9.5,9.96248178 9.5,9.755375 C9.5,9.54826822 9.33210678,9.380375 9.125,9.380375 Z" id="形状"></path>
10
+ </g>
11
+ </g>
12
+ </svg>
@@ -9,14 +9,33 @@ exports["default"] = void 0;
9
9
 
10
10
  var _list = _interopRequireDefault(require("@alifd/next/lib/list"));
11
11
 
12
- var _avatar = _interopRequireDefault(require("@alifd/next/lib/avatar"));
13
-
14
12
  var _react = _interopRequireWildcard(require("react"));
15
13
 
16
14
  var _ResourceListModule = _interopRequireDefault(require("./ResourceList.module.scss"));
17
15
 
18
16
  function ResourceList(props) {
19
17
  var data = props.data;
18
+
19
+ var renderIcon = function renderIcon(src) {
20
+ return /*#__PURE__*/_react["default"].createElement("div", {
21
+ style: {
22
+ width: 28,
23
+ height: 28,
24
+ background: "url(" + src + ") no-repeat center center"
25
+ }
26
+ });
27
+ };
28
+
29
+ var renderIcon2 = function renderIcon2(src) {
30
+ return /*#__PURE__*/_react["default"].createElement("div", {
31
+ className: _ResourceListModule["default"].iconWarp
32
+ }, /*#__PURE__*/_react["default"].createElement("img", {
33
+ src: src,
34
+ className: _ResourceListModule["default"].iconImg,
35
+ alt: ""
36
+ }));
37
+ };
38
+
20
39
  return /*#__PURE__*/_react["default"].createElement("div", {
21
40
  className: _ResourceListModule["default"].list
22
41
  }, /*#__PURE__*/_react["default"].createElement(_list["default"], {
@@ -26,11 +45,7 @@ function ResourceList(props) {
26
45
  return /*#__PURE__*/_react["default"].createElement(_list["default"].Item, {
27
46
  key: i,
28
47
  extra: item.money,
29
- media: /*#__PURE__*/_react["default"].createElement(_avatar["default"], {
30
- src: item.img,
31
- shape: "square",
32
- size: "small"
33
- })
48
+ media: renderIcon2(item.img)
34
49
  }, item.title);
35
50
  }
36
51
  }));
@@ -13,3 +13,19 @@
13
13
  }
14
14
  }
15
15
  }
16
+
17
+ .iconWarp {
18
+ width: 28px;
19
+ height: 28px;
20
+ line-height: 28px;
21
+ text-align: center;
22
+
23
+ .iconImg {
24
+ display: inline-block;
25
+ width: auto;
26
+ height: auto;
27
+ max-width: 28px;
28
+ max-height: 100%;
29
+ vertical-align: middle;
30
+ }
31
+ }
@@ -66,4 +66,14 @@ export function getIconMap(topo: any): {
66
66
  'editor.icon.balanc.small': string;
67
67
  'editor.icon.calendar.small': string;
68
68
  };
69
+ /**
70
+ *
71
+ * @param topo
72
+ * @param type {'node' | 'container'}
73
+ * @return {{label: string, icons: *[]}[]}
74
+ */
75
+ export function getIconGroups(topo: any, type: 'node' | 'container'): {
76
+ label: string;
77
+ icons: any[];
78
+ }[];
69
79
  export function getIconById(id: any, topo: any): any;