tntd 1.3.66 → 1.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 (167) hide show
  1. package/dist/0645cf743e4e44ca9da321d689897f07.png +0 -0
  2. package/dist/09db77de0c24fa0f45f8a5cf299a3d11.png +0 -0
  3. package/dist/1.tntd.js +12 -0
  4. package/dist/1d0b52448de217857b270af807e9360d.png +0 -0
  5. package/dist/25d78d77c9c2f0d403e5d899ceb5b1ef.png +0 -0
  6. package/dist/27fa44ff0c98e1594d79b73045aabedf.png +0 -0
  7. package/dist/2c95075adb68d6131b59cae9fa554ec2.png +0 -0
  8. package/dist/377c871d922a25c773a9e7c2f42ed7c0.png +0 -0
  9. package/dist/3d901589b40bd56ff1fde2bbb700bfe1.png +0 -0
  10. package/dist/4abe481e130d7be0574e45573de8beb7.png +0 -0
  11. package/dist/95ee2260a509cd630d89c5367ed1973b.png +0 -0
  12. package/dist/b9dd5ff3622296fbee51ed68f4bca1bf.png +0 -0
  13. package/dist/bd2921989f9296089ba58efb7a76f3ef.png +0 -0
  14. package/dist/stats.json +45855 -0
  15. package/dist/tntd.css +1 -0
  16. package/dist/tntd.js +15 -0
  17. package/es/ArrayInput/README.md +129 -0
  18. package/es/ArrayInput/icon.js +24 -0
  19. package/es/ArrayInput/index.js +282 -0
  20. package/es/ArrayInput/index.less +20 -0
  21. package/es/AuthContext.js +4 -0
  22. package/es/Columns/README.md +149 -0
  23. package/es/Columns/index.js +86 -0
  24. package/es/Columns/index.less +75 -0
  25. package/es/DevelopmentLogin/LoginModal.js +126 -0
  26. package/es/DevelopmentLogin/README.md +49 -0
  27. package/es/DevelopmentLogin/index.js +40 -0
  28. package/es/Ellipsis/README.md +104 -0
  29. package/es/Ellipsis/Svg/CopySVG.js +63 -0
  30. package/es/Ellipsis/Svg/TickSVG.js +41 -0
  31. package/es/Ellipsis/index.js +143 -0
  32. package/es/Ellipsis/index.less +56 -0
  33. package/es/Handle/README.md +104 -0
  34. package/es/Handle/index.js +92 -0
  35. package/es/Handle/index.less +9 -0
  36. package/es/Icon/README.md +119 -0
  37. package/es/Icon/fonts/demo.css +539 -0
  38. package/es/Icon/fonts/demo_index.html +3345 -0
  39. package/es/Icon/fonts/iconfont.css +569 -0
  40. package/es/Icon/fonts/iconfont.eot +0 -0
  41. package/es/Icon/fonts/iconfont.js +41 -0
  42. package/es/Icon/fonts/iconfont.json +975 -0
  43. package/es/Icon/fonts/iconfont.svg +440 -0
  44. package/es/Icon/fonts/iconfont.ttf +0 -0
  45. package/es/Icon/fonts/iconfont.woff +0 -0
  46. package/es/Icon/fonts/iconfont.woff2 +0 -0
  47. package/es/Icon/iconList.js +1 -0
  48. package/es/Icon/index.js +26 -0
  49. package/es/Icon/index.less +9 -0
  50. package/es/Img/Contain.js +69 -0
  51. package/es/Img/Cover.js +126 -0
  52. package/es/Img/README.md +131 -0
  53. package/es/Img/index.js +76 -0
  54. package/es/Layout/ActionsContext.js +3 -0
  55. package/es/Layout/AppList.js +233 -0
  56. package/es/Layout/Application.js +115 -0
  57. package/es/Layout/Avatar.js +116 -0
  58. package/es/Layout/CompatibleLanguage.js +179 -0
  59. package/es/Layout/EnterpriseLayout/Avatar.js +144 -0
  60. package/es/Layout/EnterpriseLayout/Language.js +81 -0
  61. package/es/Layout/EnterpriseLayout/Theme.js +77 -0
  62. package/es/Layout/EnterpriseLayout/index.js +31 -0
  63. package/es/Layout/GlobalNavigation/NavigationPopup.js +396 -0
  64. package/es/Layout/GlobalNavigation/index.js +137 -0
  65. package/es/Layout/Header.js +95 -0
  66. package/es/Layout/HeaderActions.js +107 -0
  67. package/es/Layout/HeaderNavs.js +93 -0
  68. package/es/Layout/HeaderTabs.js +264 -0
  69. package/es/Layout/Iconfont.js +4 -0
  70. package/es/Layout/Language.js +81 -0
  71. package/es/Layout/Layout.js +234 -0
  72. package/es/Layout/Logo.js +86 -0
  73. package/es/Layout/OrgAppList.js +310 -0
  74. package/es/Layout/README.md +783 -0
  75. package/es/Layout/SideMenu.js +340 -0
  76. package/es/Layout/Theme.js +107 -0
  77. package/es/Layout/checkAuth.js +29 -0
  78. package/es/Layout/createActions.js +39 -0
  79. package/es/Layout/images/avatar/empty.png +0 -0
  80. package/es/Layout/images/avatar/female1.png +0 -0
  81. package/es/Layout/images/avatar/female2.png +0 -0
  82. package/es/Layout/images/avatar/female3.png +0 -0
  83. package/es/Layout/images/avatar/female4.png +0 -0
  84. package/es/Layout/images/avatar/female5.png +0 -0
  85. package/es/Layout/images/avatar/female6.png +0 -0
  86. package/es/Layout/images/avatar/male1.png +0 -0
  87. package/es/Layout/images/avatar/male2.png +0 -0
  88. package/es/Layout/images/avatar/male3.png +0 -0
  89. package/es/Layout/images/avatar/male4.png +0 -0
  90. package/es/Layout/images/avatar/male5.png +0 -0
  91. package/es/Layout/images/avatar/male6.png +0 -0
  92. package/es/Layout/images/index.js +35 -0
  93. package/es/Layout/images/logo/baldur.svg +14 -0
  94. package/es/Layout/images/logo/bi.svg +14 -0
  95. package/es/Layout/images/logo/bridge.svg +15 -0
  96. package/es/Layout/images/logo/convert.svg +18 -0
  97. package/es/Layout/images/logo/dataocean.svg +31 -0
  98. package/es/Layout/images/logo/default.svg +19 -0
  99. package/es/Layout/images/logo/dispatch.svg +14 -0
  100. package/es/Layout/images/logo/graph.svg +26 -0
  101. package/es/Layout/images/logo/handle.svg +10 -0
  102. package/es/Layout/images/logo/indicator.svg +41 -0
  103. package/es/Layout/images/logo/kafka.svg +12 -0
  104. package/es/Layout/images/logo/logo-custom.svg +13 -0
  105. package/es/Layout/images/logo/model.svg +17 -0
  106. package/es/Layout/images/logo/mysql.svg +15 -0
  107. package/es/Layout/images/logo/orion.svg +24 -0
  108. package/es/Layout/images/logo/salaxy.svg +11 -0
  109. package/es/Layout/images/logo/storage.svg +16 -0
  110. package/es/Layout/images/logo/tnt_cli_identify.svg +19 -0
  111. package/es/Layout/images/logo/turing.svg +35 -0
  112. package/es/Layout/images/theme/theme1.svg +35 -0
  113. package/es/Layout/images/theme/theme2.svg +33 -0
  114. package/es/Layout/index.js +122 -0
  115. package/es/Layout/paaslayout/CompactSideMenu.js +167 -0
  116. package/es/Layout/paaslayout/Header.js +77 -0
  117. package/es/Layout/paaslayout/Logo.js +22 -0
  118. package/es/Layout/paaslayout/SideMenu.js +168 -0
  119. package/es/Layout/paaslayout/index.js +235 -0
  120. package/es/Layout/storage.js +47 -0
  121. package/es/Layout/utils.js +136 -0
  122. package/es/LoadingButton/README.md +75 -0
  123. package/es/LoadingButton/index.js +45 -0
  124. package/es/Modal/README.md +59 -0
  125. package/es/Modal/index.js +96 -0
  126. package/es/Modal/index.less +86 -0
  127. package/es/Page/Box.js +74 -0
  128. package/es/Page/README.md +180 -0
  129. package/es/Page/index.js +165 -0
  130. package/es/Page/index.less +144 -0
  131. package/es/Page/utils.js +23 -0
  132. package/es/QueryForm/Field/Checkbox.js +21 -0
  133. package/es/QueryForm/Field/Select.js +80 -0
  134. package/es/QueryForm/Field/SelectInput.js +92 -0
  135. package/es/QueryForm/Field/fieldsMap.js +32 -0
  136. package/es/QueryForm/Field/index.js +157 -0
  137. package/es/QueryForm/README.md +512 -0
  138. package/es/QueryForm/createActions.js +53 -0
  139. package/es/QueryForm/index.js +384 -0
  140. package/es/QueryForm/index.less +133 -0
  141. package/es/QueryForm/useForm.js +7 -0
  142. package/es/QueryListScene/List.js +378 -0
  143. package/es/QueryListScene/QueryForm.js +166 -0
  144. package/es/QueryListScene/QueryListScene.js +76 -0
  145. package/es/QueryListScene/README.md +790 -0
  146. package/es/QueryListScene/Title.js +12 -0
  147. package/es/QueryListScene/Toolbar.js +20 -0
  148. package/es/QueryListScene/createActions.js +72 -0
  149. package/es/QueryListScene/index.js +19 -0
  150. package/es/QueryListScene/index.less +97 -0
  151. package/es/QueryListScene/useActions.js +7 -0
  152. package/es/Select/DropDownWrap.js +116 -0
  153. package/es/Select/README.md +68 -0
  154. package/es/Select/index.js +622 -0
  155. package/es/Table/README.md +109 -0
  156. package/es/Table/ResizableTable/index.js +110 -0
  157. package/es/Table/ResizableTable/index.less +36 -0
  158. package/es/Table/index.js +35 -0
  159. package/es/Title/README.md +106 -0
  160. package/es/Title/index.js +40 -0
  161. package/es/Title/index.less +170 -0
  162. package/es/index.js +19 -0
  163. package/es/locale.js +60 -0
  164. package/package.json +1 -1
  165. package/doc-scripts.config.js +0 -37
  166. package/doc-scripts.renderer.js +0 -11
  167. package/docs/README.md +0 -1643
@@ -0,0 +1,86 @@
1
+ import "antd/es/row/style";
2
+ import _Row from "antd/es/row";
3
+ import "antd/es/col/style";
4
+ import _Col from "antd/es/col";
5
+
6
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
7
+
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
9
+
10
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11
+
12
+ 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; }
13
+
14
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
15
+
16
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
17
+
18
+ import classnames from 'classnames';
19
+ import './index.less';
20
+ var clsPrefix = 'tnt-columns';
21
+ export var Item = function Item(props) {
22
+ var children = props.children,
23
+ span = props.span,
24
+ extra = props.extra,
25
+ title = props.title,
26
+ tabList = props.tabList,
27
+ defaultActiveTabKey = props.defaultActiveTabKey,
28
+ activeTabKey = props.activeTabKey,
29
+ tabType = props.tabType,
30
+ onTabChange = props.onTabChange;
31
+ var realActiveKey = activeTabKey || defaultActiveTabKey;
32
+ return React.createElement(_Col, {
33
+ className: "".concat(clsPrefix, "-col"),
34
+ span: span < 4 ? 4 : span
35
+ }, React.createElement("div", null, (!tabList || tabList.length < 0) && React.createElement("div", {
36
+ className: "".concat(clsPrefix, "-col-header")
37
+ }, React.createElement("div", {
38
+ className: "title-left"
39
+ }, title), extra && React.createElement("div", {
40
+ className: "title-extra"
41
+ }, extra)), (tabList == null ? void 0 : tabList.length) > 0 && React.createElement("div", {
42
+ className: "".concat(clsPrefix, "-col-tabs"),
43
+ tabType: tabType,
44
+ tabList: tabList
45
+ }, tabList.map(function (_ref) {
46
+ var tab = _ref.tab,
47
+ key = _ref.key;
48
+ return React.createElement("span", {
49
+ className: classnames('tab-item', {
50
+ 'active-tab': realActiveKey === key
51
+ }),
52
+ style: {
53
+ width: tabList && tabType === 'default' ? 'auto' : "".concat(100 / tabList.length, "%")
54
+ },
55
+ key: key,
56
+ onClick: function onClick() {
57
+ return onTabChange(key);
58
+ }
59
+ }, tab);
60
+ })), React.createElement("div", {
61
+ className: "".concat(clsPrefix, "-col-body")
62
+ }, children)));
63
+ };
64
+
65
+ var Columns = function Columns(props) {
66
+ var children = props.children,
67
+ height = props.height,
68
+ _props$gutter = props.gutter,
69
+ gutter = _props$gutter === void 0 ? 0 : _props$gutter,
70
+ style = props.style,
71
+ rest = _objectWithoutProperties(props, ["children", "height", "gutter", "style"]);
72
+
73
+ var rowStyle = _objectSpread({}, style, {
74
+ height: props.height ? "".concat(props.height, "px") : 'calc(100vh)'
75
+ });
76
+
77
+ return React.createElement(_Row, _extends({
78
+ className: classnames(clsPrefix, {
79
+ gutter: gutter
80
+ }),
81
+ style: rowStyle
82
+ }, rest), children);
83
+ };
84
+
85
+ Columns.Item = Item;
86
+ export default Columns;
@@ -0,0 +1,75 @@
1
+ .tnt-columns {
2
+ .ant-col:not(:first-of-type) > div {
3
+ box-shadow: 5px 5px 10px -4px rgba(213,213,213,0.50), 3px -5px 10px -4px rgba(213,213,213,0.40);
4
+ .gutter & {
5
+ box-shadow: 0 0 10px 0 rgba(213,213,213,0.50);
6
+ }
7
+ }
8
+
9
+ .ant-col:first-child > div {
10
+ box-shadow: 0 0 10px 0 rgba(213,213,213,0.50);
11
+ }
12
+
13
+ &-col {
14
+ height: inherit;
15
+ & > div {
16
+ height: inherit;
17
+ }
18
+
19
+ &-header {
20
+ padding: 0 20px;
21
+ height: 48px;
22
+ line-height: 48px;
23
+ border-bottom: 1px solid #E1E6EE;
24
+
25
+ .title-left {
26
+ float: left;
27
+ color: #17233D;
28
+ font-size: 14px;
29
+ }
30
+ .title-extra {
31
+ float: right;
32
+
33
+ .ant-btn {
34
+ width: 64px;
35
+ height: 22px;
36
+ font-size: 12px;
37
+ }
38
+
39
+ .ant-btn-primary {
40
+ background: #126BFB;
41
+ border-radius: 2px;
42
+ border-color: #126BFB;
43
+ }
44
+ }
45
+ }
46
+
47
+ &-tabs {
48
+ height: 48px;
49
+ line-height: 48px;
50
+ border-bottom: 1px solid #E1E6EE;
51
+ color: #17233D;
52
+ font-size: 14px;
53
+
54
+ .tab-item {
55
+ display: inline-block;
56
+ padding: 0 20px;
57
+ height: 48px;
58
+ text-align: center;
59
+ cursor: pointer;
60
+ transition: borderBottom 1s;
61
+ }
62
+
63
+ .active-tab {
64
+ border-bottom: 2px solid #126BFB;
65
+ }
66
+ }
67
+
68
+ &-body {
69
+ height: calc(~"100% - 48px");
70
+ padding: 10px 20px;
71
+ overflow-y: scroll;
72
+ color: #17233D;
73
+ }
74
+ }
75
+ }
@@ -0,0 +1,126 @@
1
+ import "antd/es/modal/style";
2
+ import _Modal from "antd/es/modal";
3
+ import "antd/es/form/style";
4
+ import _Form from "antd/es/form";
5
+ import "antd/es/input/style";
6
+ import _Input from "antd/es/input";
7
+ import "antd/es/message/style";
8
+ import _message from "antd/es/message";
9
+
10
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
11
+
12
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
+
14
+ 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; }
15
+
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
17
+
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
19
+
20
+ function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
21
+
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
+
24
+ import { useState } from 'react';
25
+ import Cookies from 'universal-cookie';
26
+ var cookies = new Cookies(); // 默认
27
+
28
+ var accountInfoDefault = {
29
+ account: 'admin',
30
+ password: 'Td@123456'
31
+ };
32
+ export default (function (_ref) {
33
+ var visible = _ref.visible,
34
+ close = _ref.close,
35
+ signIn = _ref.signIn;
36
+
37
+ var _useState = useState(false),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ confirmLoading = _useState2[0],
40
+ setConfirmLoading = _useState2[1]; // 如果storage中已存在,则取storage
41
+
42
+
43
+ var storageAccountInfo = localStorage.getItem('accountInfo');
44
+
45
+ if (storageAccountInfo) {
46
+ try {
47
+ accountInfoDefault = JSON.parse(storageAccountInfo);
48
+ } catch (e) {}
49
+ }
50
+
51
+ var _useState3 = useState(accountInfoDefault),
52
+ _useState4 = _slicedToArray(_useState3, 2),
53
+ accountInfo = _useState4[0],
54
+ setAccountInfo = _useState4[1];
55
+
56
+ var account = accountInfo.account,
57
+ password = accountInfo.password;
58
+
59
+ var onSubmit = function onSubmit() {
60
+ setConfirmLoading(true);
61
+ var returnVal = signIn && signIn(accountInfo);
62
+
63
+ if (returnVal && returnVal.then) {
64
+ returnVal.then(function (res) {
65
+ _message.success('模拟登陆成功');
66
+
67
+ localStorage.setItem('accountInfo', JSON.stringify(accountInfo));
68
+ setConfirmLoading(false);
69
+ setTimeout(function () {
70
+ var _ref2 = res || {},
71
+ token = _ref2.tdToken,
72
+ userId = _ref2.userId;
73
+
74
+ cookies.set('_td_token_', token, {
75
+ path: '/'
76
+ });
77
+ cookies.set('_uid_', userId, {
78
+ path: '/'
79
+ });
80
+ close();
81
+ }, 500);
82
+ })["catch"](function (err) {
83
+ setConfirmLoading(false);
84
+ throw err;
85
+ });
86
+ }
87
+ };
88
+
89
+ var changeFieldValue = function changeFieldValue(key, evt) {
90
+ setAccountInfo(_objectSpread({}, accountInfo, _defineProperty({}, key, evt.target.value)));
91
+ };
92
+
93
+ return React.createElement(_Modal, {
94
+ title: "\u5F00\u53D1\u8005\u6A21\u62DF\u767B\u9646",
95
+ visible: visible,
96
+ maskClosable: false,
97
+ onOk: onSubmit,
98
+ onCancel: close,
99
+ confirmLoading: confirmLoading
100
+ }, React.createElement(_Form, {
101
+ labelCol: {
102
+ span: 5
103
+ },
104
+ wrapperCol: {
105
+ span: 18
106
+ }
107
+ }, React.createElement(_Form.Item, {
108
+ label: "\u7528\u6237\u540D\uFF1A"
109
+ }, React.createElement(_Input, {
110
+ type: "text",
111
+ placeholder: "\u8BF7\u8F93\u5165\u7528\u6237\u540D",
112
+ value: account || undefined,
113
+ onChange: function onChange(evt) {
114
+ return changeFieldValue('account', evt);
115
+ }
116
+ })), React.createElement(_Form.Item, {
117
+ label: "\u5BC6\u7801\uFF1A"
118
+ }, React.createElement(_Input, {
119
+ type: "text",
120
+ placeholder: "\u8BF7\u8F93\u5165\u7528\u6237\u540D",
121
+ value: password || undefined,
122
+ onChange: function onChange(evt) {
123
+ return changeFieldValue('password', evt);
124
+ }
125
+ }))));
126
+ });
@@ -0,0 +1,49 @@
1
+ ## DevelopmentLogin组件
2
+ ### 代码演示
3
+ ```jsx
4
+ import { Fragment, useState } from 'react';
5
+ import ReactDOM from 'react-dom';
6
+ import { createGlobalStyle } from 'styled-components';
7
+ import { DevelopmentLogin } from 'tntd';
8
+ import 'antd/dist/antd.css';
9
+
10
+ const GlobalStyle = createGlobalStyle`
11
+ .site-body {
12
+ .ichYgh {
13
+ padding: 0;
14
+ overflow: visible;
15
+ }
16
+ }
17
+ `;
18
+
19
+ ReactDOM.render(
20
+ <DevelopmentLogin
21
+ signIn={params => {
22
+ console.log('login info...', params);
23
+ // TODO 发送请求到后端登录,返回一个promise
24
+ // 目前组件内部在拿到返回的数据后默认的处理逻辑如下:
25
+ /*
26
+ const { tdToken: token, userId } = res || {};
27
+
28
+ cookies.set('_td_token_', token, { path: '/' });
29
+ cookies.set('_uid_', userId, { path: '/' });
30
+ */
31
+ return new Promise(resolve => {
32
+ setTimeout(() => {
33
+ resolve({
34
+ tdToken: 'tdToken', userId: 'userId'
35
+ });
36
+ }, 100);
37
+ });
38
+ }}
39
+ />,
40
+ document.getElementById('root')
41
+ );
42
+ ```
43
+
44
+ ### API
45
+ #### Icon
46
+
47
+ | 属性名称 | 属性说明 | 类型 | 默认值 | 是否必须 |
48
+ | :---------- | :------------------------------ | :------ | :---------- | :------- |
49
+ | signIn | 登录时执行的方法 | Function(返回值类型Promise) | 无 | 是 |
@@ -0,0 +1,40 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
2
+
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
4
+
5
+ function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
6
+
7
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
+
9
+ /**
10
+ * @file 本地开发登录入口
11
+ */
12
+ import React, { useState } from 'react';
13
+ var DevelopmentLoginModal = React.lazy(function () {
14
+ return import('./LoginModal');
15
+ });
16
+ export default (function (_ref) {
17
+ var signIn = _ref.signIn;
18
+
19
+ var _useState = useState(false),
20
+ _useState2 = _slicedToArray(_useState, 2),
21
+ loginVisible = _useState2[0],
22
+ setLoginVisible = _useState2[1];
23
+
24
+ return React.createElement(React.Fragment, null, React.createElement("a", {
25
+ style: {
26
+ fontSize: 14
27
+ },
28
+ onClick: function onClick() {
29
+ return setLoginVisible(true);
30
+ }
31
+ }, "\u6A21\u62DF\u767B\u5F55"), loginVisible && React.createElement(React.Suspense, {
32
+ fallback: React.createElement("div", null, "\u6B63\u5728\u52A0\u8F7D\u4E2D")
33
+ }, React.createElement(DevelopmentLoginModal, {
34
+ visible: loginVisible,
35
+ signIn: signIn,
36
+ close: function close() {
37
+ return setLoginVisible(false);
38
+ }
39
+ })));
40
+ });
@@ -0,0 +1,104 @@
1
+ ## Ellipsis省略号
2
+
3
+ ## 代码演示
4
+ ``` jsx
5
+ import React from 'react';
6
+ import ReactDOM from 'react-dom';
7
+ import { Ellipsis } from 'tntd';
8
+ import {Tag} from "antd";
9
+ import 'antd/dist/antd.css';
10
+
11
+ const Demo = props => {
12
+ return (
13
+ <>
14
+ {/* instance 1 */}
15
+ <Ellipsis
16
+ Popover
17
+ copyable
18
+ widthLimit={100}
19
+ content="你看我有省略号吗?"
20
+ />
21
+
22
+ <div style={{width: 100}}>
23
+
24
+ {/* 例 2 */}
25
+ <Ellipsis lines={2} copyable title="你看我有省略号吗?你看我有省略号吗?你看我有省略号吗?"/>
26
+
27
+ {/* 例 3 */}
28
+ <Ellipsis>
29
+ 1你看我有省.01
30
+ </Ellipsis>
31
+
32
+ {/* 例 4 */}
33
+ <Ellipsis
34
+ placement="topLeft"
35
+ >
36
+ 你看我有省略号吗1?
37
+ </Ellipsis>
38
+
39
+ <Ellipsis
40
+ placement="topLeft"
41
+ title="你看我有省略号吗?你看我有省略号吗?你看我有省略号吗?"
42
+ suffix={(
43
+ <Tag style={{marginLeft: "6px"}}>测试</Tag>
44
+ )}
45
+ />
46
+ </div>
47
+ </>
48
+ );
49
+ }
50
+
51
+ ReactDOM.render(
52
+ <Demo />,
53
+ document.getElementById('root')
54
+ );
55
+ ```
56
+
57
+
58
+ 根据限宽截断文本并显示省略号,进而添加Tooltip/Popover悬浮效果以显示完整文本。旨在解决根据字符长度截断时不能很好的兼容中英文的问题。
59
+
60
+ ## 更新日志
61
+ - 1.0.10 提升兼容性;
62
+ - 1.0.9 优化svg引入方式,消除columns.fixed中的闪动;
63
+ - 1.0.2 新增功能,**复制按钮**;
64
+ - 1.0.1 新增功能,**支持多行**;
65
+ - 1.0.0 以CSS宽度溢出驱动截断的Ellipsis发布,**支持单行**;
66
+ ...
67
+
68
+ ## API
69
+ 参数均同Ant3 Tooltip/Popover。 以下为新增参数
70
+ | 参数 | 说明 | 类型 |
71
+ | ---- | ---- | ---- |
72
+ | Popover | 指定超出宽度后,悬浮显示的类型为`Popover`,缺省则为`Tooltip` | |
73
+ | emptyText | 空文本字符,缺省值为空 | string |
74
+ | widthLimit | 指定溢出宽度值,缺省值为父元素宽度 | number &#124; string |
75
+ | lines| 指定多行截断的最大行数,***可能在非Webkit内核浏览器中表现不稳定*** | number
76
+ | copyable| ***(新)*** 显示复制按钮,缺省值为不显示,文本为空时亦不显示 | |
77
+ | suffix | 后缀 | string &#124; ReactNode &#124; () => ReactNode|
78
+ | prefix | 前缀 | string &#124; ReactNode &#124; () => ReactNode|
79
+
80
+ #### 其他参数
81
+ | 参数 | 说明 | 类型 |
82
+ | ---- | ---- | ---- |
83
+ | title | 同Tooltip,可省略,缺省值为元素文本 | string |
84
+ | content | 同Popover,可省略,缺省值为元素文本 | string |
85
+
86
+ ## 何时使用
87
+ 需要使文本元素在宽度溢出时显示省略号并添加悬浮效果(Tooltip/Popover)时。
88
+
89
+ ## 如何使用
90
+ - 支持`Popover`和`Tooltip`两种悬浮效果;
91
+ - 当选用`Popover`时,将需要展示的内容放在`content`里(如例1),并添加`Popover`属性;
92
+ - 当选用`Tooltip`时,将需要展示的内容放在`title`(如例2)或包含在标签里(如例3);
93
+ - -----
94
+ - 为什么不使用统一的属性传递展示的内容?因为antd3中的`Popover`和`Tooltip`的属性是有区别的,`Popover`用`title`作卡片标题,`content`作卡片内容,而`Tooltip`仅用`title`作卡片内容,没有标题功能;具体请参考 [Ant3-Popover](https://3x.ant.design/components/popover-cn/) 和 [Ant3-Tooltip](https://3x.ant.design/components/tooltip-cn/)
95
+ - 相应的,你可以直接使用`Popover`和`Tooltip`的API(如例4);转换一下思维,你可以把它当作带有***省略号、复制***的`Popover/Tooltip`使用;
96
+ - 利用好`emptyText`属性,在Table中直接作为render中的父元素(例5);
97
+ - ----
98
+ - 根据需求添加下列选填项
99
+ - 添加`copyable`属性后,会在右侧添加一个复制按钮,
100
+ - 添加`lines`指定多行限制,仅在需要多行功能时使用,
101
+ - 添加`widthLimit`属性以增加限制宽度,若不添加则会受父元素宽度限制,
102
+ - 添加`emptyText`指定数据为空时的文本,例如`emptyText="- -"`
103
+ - 添加 `prefix/suffix` 指定前/后缀
104
+
@@ -0,0 +1,63 @@
1
+ export default (function (props) {
2
+ return React.createElement("div", props, React.createElement("svg", {
3
+ width: "16px",
4
+ height: "16px",
5
+ viewBox: "0 0 16 16"
6
+ }, React.createElement("g", {
7
+ id: "\u5168\u5BB6\u6876\u89C6\u89C9\u65B9\u6848\u4F18\u5316",
8
+ stroke: "none",
9
+ "stroke-width": "1",
10
+ fill: "none",
11
+ "fill-rule": "evenodd"
12
+ }, React.createElement("g", {
13
+ id: "\u5DE5\u4F5C\u53F01",
14
+ transform: "translate(-730.000000, -299.000000)"
15
+ }, React.createElement("g", {
16
+ id: "\u5206\u7EC4-6",
17
+ transform: "translate(240.000000, 96.000000)"
18
+ }, React.createElement("g", {
19
+ id: "\u7F16\u7EC4-18",
20
+ transform: "translate(0.000000, 171.000000)"
21
+ }, React.createElement("g", {
22
+ id: "\u590D\u5236",
23
+ transform: "translate(490.000000, 32.000000)"
24
+ }, React.createElement("rect", {
25
+ id: "\u77E9\u5F62",
26
+ fill: "#D8D8D8",
27
+ opacity: "0",
28
+ x: "0",
29
+ y: "0",
30
+ width: "16",
31
+ height: "16"
32
+ }), React.createElement("g", {
33
+ id: "\u7F16\u7EC4-5",
34
+ transform: "translate(2.223389, 1.330322)",
35
+ stroke: "#1e90ff",
36
+ "stroke-linecap": "round",
37
+ "stroke-width": "1.2"
38
+ }, React.createElement("polygon", {
39
+ id: "\u8DEF\u5F84",
40
+ "stroke-linejoin": "round",
41
+ points: "2 11.3333333 11.3333333 11.3333333 11.3333333 4 7.66666667 -8.8817842e-15 2 -8.8817842e-15"
42
+ }), React.createElement("polyline", {
43
+ id: "\u8DEF\u5F84",
44
+ "stroke-linejoin": "round",
45
+ points: "7.66666667 0 7.66666667 4 11.3333333 4"
46
+ }), React.createElement("polyline", {
47
+ id: "\u8DEF\u5F84",
48
+ "stroke-linejoin": "round",
49
+ points: "0 5.33333333 0 13.3333333 7 13.3333333"
50
+ }), React.createElement("line", {
51
+ x1: "4",
52
+ y1: "5.33333333",
53
+ x2: "5.33333333",
54
+ y2: "5.33333333",
55
+ id: "\u8DEF\u5F84"
56
+ }), React.createElement("line", {
57
+ x1: "4",
58
+ y1: "8",
59
+ x2: "8",
60
+ y2: "8",
61
+ id: "\u8DEF\u5F84"
62
+ })))))))));
63
+ });
@@ -0,0 +1,41 @@
1
+ export default (function (props) {
2
+ return React.createElement("div", props, React.createElement("svg", {
3
+ width: "17px",
4
+ height: "16px",
5
+ viewBox: "0 0 17 16"
6
+ }, React.createElement("g", {
7
+ id: "\u5168\u5BB6\u6876\u89C6\u89C9\u65B9\u6848\u4F18\u5316",
8
+ stroke: "none",
9
+ "stroke-width": "1",
10
+ fill: "none",
11
+ "fill-rule": "evenodd"
12
+ }, React.createElement("g", {
13
+ id: "\u5DE5\u4F5C\u53F01",
14
+ transform: "translate(-754.000000, -299.000000)"
15
+ }, React.createElement("g", {
16
+ id: "\u5206\u7EC4-6",
17
+ transform: "translate(240.000000, 96.000000)"
18
+ }, React.createElement("g", {
19
+ id: "\u7F16\u7EC4-18",
20
+ transform: "translate(0.000000, 171.000000)"
21
+ }, React.createElement("g", {
22
+ id: "\u590D\u5236\u6210\u529F",
23
+ transform: "translate(514.500000, 32.000000)"
24
+ }, React.createElement("rect", {
25
+ id: "\u77E9\u5F62",
26
+ "fill-opacity": "0.01",
27
+ fill: "#FFFFFF",
28
+ "fill-rule": "nonzero",
29
+ x: "0",
30
+ y: "0",
31
+ width: "16",
32
+ height: "16"
33
+ }), React.createElement("polyline", {
34
+ id: "\u8DEF\u5F84",
35
+ stroke: "#07C790",
36
+ "stroke-width": "1.2",
37
+ "stroke-linecap": "round",
38
+ "stroke-linejoin": "round",
39
+ points: "14.3333333 3.66666667 5.625 12.3333333 1.66666667 8.39393333"
40
+ }))))))));
41
+ });