@teamix/pro 1.5.23 → 1.5.24

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 (106) hide show
  1. package/dist/pro.all.min.css +1 -1
  2. package/dist/pro.css +1 -1
  3. package/dist/pro.js +13072 -8392
  4. package/dist/pro.min.css +1 -1
  5. package/dist/pro.min.js +1 -1
  6. package/dist/pro.min.js.LICENSE.txt +9 -0
  7. package/dist/pro.xconsole.min.css +1 -1
  8. package/es/actions/index.js +5 -3
  9. package/es/actions/index.scss +4 -0
  10. package/es/form/Components/FormItem2/animation.scss +72 -0
  11. package/es/form/Components/FormItem2/grid.scss +173 -0
  12. package/es/form/Components/FormItem2/index.d.ts +41 -0
  13. package/es/form/Components/FormItem2/index.js +286 -0
  14. package/es/form/Components/FormItem2/main.scss +413 -0
  15. package/es/form/Components/FormItem2/scss/variable.scss +118 -0
  16. package/es/form/Components/FormItem2/style.d.ts +1 -0
  17. package/es/form/Components/FormItem2/style.js +1 -0
  18. package/es/form/Components/LightFilter/index.scss +4 -0
  19. package/es/form/Components/__builtins__/empty.d.ts +1 -0
  20. package/es/form/Components/__builtins__/empty.js +51 -0
  21. package/es/form/Components/__builtins__/hooks/index.d.ts +2 -0
  22. package/es/form/Components/__builtins__/hooks/index.js +2 -0
  23. package/es/form/Components/__builtins__/hooks/useClickAway.d.ts +5 -0
  24. package/es/form/Components/__builtins__/hooks/useClickAway.js +37 -0
  25. package/es/form/Components/__builtins__/hooks/usePrefixCls.d.ts +3 -0
  26. package/es/form/Components/__builtins__/hooks/usePrefixCls.js +8 -0
  27. package/es/form/Components/__builtins__/icons.d.ts +20 -0
  28. package/es/form/Components/__builtins__/icons.js +153 -0
  29. package/es/form/Components/__builtins__/index.d.ts +8 -0
  30. package/es/form/Components/__builtins__/index.js +8 -0
  31. package/es/form/Components/__builtins__/loading.d.ts +1 -0
  32. package/es/form/Components/__builtins__/loading.js +41 -0
  33. package/es/form/Components/__builtins__/mapSize.d.ts +1 -0
  34. package/es/form/Components/__builtins__/mapSize.js +13 -0
  35. package/es/form/Components/__builtins__/mapStatus.d.ts +2 -0
  36. package/es/form/Components/__builtins__/mapStatus.js +20 -0
  37. package/es/form/Components/__builtins__/moment.d.ts +2 -0
  38. package/es/form/Components/__builtins__/moment.js +47 -0
  39. package/es/form/Components/__builtins__/pickDataProps.d.ts +1 -0
  40. package/es/form/Components/__builtins__/pickDataProps.js +9 -0
  41. package/es/form/Components/form-layout/index.d.ts +74 -0
  42. package/es/form/Components/form-layout/index.js +71 -0
  43. package/es/form/Components/form-layout/main.scss +0 -0
  44. package/es/form/Components/form-layout/style.d.ts +1 -0
  45. package/es/form/Components/form-layout/style.js +3 -0
  46. package/es/form/Components/form-layout/useResponsiveFormLayout.d.ts +18 -0
  47. package/es/form/Components/form-layout/useResponsiveFormLayout.js +87 -0
  48. package/es/form/Filter/AdvancedFilter.js +1 -1
  49. package/es/form/Filter/index2.js +1 -1
  50. package/es/form/ProForm/index.js +3 -1
  51. package/es/image/index.d.ts +2 -1
  52. package/es/image/index.js +3 -2
  53. package/es/index.d.ts +1 -1
  54. package/es/index.js +1 -1
  55. package/es/table/index.js +4 -4
  56. package/es/xconsole.scss +1 -0
  57. package/lib/actions/index.js +5 -3
  58. package/lib/actions/index.scss +4 -0
  59. package/lib/form/Components/FormItem2/animation.scss +72 -0
  60. package/lib/form/Components/FormItem2/grid.scss +173 -0
  61. package/lib/form/Components/FormItem2/index.d.ts +41 -0
  62. package/lib/form/Components/FormItem2/index.js +299 -0
  63. package/lib/form/Components/FormItem2/main.scss +413 -0
  64. package/lib/form/Components/FormItem2/scss/variable.scss +118 -0
  65. package/lib/form/Components/FormItem2/style.d.ts +1 -0
  66. package/lib/form/Components/FormItem2/style.js +3 -0
  67. package/lib/form/Components/LightFilter/index.scss +4 -0
  68. package/lib/form/Components/__builtins__/empty.d.ts +1 -0
  69. package/lib/form/Components/__builtins__/empty.js +59 -0
  70. package/lib/form/Components/__builtins__/hooks/index.d.ts +2 -0
  71. package/lib/form/Components/__builtins__/hooks/index.js +27 -0
  72. package/lib/form/Components/__builtins__/hooks/useClickAway.d.ts +5 -0
  73. package/lib/form/Components/__builtins__/hooks/useClickAway.js +44 -0
  74. package/lib/form/Components/__builtins__/hooks/usePrefixCls.d.ts +3 -0
  75. package/lib/form/Components/__builtins__/hooks/usePrefixCls.js +15 -0
  76. package/lib/form/Components/__builtins__/icons.d.ts +20 -0
  77. package/lib/form/Components/__builtins__/icons.js +174 -0
  78. package/lib/form/Components/__builtins__/index.d.ts +8 -0
  79. package/lib/form/Components/__builtins__/index.js +93 -0
  80. package/lib/form/Components/__builtins__/loading.d.ts +1 -0
  81. package/lib/form/Components/__builtins__/loading.js +48 -0
  82. package/lib/form/Components/__builtins__/mapSize.d.ts +1 -0
  83. package/lib/form/Components/__builtins__/mapSize.js +20 -0
  84. package/lib/form/Components/__builtins__/mapStatus.d.ts +2 -0
  85. package/lib/form/Components/__builtins__/mapStatus.js +27 -0
  86. package/lib/form/Components/__builtins__/moment.d.ts +2 -0
  87. package/lib/form/Components/__builtins__/moment.js +56 -0
  88. package/lib/form/Components/__builtins__/pickDataProps.d.ts +1 -0
  89. package/lib/form/Components/__builtins__/pickDataProps.js +16 -0
  90. package/lib/form/Components/form-layout/index.d.ts +74 -0
  91. package/lib/form/Components/form-layout/index.js +88 -0
  92. package/lib/form/Components/form-layout/main.scss +0 -0
  93. package/lib/form/Components/form-layout/style.d.ts +1 -0
  94. package/lib/form/Components/form-layout/style.js +3 -0
  95. package/lib/form/Components/form-layout/useResponsiveFormLayout.d.ts +18 -0
  96. package/lib/form/Components/form-layout/useResponsiveFormLayout.js +94 -0
  97. package/lib/form/Filter/AdvancedFilter.js +1 -1
  98. package/lib/form/Filter/index2.js +1 -1
  99. package/lib/form/ProForm/index.js +3 -1
  100. package/lib/image/index.d.ts +2 -1
  101. package/lib/image/index.js +3 -2
  102. package/lib/index.d.ts +1 -1
  103. package/lib/index.js +1 -1
  104. package/lib/table/index.js +4 -4
  105. package/lib/xconsole.scss +1 -0
  106. package/package.json +1 -1
@@ -114,6 +114,7 @@ var buttonContent = function buttonContent(content, iconType, iconSize, context)
114
114
  return renderedContent;
115
115
  }
116
116
  return [/*#__PURE__*/React.createElement(Icon, {
117
+ className: 'teamix-pro-action-prefix-icon',
117
118
  type: iconType,
118
119
  size: iconSize,
119
120
  key: "teamix-button-icon"
@@ -123,7 +124,7 @@ export var ProActionButton = function ProActionButton(props) {
123
124
  var config = props.config,
124
125
  icon = props.icon,
125
126
  _props$iconSize = props.iconSize,
126
- iconSize = _props$iconSize === void 0 ? 'medium' : _props$iconSize,
127
+ iconSize = _props$iconSize === void 0 ? 'small' : _props$iconSize,
127
128
  _props$type = props.type,
128
129
  type = _props$type === void 0 ? 'primary' : _props$type,
129
130
  context = props.context,
@@ -204,7 +205,7 @@ var ProActionMenuButtonItem = function ProActionMenuButtonItem(props) {
204
205
  if (dataTeamixSpm) {
205
206
  buttonProps['data-teamix-spm'] = dataTeamixSpm;
206
207
  }
207
- var content = buttonContent(children, icon, undefined, context);
208
+ var content = buttonContent(children, icon, 'small', context);
208
209
  var baseToolTipProps = _objectSpread({
209
210
  triggerType: 'hover',
210
211
  align: 't',
@@ -252,7 +253,8 @@ function renderCommonActionButtonMenuItem(action, key, context, dataTeamixSpm) {
252
253
  }
253
254
  export var ProActionMenuButton = function ProActionMenuButton(props) {
254
255
  var icon = props.icon,
255
- iconSize = props.iconSize,
256
+ _props$iconSize2 = props.iconSize,
257
+ iconSize = _props$iconSize2 === void 0 ? 'small' : _props$iconSize2,
256
258
  label = props.label,
257
259
  actions = props.actions,
258
260
  children = props.children,
@@ -139,3 +139,7 @@
139
139
  background: var(--drawer-bg);
140
140
  }
141
141
  }
142
+
143
+ .teamix-pro-action-prefix-icon {
144
+ margin-right: 4px
145
+ }
@@ -0,0 +1,72 @@
1
+ @-webkit-keyframes antShowHelpIn {
2
+ 0% {
3
+ -webkit-transform: translateY(-5px);
4
+ transform: translateY(-5px);
5
+ opacity: 0;
6
+ }
7
+
8
+ to {
9
+ -webkit-transform: translateY(0);
10
+ transform: translateY(0);
11
+ opacity: 1;
12
+ }
13
+ }
14
+
15
+ .#{$form-item-cls}-help-appear,
16
+ .#{$form-item-cls}-help-enter {
17
+ -webkit-animation-duration: 0.3s;
18
+ animation-duration: 0.3s;
19
+ -webkit-animation-fill-mode: both;
20
+ animation-fill-mode: both;
21
+ -webkit-animation-play-state: paused;
22
+ animation-play-state: paused;
23
+ }
24
+
25
+ .#{$form-item-cls}-help-appear.#{$form-item-cls}-help-appear-active,
26
+ .#{$form-item-cls}-help-enter.#{$form-item-cls}-help-enter-active {
27
+ -webkit-animation-name: antShowHelpIn;
28
+ animation-name: antShowHelpIn;
29
+ -webkit-animation-play-state: running;
30
+ animation-play-state: running;
31
+ }
32
+
33
+ .#{$form-item-cls}-help-appear,
34
+ .#{$form-item-cls}-help-enter {
35
+ opacity: 0;
36
+ }
37
+
38
+ .#{$form-item-cls}-help-appear,
39
+ .#{$form-item-cls}-help-enter {
40
+ -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
41
+ animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
42
+ }
43
+
44
+ @keyframes antShowHelpIn {
45
+ 0% {
46
+ -webkit-transform: translateY(-5px);
47
+ transform: translateY(-5px);
48
+ opacity: 0;
49
+ }
50
+
51
+ to {
52
+ -webkit-transform: translateY(0);
53
+ transform: translateY(0);
54
+ opacity: 1;
55
+ }
56
+ }
57
+
58
+ @-webkit-keyframes antShowHelpOut {
59
+ to {
60
+ -webkit-transform: translateY(-5px);
61
+ transform: translateY(-5px);
62
+ opacity: 0;
63
+ }
64
+ }
65
+
66
+ @keyframes antShowHelpOut {
67
+ to {
68
+ -webkit-transform: translateY(-5px);
69
+ transform: translateY(-5px);
70
+ opacity: 0;
71
+ }
72
+ }
@@ -0,0 +1,173 @@
1
+ .#{$form-item-cls} {
2
+ .#{$form-item-cls}-item-col-24 {
3
+ -webkit-box-flex: 0;
4
+ -ms-flex: 0 0 100%;
5
+ flex: 0 0 100%;
6
+ max-width: 100%;
7
+ }
8
+
9
+ .#{$form-item-cls}-item-col-23 {
10
+ -webkit-box-flex: 0;
11
+ -ms-flex: 0 0 95.83333333%;
12
+ flex: 0 0 95.83333333%;
13
+ max-width: 95.83333333%;
14
+ }
15
+
16
+ .#{$form-item-cls}-item-col-22 {
17
+ -webkit-box-flex: 0;
18
+ -ms-flex: 0 0 91.66666667%;
19
+ flex: 0 0 91.66666667%;
20
+ max-width: 91.66666667%;
21
+ }
22
+
23
+ .#{$form-item-cls}-item-col-21 {
24
+ -webkit-box-flex: 0;
25
+ -ms-flex: 0 0 87.5%;
26
+ flex: 0 0 87.5%;
27
+ max-width: 87.5%;
28
+ }
29
+
30
+ .#{$form-item-cls}-item-col-20 {
31
+ -webkit-box-flex: 0;
32
+ -ms-flex: 0 0 83.33333333%;
33
+ flex: 0 0 83.33333333%;
34
+ max-width: 83.33333333%;
35
+ }
36
+
37
+ .#{$form-item-cls}-item-col-19 {
38
+ -webkit-box-flex: 0;
39
+ -ms-flex: 0 0 79.16666667%;
40
+ flex: 0 0 79.16666667%;
41
+ max-width: 79.16666667%;
42
+ }
43
+
44
+ .#{$form-item-cls}-item-col-18 {
45
+ -webkit-box-flex: 0;
46
+ -ms-flex: 0 0 75%;
47
+ flex: 0 0 75%;
48
+ max-width: 75%;
49
+ }
50
+
51
+ .#{$form-item-cls}-item-col-17 {
52
+ -webkit-box-flex: 0;
53
+ -ms-flex: 0 0 70.83333333%;
54
+ flex: 0 0 70.83333333%;
55
+ max-width: 70.83333333%;
56
+ }
57
+
58
+ .#{$form-item-cls}-item-col-16 {
59
+ -webkit-box-flex: 0;
60
+ -ms-flex: 0 0 66.66666667%;
61
+ flex: 0 0 66.66666667%;
62
+ max-width: 66.66666667%;
63
+ }
64
+
65
+ .#{$form-item-cls}-item-col-15 {
66
+ -webkit-box-flex: 0;
67
+ -ms-flex: 0 0 62.5%;
68
+ flex: 0 0 62.5%;
69
+ max-width: 62.5%;
70
+ }
71
+
72
+ .#{$form-item-cls}-item-col-14 {
73
+ -webkit-box-flex: 0;
74
+ -ms-flex: 0 0 58.33333333%;
75
+ flex: 0 0 58.33333333%;
76
+ max-width: 58.33333333%;
77
+ }
78
+
79
+ .#{$form-item-cls}-item-col-13 {
80
+ -webkit-box-flex: 0;
81
+ -ms-flex: 0 0 54.16666667%;
82
+ flex: 0 0 54.16666667%;
83
+ max-width: 54.16666667%;
84
+ }
85
+
86
+ .#{$form-item-cls}-item-col-12 {
87
+ -webkit-box-flex: 0;
88
+ -ms-flex: 0 0 50%;
89
+ flex: 0 0 50%;
90
+ max-width: 50%;
91
+ }
92
+
93
+ .#{$form-item-cls}-item-col-11 {
94
+ -webkit-box-flex: 0;
95
+ -ms-flex: 0 0 45.83333333%;
96
+ flex: 0 0 45.83333333%;
97
+ max-width: 45.83333333%;
98
+ }
99
+
100
+ .#{$form-item-cls}-item-col-10 {
101
+ -webkit-box-flex: 0;
102
+ -ms-flex: 0 0 41.66666667%;
103
+ flex: 0 0 41.66666667%;
104
+ max-width: 41.66666667%;
105
+ }
106
+
107
+ .#{$form-item-cls}-item-col-9 {
108
+ -webkit-box-flex: 0;
109
+ -ms-flex: 0 0 37.5%;
110
+ flex: 0 0 37.5%;
111
+ max-width: 37.5%;
112
+ }
113
+
114
+ .#{$form-item-cls}-item-col-8 {
115
+ -webkit-box-flex: 0;
116
+ -ms-flex: 0 0 33.33333333%;
117
+ flex: 0 0 33.33333333%;
118
+ max-width: 33.33333333%;
119
+ }
120
+
121
+ .#{$form-item-cls}-item-col-7 {
122
+ -webkit-box-flex: 0;
123
+ -ms-flex: 0 0 29.16666667%;
124
+ flex: 0 0 29.16666667%;
125
+ max-width: 29.16666667%;
126
+ }
127
+
128
+ .#{$form-item-cls}-item-col-6 {
129
+ -webkit-box-flex: 0;
130
+ -ms-flex: 0 0 25%;
131
+ flex: 0 0 25%;
132
+ max-width: 25%;
133
+ }
134
+
135
+ .#{$form-item-cls}-item-col-5 {
136
+ -webkit-box-flex: 0;
137
+ -ms-flex: 0 0 20.83333333%;
138
+ flex: 0 0 20.83333333%;
139
+ max-width: 20.83333333%;
140
+ }
141
+
142
+ .#{$form-item-cls}-item-col-4 {
143
+ -webkit-box-flex: 0;
144
+ -ms-flex: 0 0 16.66666667%;
145
+ flex: 0 0 16.66666667%;
146
+ max-width: 16.66666667%;
147
+ }
148
+
149
+ .#{$form-item-cls}-item-col-3 {
150
+ -webkit-box-flex: 0;
151
+ -ms-flex: 0 0 12.5%;
152
+ flex: 0 0 12.5%;
153
+ max-width: 12.5%;
154
+ }
155
+
156
+ .#{$form-item-cls}-item-col-2 {
157
+ -webkit-box-flex: 0;
158
+ -ms-flex: 0 0 8.33333333%;
159
+ flex: 0 0 8.33333333%;
160
+ max-width: 8.33333333%;
161
+ }
162
+
163
+ .#{$form-item-cls}-item-col-1 {
164
+ -webkit-box-flex: 0;
165
+ -ms-flex: 0 0 4.16666667%;
166
+ flex: 0 0 4.16666667%;
167
+ max-width: 4.16666667%;
168
+ }
169
+
170
+ .#{$form-item-cls}-item-col-0 {
171
+ display: none;
172
+ }
173
+ }
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ export interface IFormItemProps {
3
+ className?: string;
4
+ style?: React.CSSProperties;
5
+ prefix?: string;
6
+ label?: React.ReactNode;
7
+ colon?: boolean;
8
+ layout?: 'vertical' | 'horizontal' | 'inline';
9
+ tooltip?: React.ReactNode;
10
+ tooltipLayout?: 'icon' | 'text';
11
+ tooltipIcon?: React.ReactNode;
12
+ labelStyle?: React.CSSProperties;
13
+ labelAlign?: 'left' | 'right';
14
+ labelWrap?: boolean;
15
+ labelWidth?: number | string;
16
+ wrapperWidth?: number | string;
17
+ labelCol?: number;
18
+ wrapperCol?: number;
19
+ wrapperAlign?: 'left' | 'right';
20
+ wrapperWrap?: boolean;
21
+ wrapperStyle?: React.CSSProperties;
22
+ fullness?: boolean;
23
+ addonBefore?: React.ReactNode;
24
+ addonAfter?: React.ReactNode;
25
+ size?: 'small' | 'default' | 'large';
26
+ inset?: boolean;
27
+ extra?: React.ReactNode;
28
+ feedbackText?: React.ReactNode;
29
+ feedbackLayout?: 'loose' | 'terse' | 'popover' | 'none' | 'hover-popover' | (string & {});
30
+ feedbackStatus?: 'error' | 'warning' | 'success' | 'pending' | (string & {});
31
+ feedbackIcon?: React.ReactNode;
32
+ asterisk?: boolean;
33
+ gridSpan?: number;
34
+ bordered?: boolean;
35
+ }
36
+ declare type ComposeFormItem = React.FC<React.PropsWithChildren<IFormItemProps>> & {
37
+ BaseItem?: React.FC<React.PropsWithChildren<IFormItemProps>>;
38
+ };
39
+ export declare const BaseItem: React.FC<React.PropsWithChildren<IFormItemProps>>;
40
+ export declare const FormItem2: ComposeFormItem;
41
+ export default FormItem2;
@@ -0,0 +1,286 @@
1
+ var _excluded = ["children"];
2
+ 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; }
3
+ 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; }
4
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
7
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
8
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
9
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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
+ import React, { useState, useRef, useEffect } from 'react';
14
+ import cls from 'classnames';
15
+ import { usePrefixCls, pickDataProps, QuestionCircleOutlinedIcon, CloseCircleOutlinedIcon, CheckCircleOutlinedIcon, ExclamationCircleOutlinedIcon } from '../__builtins__';
16
+ import { isVoidField } from '@formily/core';
17
+ import { connect, mapProps } from '@formily/react';
18
+ import { useFormLayout, FormLayoutShallowContext } from '../form-layout';
19
+ import { Balloon } from '@alicloudfe/components';
20
+ var useFormItemLayout = function useFormItemLayout(props) {
21
+ var _ref, _props$layout, _props$colon, _props$labelAlign, _ref2, _props$labelAlign2, _props$labelWrap, _props$labelWidth, _props$wrapperWidth, _props$labelCol, _props$wrapperCol, _props$wrapperAlign, _props$wrapperWrap, _props$fullness, _props$size, _props$inset, _props$bordered, _ref3, _props$feedbackLayout, _ref4, _props$tooltipLayout, _ref5, _props$tooltipIcon;
22
+ var layout = useFormLayout();
23
+ var layoutType = (_ref = (_props$layout = props.layout) !== null && _props$layout !== void 0 ? _props$layout : layout.layout) !== null && _ref !== void 0 ? _ref : 'horizontal';
24
+ return _objectSpread(_objectSpread({}, props), {}, {
25
+ layout: layoutType,
26
+ colon: (_props$colon = props.colon) !== null && _props$colon !== void 0 ? _props$colon : layout.colon,
27
+ labelAlign: layoutType === 'vertical' ? (_props$labelAlign = props.labelAlign) !== null && _props$labelAlign !== void 0 ? _props$labelAlign : 'left' : (_ref2 = (_props$labelAlign2 = props.labelAlign) !== null && _props$labelAlign2 !== void 0 ? _props$labelAlign2 : layout.labelAlign) !== null && _ref2 !== void 0 ? _ref2 : 'right',
28
+ labelWrap: (_props$labelWrap = props.labelWrap) !== null && _props$labelWrap !== void 0 ? _props$labelWrap : layout.labelWrap,
29
+ labelWidth: (_props$labelWidth = props.labelWidth) !== null && _props$labelWidth !== void 0 ? _props$labelWidth : layout.labelWidth,
30
+ wrapperWidth: (_props$wrapperWidth = props.wrapperWidth) !== null && _props$wrapperWidth !== void 0 ? _props$wrapperWidth : layout.wrapperWidth,
31
+ labelCol: (_props$labelCol = props.labelCol) !== null && _props$labelCol !== void 0 ? _props$labelCol : layout.labelCol,
32
+ wrapperCol: (_props$wrapperCol = props.wrapperCol) !== null && _props$wrapperCol !== void 0 ? _props$wrapperCol : layout.wrapperCol,
33
+ wrapperAlign: (_props$wrapperAlign = props.wrapperAlign) !== null && _props$wrapperAlign !== void 0 ? _props$wrapperAlign : layout.wrapperAlign,
34
+ wrapperWrap: (_props$wrapperWrap = props.wrapperWrap) !== null && _props$wrapperWrap !== void 0 ? _props$wrapperWrap : layout.wrapperWrap,
35
+ fullness: (_props$fullness = props.fullness) !== null && _props$fullness !== void 0 ? _props$fullness : layout.fullness,
36
+ size: (_props$size = props.size) !== null && _props$size !== void 0 ? _props$size : layout.size,
37
+ inset: (_props$inset = props.inset) !== null && _props$inset !== void 0 ? _props$inset : layout.inset,
38
+ asterisk: props.asterisk,
39
+ bordered: (_props$bordered = props.bordered) !== null && _props$bordered !== void 0 ? _props$bordered : layout.bordered,
40
+ feedbackIcon: props.feedbackIcon,
41
+ feedbackLayout: (_ref3 = (_props$feedbackLayout = props.feedbackLayout) !== null && _props$feedbackLayout !== void 0 ? _props$feedbackLayout : layout.feedbackLayout) !== null && _ref3 !== void 0 ? _ref3 : 'loose',
42
+ tooltipLayout: (_ref4 = (_props$tooltipLayout = props.tooltipLayout) !== null && _props$tooltipLayout !== void 0 ? _props$tooltipLayout : layout.tooltipLayout) !== null && _ref4 !== void 0 ? _ref4 : 'icon',
43
+ tooltipIcon: (_ref5 = (_props$tooltipIcon = props.tooltipIcon) !== null && _props$tooltipIcon !== void 0 ? _props$tooltipIcon : layout.tooltipIcon) !== null && _ref5 !== void 0 ? _ref5 : /*#__PURE__*/React.createElement(QuestionCircleOutlinedIcon, null)
44
+ });
45
+ };
46
+ function useOverflow() {
47
+ var _useState = useState(false),
48
+ _useState2 = _slicedToArray(_useState, 2),
49
+ overflow = _useState2[0],
50
+ setOverflow = _useState2[1];
51
+ var containerRef = useRef();
52
+ var contentRef = useRef();
53
+ var layout = useFormLayout();
54
+ var labelCol = JSON.stringify(layout.labelCol);
55
+ useEffect(function () {
56
+ requestAnimationFrame(function () {
57
+ if (containerRef.current && contentRef.current) {
58
+ var contentWidth = contentRef.current.getBoundingClientRect().width;
59
+ var containerWidth = containerRef.current.getBoundingClientRect().width;
60
+ if (contentWidth && containerWidth && containerWidth < contentWidth) {
61
+ if (!overflow) setOverflow(true);
62
+ } else {
63
+ if (overflow) setOverflow(false);
64
+ }
65
+ }
66
+ });
67
+ }, [labelCol]);
68
+ return {
69
+ overflow: overflow,
70
+ containerRef: containerRef,
71
+ contentRef: contentRef
72
+ };
73
+ }
74
+ var ICON_MAP = {
75
+ error: /*#__PURE__*/React.createElement(CloseCircleOutlinedIcon, null),
76
+ success: /*#__PURE__*/React.createElement(CheckCircleOutlinedIcon, null),
77
+ warning: /*#__PURE__*/React.createElement(ExclamationCircleOutlinedIcon, null)
78
+ };
79
+ export var BaseItem = function BaseItem(props) {
80
+ var _cls, _cls3, _cls4, _cls5, _cls6;
81
+ console.log('FormItem2');
82
+ var children = props.children,
83
+ others = _objectWithoutProperties(props, _excluded);
84
+ var _useState3 = useState(false),
85
+ _useState4 = _slicedToArray(_useState3, 2),
86
+ active = _useState4[0],
87
+ setActive = _useState4[1];
88
+ var formLayout = useFormItemLayout(others);
89
+ var _useOverflow = useOverflow(),
90
+ containerRef = _useOverflow.containerRef,
91
+ contentRef = _useOverflow.contentRef,
92
+ overflow = _useOverflow.overflow;
93
+ var label = formLayout.label,
94
+ style = formLayout.style,
95
+ layout = formLayout.layout,
96
+ _formLayout$colon = formLayout.colon,
97
+ colon = _formLayout$colon === void 0 ? true : _formLayout$colon,
98
+ addonBefore = formLayout.addonBefore,
99
+ addonAfter = formLayout.addonAfter,
100
+ asterisk = formLayout.asterisk,
101
+ feedbackStatus = formLayout.feedbackStatus,
102
+ extra = formLayout.extra,
103
+ feedbackText = formLayout.feedbackText,
104
+ fullness = formLayout.fullness,
105
+ feedbackLayout = formLayout.feedbackLayout,
106
+ feedbackIcon = formLayout.feedbackIcon,
107
+ inset = formLayout.inset,
108
+ _formLayout$bordered = formLayout.bordered,
109
+ bordered = _formLayout$bordered === void 0 ? true : _formLayout$bordered,
110
+ labelWidth = formLayout.labelWidth,
111
+ wrapperWidth = formLayout.wrapperWidth,
112
+ labelCol = formLayout.labelCol,
113
+ wrapperCol = formLayout.wrapperCol,
114
+ labelAlign = formLayout.labelAlign,
115
+ _formLayout$wrapperAl = formLayout.wrapperAlign,
116
+ wrapperAlign = _formLayout$wrapperAl === void 0 ? 'left' : _formLayout$wrapperAl,
117
+ size = formLayout.size,
118
+ labelWrap = formLayout.labelWrap,
119
+ wrapperWrap = formLayout.wrapperWrap,
120
+ tooltip = formLayout.tooltip,
121
+ tooltipLayout = formLayout.tooltipLayout,
122
+ tooltipIcon = formLayout.tooltipIcon;
123
+ var labelStyle = _objectSpread({}, formLayout.labelStyle);
124
+ var wrapperStyle = _objectSpread({}, formLayout.wrapperStyle);
125
+ // 固定宽度
126
+ var enableCol = false;
127
+ if (labelWidth || wrapperWidth) {
128
+ if (labelWidth) {
129
+ labelStyle.width = labelWidth === 'auto' ? undefined : labelWidth;
130
+ labelStyle.maxWidth = labelWidth === 'auto' ? undefined : labelWidth;
131
+ }
132
+ if (wrapperWidth) {
133
+ wrapperStyle.width = wrapperWidth === 'auto' ? undefined : wrapperWidth;
134
+ wrapperStyle.maxWidth = wrapperWidth === 'auto' ? undefined : wrapperWidth;
135
+ }
136
+ // 栅格模式
137
+ }
138
+
139
+ if (labelCol || wrapperCol) {
140
+ if (!labelStyle.width && !wrapperStyle.width && layout !== 'vertical') {
141
+ enableCol = true;
142
+ }
143
+ }
144
+ var prefixCls = usePrefixCls('formily-item', props);
145
+ var prefix = usePrefixCls();
146
+ console.log('feedbackLayout', feedbackLayout);
147
+ var formatChildren = feedbackLayout === 'popover' || feedbackLayout === 'hover-popover' ? /*#__PURE__*/React.createElement(Balloon, _objectSpread({
148
+ needAdjust: true,
149
+ align: "t",
150
+ closable: false,
151
+ trigger: children
152
+ }, feedbackLayout === 'popover' ? {
153
+ visible: !!feedbackText
154
+ } : {}), /*#__PURE__*/React.createElement("div", {
155
+ className: cls((_cls = {}, _defineProperty(_cls, "".concat(prefixCls, "-").concat(feedbackStatus, "-help"), !!feedbackStatus), _defineProperty(_cls, "".concat(prefixCls, "-help"), true), _cls))
156
+ }, ICON_MAP[feedbackStatus !== null && feedbackStatus !== void 0 ? feedbackStatus : ''], " ", feedbackText)) : children;
157
+ var gridStyles = {};
158
+ var getOverflowTooltip = function getOverflowTooltip() {
159
+ if (overflow) {
160
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null, label), /*#__PURE__*/React.createElement("div", null, tooltip));
161
+ }
162
+ return tooltip;
163
+ };
164
+ var renderLabelText = function renderLabelText() {
165
+ var labelChildren = /*#__PURE__*/React.createElement("div", {
166
+ className: cls("".concat(prefixCls, "-label-content")),
167
+ ref: containerRef
168
+ }, /*#__PURE__*/React.createElement("span", {
169
+ ref: contentRef
170
+ }, asterisk && /*#__PURE__*/React.createElement("span", {
171
+ className: cls("".concat(prefixCls, "-asterisk"))
172
+ }, '*'), /*#__PURE__*/React.createElement("label", null, label)));
173
+ if (tooltipLayout === 'text' && tooltip || overflow) {
174
+ return /*#__PURE__*/React.createElement(Balloon.Tooltip, {
175
+ align: "t",
176
+ trigger: labelChildren
177
+ }, getOverflowTooltip());
178
+ }
179
+ return labelChildren;
180
+ };
181
+ var renderTooltipIcon = function renderTooltipIcon() {
182
+ if (tooltip && tooltipLayout === 'icon' && !overflow) {
183
+ return /*#__PURE__*/React.createElement("span", {
184
+ className: cls("".concat(prefixCls, "-label-tooltip-icon"))
185
+ }, /*#__PURE__*/React.createElement(Balloon.Tooltip, {
186
+ align: "t",
187
+ trigger: tooltipIcon
188
+ }, tooltip));
189
+ }
190
+ };
191
+ var renderLabel = function renderLabel() {
192
+ var _cls2;
193
+ if (!label) return null;
194
+ return /*#__PURE__*/React.createElement("div", {
195
+ className: cls((_cls2 = {}, _defineProperty(_cls2, "".concat(prefixCls, "-label"), true), _defineProperty(_cls2, "".concat(prefixCls, "-label-tooltip"), tooltip && tooltipLayout === 'text' || overflow), _defineProperty(_cls2, "".concat(prefixCls, "-item-col-").concat(labelCol), enableCol && !!labelCol), _cls2)),
196
+ style: labelStyle
197
+ }, renderLabelText(), renderTooltipIcon(), asterisk && /*#__PURE__*/React.createElement("span", {
198
+ className: cls("".concat(prefixCls, "-asterisk-pro"))
199
+ }), label !== ' ' && /*#__PURE__*/React.createElement("span", {
200
+ className: cls("".concat(prefixCls, "-colon"))
201
+ }, colon ? ':' : ''));
202
+ };
203
+ return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, pickDataProps(props)), {}, {
204
+ style: _objectSpread(_objectSpread({}, style), gridStyles),
205
+ "data-grid-span": props.gridSpan,
206
+ className: cls((_cls3 = {}, _defineProperty(_cls3, "".concat(prefixCls), true), _defineProperty(_cls3, "".concat(prefixCls, "-layout-").concat(layout), true), _defineProperty(_cls3, "".concat(prefixCls, "-").concat(feedbackStatus), !!feedbackStatus), _defineProperty(_cls3, "".concat(prefixCls, "-feedback-has-text"), !!feedbackText), _defineProperty(_cls3, "".concat(prefixCls, "-size-").concat(size), !!size), _defineProperty(_cls3, "".concat(prefixCls, "-feedback-layout-").concat(feedbackLayout), !!feedbackLayout), _defineProperty(_cls3, "".concat(prefixCls, "-fullness"), !!fullness || !!inset || !!feedbackIcon), _defineProperty(_cls3, "".concat(prefixCls, "-inset"), !!inset), _defineProperty(_cls3, "".concat(prefix, "input"), !!inset), _defineProperty(_cls3, "".concat(prefixCls, "-active"), active), _defineProperty(_cls3, "".concat(prefix, "focus"), active), _defineProperty(_cls3, "".concat(prefixCls, "-extra-wrap"), extra), _defineProperty(_cls3, "".concat(prefixCls, "-inset-active"), !!inset && active), _defineProperty(_cls3, "".concat(prefixCls, "-label-align-").concat(labelAlign), true), _defineProperty(_cls3, "".concat(prefixCls, "-control-align-").concat(wrapperAlign), true), _defineProperty(_cls3, "".concat(prefixCls, "-label-wrap"), !!labelWrap), _defineProperty(_cls3, "".concat(prefixCls, "-control-wrap"), !!wrapperWrap), _defineProperty(_cls3, "".concat(prefixCls, "-bordered-none"), bordered === false), _defineProperty(_cls3, props === null || props === void 0 ? void 0 : props.className, !!props.className), _cls3)),
207
+ onFocus: function onFocus() {
208
+ if (feedbackIcon || inset) {
209
+ setActive(true);
210
+ }
211
+ },
212
+ onBlur: function onBlur() {
213
+ if (feedbackIcon || inset) {
214
+ setActive(false);
215
+ }
216
+ }
217
+ }), renderLabel(), /*#__PURE__*/React.createElement("div", {
218
+ className: cls((_cls4 = {}, _defineProperty(_cls4, "".concat(prefixCls, "-control"), true), _defineProperty(_cls4, "".concat(prefixCls, "-item-col-").concat(wrapperCol), enableCol && !!wrapperCol && label), _cls4))
219
+ }, /*#__PURE__*/React.createElement("div", {
220
+ className: cls("".concat(prefixCls, "-control-content"))
221
+ }, addonBefore && /*#__PURE__*/React.createElement("div", {
222
+ className: cls("".concat(prefixCls, "-addon-before"))
223
+ }, addonBefore), /*#__PURE__*/React.createElement("div", {
224
+ style: wrapperStyle,
225
+ className: cls((_cls5 = {}, _defineProperty(_cls5, "".concat(prefixCls, "-control-content-component"), true), _defineProperty(_cls5, "".concat(prefixCls, "-control-content-component-has-feedback-icon"), !!feedbackIcon), _defineProperty(_cls5, "".concat(prefix, "input"), !!feedbackIcon), _defineProperty(_cls5, "".concat(prefixCls, "-active"), active), _defineProperty(_cls5, "".concat(prefix, "focus"), active), _cls5))
226
+ }, /*#__PURE__*/React.createElement(FormLayoutShallowContext.Provider, {
227
+ value: {
228
+ size: size
229
+ }
230
+ }, formatChildren), feedbackIcon && /*#__PURE__*/React.createElement("div", {
231
+ className: cls("".concat(prefixCls, "-feedback-icon"))
232
+ }, feedbackIcon)), addonAfter && /*#__PURE__*/React.createElement("div", {
233
+ className: cls("".concat(prefixCls, "-addon-after"))
234
+ }, addonAfter)), !!feedbackText && feedbackLayout !== 'popover' && feedbackLayout !== 'hover-popover' && feedbackLayout !== 'none' && /*#__PURE__*/React.createElement("div", {
235
+ className: cls((_cls6 = {}, _defineProperty(_cls6, "".concat(prefixCls, "-").concat(feedbackStatus, "-help"), !!feedbackStatus), _defineProperty(_cls6, "".concat(prefixCls, "-help"), true), _defineProperty(_cls6, "".concat(prefixCls, "-help-enter"), true), _defineProperty(_cls6, "".concat(prefixCls, "-help-enter-active"), true), _cls6))
236
+ }, feedbackText), extra && /*#__PURE__*/React.createElement("div", {
237
+ className: cls("".concat(prefixCls, "-extra"))
238
+ }, extra)));
239
+ };
240
+ // 适配
241
+ export var FormItem2 = connect(BaseItem, mapProps(function (props, field) {
242
+ if (isVoidField(field)) return {
243
+ label: field.title || props.label,
244
+ asterisk: props.asterisk,
245
+ extra: props.extra || field.description
246
+ };
247
+ if (!field) return props;
248
+ var takeFeedbackStatus = function takeFeedbackStatus() {
249
+ if (field.validating) return 'pending';
250
+ return field.decoratorProps.feedbackStatus || field.validateStatus;
251
+ };
252
+ var takeMessage = function takeMessage() {
253
+ var split = function split(messages) {
254
+ return messages.reduce(function (buf, text, index) {
255
+ if (!text) return buf;
256
+ return index < messages.length - 1 ? buf.concat([text, ', ']) : buf.concat([text]);
257
+ }, []);
258
+ };
259
+ if (field.validating) return;
260
+ if (props.feedbackText) return props.feedbackText;
261
+ if (field.selfErrors.length) return split(field.selfErrors);
262
+ if (field.selfWarnings.length) return split(field.selfWarnings);
263
+ if (field.selfSuccesses.length) return split(field.selfSuccesses);
264
+ };
265
+ var takeAsterisk = function takeAsterisk() {
266
+ if (field.required && field.pattern !== 'readPretty') {
267
+ return true;
268
+ }
269
+ if ('asterisk' in props) {
270
+ return props.asterisk;
271
+ }
272
+ return false;
273
+ };
274
+ return {
275
+ label: props.label || field.title,
276
+ feedbackStatus: takeFeedbackStatus(),
277
+ feedbackText: takeMessage(),
278
+ asterisk: takeAsterisk(),
279
+ extra: props.extra || field.description
280
+ };
281
+ }));
282
+ FormItem2.defaultProps = {
283
+ fullness: true
284
+ };
285
+ FormItem2.BaseItem = BaseItem;
286
+ export default FormItem2;