@autobest-ui/components 2.13.12 → 2.14.1

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 (111) hide show
  1. package/esm/affix/index.d.ts +0 -10
  2. package/esm/affix/index.js +9 -50
  3. package/esm/carousel/index.d.ts +4 -0
  4. package/esm/carousel/index.js +10 -1
  5. package/esm/checkbox/Checkbox.js +3 -19
  6. package/esm/checkbox/style/index.css +1 -1
  7. package/esm/confirm/style/index.css +1 -1
  8. package/esm/index.d.ts +6 -0
  9. package/esm/index.js +4 -1
  10. package/esm/input/Adorn.d.ts +4 -0
  11. package/esm/input/Adorn.js +7 -3
  12. package/esm/input/Input.d.ts +1 -0
  13. package/esm/input/Input.js +5 -1
  14. package/esm/input/TextArea.d.ts +1 -0
  15. package/esm/input/TextArea.js +4 -1
  16. package/esm/input-number/index.d.ts +1 -0
  17. package/esm/input-number/index.js +5 -1
  18. package/esm/input-phone/index.d.ts +1 -0
  19. package/esm/input-phone/index.js +1 -0
  20. package/esm/lazy-image/index.d.ts +10 -30
  21. package/esm/lazy-image/index.js +30 -51
  22. package/esm/lazy-image/style/index.css +1 -1
  23. package/esm/loading-container/index.d.ts +1 -19
  24. package/esm/loading-container/index.js +16 -122
  25. package/esm/loading-icon/index.d.ts +1 -1
  26. package/esm/loading-icon/index.js +3 -21
  27. package/esm/modal/Affix.d.ts +4 -0
  28. package/esm/modal/Affix.js +7 -0
  29. package/esm/modal/index.d.ts +5 -19
  30. package/esm/modal/index.js +17 -18
  31. package/esm/modal/style/index.css +1 -1
  32. package/esm/move/index.d.ts +10 -0
  33. package/esm/move/index.js +12 -7
  34. package/esm/radio/Radio.js +10 -7
  35. package/esm/radio/RadioGroup.js +3 -6
  36. package/esm/radio/style/index.css +1 -1
  37. package/esm/radio/type.d.ts +0 -2
  38. package/esm/read-more/index.d.ts +92 -0
  39. package/esm/read-more/index.js +377 -0
  40. package/esm/read-more/style/index.css +1 -0
  41. package/esm/read-more-html/index.d.ts +89 -0
  42. package/esm/read-more-html/index.js +362 -0
  43. package/esm/read-more-html/style/index.css +1 -0
  44. package/esm/select/index.d.ts +0 -3
  45. package/esm/select/index.js +4 -25
  46. package/esm/select/style/index.css +1 -1
  47. package/esm/show-more/index.d.ts +27 -12
  48. package/esm/show-more/index.js +87 -41
  49. package/esm/show-more/style/index.css +1 -1
  50. package/esm/style.css +1 -1
  51. package/esm/table/style/index.css +1 -1
  52. package/esm/trigger/index.d.ts +3 -10
  53. package/esm/trigger/index.js +19 -39
  54. package/lib/affix/index.d.ts +0 -10
  55. package/lib/affix/index.js +8 -49
  56. package/lib/carousel/index.d.ts +4 -0
  57. package/lib/carousel/index.js +10 -1
  58. package/lib/checkbox/Checkbox.js +3 -19
  59. package/lib/checkbox/style/index.css +1 -1
  60. package/lib/confirm/style/index.css +1 -1
  61. package/lib/index.d.ts +6 -0
  62. package/lib/index.js +21 -0
  63. package/lib/input/Adorn.d.ts +4 -0
  64. package/lib/input/Adorn.js +7 -3
  65. package/lib/input/Input.d.ts +1 -0
  66. package/lib/input/Input.js +5 -1
  67. package/lib/input/TextArea.d.ts +1 -0
  68. package/lib/input/TextArea.js +4 -1
  69. package/lib/input-number/index.d.ts +1 -0
  70. package/lib/input-number/index.js +5 -1
  71. package/lib/input-phone/index.d.ts +1 -0
  72. package/lib/input-phone/index.js +1 -0
  73. package/lib/lazy-image/index.d.ts +10 -30
  74. package/lib/lazy-image/index.js +30 -51
  75. package/lib/lazy-image/style/index.css +1 -1
  76. package/lib/loading-container/index.d.ts +1 -19
  77. package/lib/loading-container/index.js +16 -125
  78. package/lib/loading-icon/index.d.ts +1 -1
  79. package/lib/loading-icon/index.js +3 -21
  80. package/lib/modal/Affix.d.ts +4 -0
  81. package/lib/modal/Affix.js +14 -0
  82. package/lib/modal/index.d.ts +5 -19
  83. package/lib/modal/index.js +17 -18
  84. package/lib/modal/style/index.css +1 -1
  85. package/lib/move/index.d.ts +10 -0
  86. package/lib/move/index.js +12 -7
  87. package/lib/radio/Radio.js +10 -7
  88. package/lib/radio/RadioGroup.js +3 -6
  89. package/lib/radio/style/index.css +1 -1
  90. package/lib/radio/type.d.ts +0 -2
  91. package/lib/read-more/index.d.ts +92 -0
  92. package/lib/read-more/index.js +388 -0
  93. package/lib/read-more/style/index.css +1 -0
  94. package/lib/read-more-html/index.d.ts +89 -0
  95. package/lib/read-more-html/index.js +373 -0
  96. package/lib/read-more-html/style/index.css +1 -0
  97. package/lib/select/index.d.ts +0 -3
  98. package/lib/select/index.js +4 -25
  99. package/lib/select/style/index.css +1 -1
  100. package/lib/show-more/index.d.ts +27 -12
  101. package/lib/show-more/index.js +86 -40
  102. package/lib/show-more/style/index.css +1 -1
  103. package/lib/style.css +1 -1
  104. package/lib/table/style/index.css +1 -1
  105. package/lib/trigger/index.d.ts +3 -10
  106. package/lib/trigger/index.js +19 -39
  107. package/package.json +3 -3
  108. package/esm/affix/observe.d.ts +0 -8
  109. package/esm/affix/observe.js +0 -6
  110. package/lib/affix/observe.d.ts +0 -8
  111. package/lib/affix/observe.js +0 -12
@@ -34,32 +34,51 @@ var __assign = this && this.__assign || function () {
34
34
  };
35
35
  import React, { Component } from 'react';
36
36
  import classNames from 'classnames';
37
- import { isBlank, getStyleValue, getStyle } from '@autobest-ui/utils';
37
+ import { isBlank, getStyleValue, getStyle, debounce } from '@autobest-ui/utils';
38
38
  var ShowMore = /** @class */function (_super) {
39
39
  __extends(ShowMore, _super);
40
40
  function ShowMore(props) {
41
41
  var _this = _super.call(this, props) || this;
42
42
  _this.prefixCls = 'ab-show-more';
43
- _this.setTargetElement = function (el) {
44
- return _this.targetElement = el;
45
- };
46
- _this.setChildrenElement = function (el) {
47
- return _this.textElement = el;
43
+ _this.wrapRef = /*#__PURE__*/React.createRef();
44
+ _this.contentRef = /*#__PURE__*/React.createRef();
45
+ _this.childrenRef = /*#__PURE__*/React.createRef();
46
+ _this.onResizeObserver = function () {
47
+ var debounceCalculate = debounce(function (newWidth) {
48
+ if (newWidth !== _this.wrapWidth) {
49
+ _this.wrapWidth = newWidth;
50
+ _this.delayCalculate();
51
+ }
52
+ });
53
+ _this.resizeObserver = new ResizeObserver(function (entries) {
54
+ debounceCalculate(entries[0].contentRect.width);
55
+ });
56
+ _this.resizeObserver.observe(_this.wrapRef.current);
48
57
  };
49
58
  _this.setHiddenTextStatus = function () {
50
59
  _this.calcTargetWidth(function () {
51
- if (_this.textElement) {
60
+ if (_this.childrenRef.current) {
52
61
  _this.setState({
53
62
  hiddenTextElement: true
54
63
  }, _this.props.onAfterMounted);
55
64
  }
56
65
  });
57
66
  };
58
- _this.onChange = function () {
67
+ _this.onExpand = function () {
59
68
  if (!_this.props.expandable) {
60
69
  return;
61
70
  }
62
- _this.setRenderText(_this.props.onAfterChange, false);
71
+ _this.setRenderText(function () {
72
+ _this.props.onAfterChange(true);
73
+ }, false);
74
+ };
75
+ _this.onCollapse = function () {
76
+ if (isBlank(_this.props.collapseText)) {
77
+ return;
78
+ }
79
+ _this.setRenderText(function () {
80
+ _this.props.onAfterChange(false);
81
+ }, true);
63
82
  };
64
83
  _this.innerText = function (node) {
65
84
  var div = document.createElement('div');
@@ -75,7 +94,7 @@ var ShowMore = /** @class */function (_super) {
75
94
  return text;
76
95
  };
77
96
  _this.calcTargetWidth = function (callback) {
78
- var targetElement = _this.targetElement;
97
+ var targetElement = _this.contentRef.current;
79
98
  if (!targetElement) {
80
99
  return;
81
100
  }
@@ -84,11 +103,11 @@ var ShowMore = /** @class */function (_super) {
84
103
  var clientWidth = parentNode.clientWidth;
85
104
  var contentPaddingLeft = getStyleValue(parentNode, 'padding-left');
86
105
  var contentPaddingRight = getStyleValue(parentNode, 'padding-right');
87
- _this.targetWidth = _this.props.width || clientWidth - contentPaddingLeft - contentPaddingRight;
106
+ _this.targetWidth = clientWidth - contentPaddingLeft - contentPaddingRight;
88
107
  var style = getStyle(targetElement);
89
108
  // todo: font-weight放首位在ie下失效
90
109
  _this.canvasContext.font = [style['font-style'], style['font-weight'], style['font-size'], style['font-family']].join(' ');
91
- _this.setRenderText(callback);
110
+ _this.setRenderText(callback, _this.state.isTruncated);
92
111
  };
93
112
  _this.measureWidth = function (text) {
94
113
  try {
@@ -97,6 +116,14 @@ var ShowMore = /** @class */function (_super) {
97
116
  return 0;
98
117
  }
99
118
  };
119
+ _this.onRefreshChildrenText = function () {
120
+ // children没显示,无法计算
121
+ if (!_this.childrenRef.current) {
122
+ return '';
123
+ }
124
+ _this.childrenText = _this.innerText(_this.childrenRef.current);
125
+ return _this.childrenText;
126
+ };
100
127
  _this.getLines = function (targetWidth) {
101
128
  var _a;
102
129
  var _b = _this,
@@ -104,26 +131,17 @@ var ShowMore = /** @class */function (_super) {
104
131
  numLines = _c.lines,
105
132
  ellipsisText = _c.ellipsisText,
106
133
  expandable = _c.expandable,
107
- innerText = _b.innerText,
108
- measureWidth = _b.measureWidth,
109
134
  cls = _b.prefixCls;
110
135
  var ellipsisClassName = _this.props.ellipsisClassName;
111
136
  var lines = [];
112
- // children没显示,无法计算
113
- if (!_this.textElement) {
114
- return {
115
- lines: lines,
116
- hiddenLineStr: ''
117
- };
118
- }
119
- var text = innerText(_this.textElement);
137
+ var text = _this.childrenText;
120
138
  var hiddenLineStr = text;
121
139
  // 先按换行符拆分,再按空格拆分成组
122
140
  var textLines = text.split('\n').map(function (line) {
123
141
  return line.split(' ');
124
142
  });
125
143
  // 省略号和按钮的宽度
126
- var ellipsisWidth = measureWidth(ellipsisText) + measureWidth('... ');
144
+ var ellipsisWidth = _this.measureWidth(ellipsisText) + _this.measureWidth('... ');
127
145
  for (var line = 1; line <= numLines; line++) {
128
146
  var textWords = textLines[0];
129
147
  // 一行中单词显示完了,转到第二行
@@ -134,7 +152,7 @@ var ShowMore = /** @class */function (_super) {
134
152
  continue;
135
153
  }
136
154
  var resultLine = textWords.join(' ');
137
- if (measureWidth(resultLine) <= targetWidth) {
155
+ if (_this.measureWidth(resultLine) <= targetWidth) {
138
156
  if (textLines.length === 1) {
139
157
  lines.push(resultLine);
140
158
  hiddenLineStr = '';
@@ -149,7 +167,7 @@ var ShowMore = /** @class */function (_super) {
149
167
  while (lower <= upper) {
150
168
  var middle = Math.floor((lower + upper) / 2);
151
169
  var testLine = textRest.slice(0, middle + 1);
152
- if (measureWidth(testLine) + ellipsisWidth <= targetWidth) {
170
+ if (_this.measureWidth(testLine) + ellipsisWidth <= targetWidth) {
153
171
  lower = middle + 1;
154
172
  } else {
155
173
  upper = middle - 1;
@@ -159,7 +177,7 @@ var ShowMore = /** @class */function (_super) {
159
177
  hiddenLineStr = hiddenLineStr.replace(lastLineText, '');
160
178
  resultLine = /*#__PURE__*/React.createElement(React.Fragment, null, "".concat(lastLineText, "... "), /*#__PURE__*/React.createElement("span", {
161
179
  className: classNames(ellipsisClassName, "".concat(cls, "-ellipsis"), (_a = {}, _a["".concat(cls, "-btn")] = expandable, _a)),
162
- onClick: _this.onChange
180
+ onClick: _this.onExpand
163
181
  }, ellipsisText));
164
182
  } else {
165
183
  var lower = 0;
@@ -167,7 +185,7 @@ var ShowMore = /** @class */function (_super) {
167
185
  while (lower <= upper) {
168
186
  var middle = Math.floor((lower + upper) / 2);
169
187
  var testLine = textWords.slice(0, middle + 1).join(' ');
170
- if (measureWidth(testLine) <= targetWidth) {
188
+ if (_this.measureWidth(testLine) <= targetWidth) {
171
189
  lower = middle + 1;
172
190
  } else {
173
191
  upper = middle - 1;
@@ -205,14 +223,15 @@ var ShowMore = /** @class */function (_super) {
205
223
  }
206
224
  return br;
207
225
  };
208
- _this.setRenderText = function (callback, isHidden) {
226
+ _this.setRenderText = function (callback, isTruncated) {
209
227
  var targetWidth = _this.targetWidth;
210
228
  var _a = _this.props,
211
229
  children = _a.children,
212
- numLines = _a.lines;
230
+ numLines = _a.lines,
231
+ collapseText = _a.collapseText,
232
+ collapseClassName = _a.collapseClassName;
213
233
  var previewText;
214
234
  var hiddenText;
215
- var isTruncated = isBlank(isHidden) ? _this.state.isTruncated : isHidden;
216
235
  if (numLines > 0 && isTruncated && targetWidth) {
217
236
  var _b = _this.getLines(targetWidth),
218
237
  lines = _b.lines,
@@ -222,6 +241,14 @@ var ShowMore = /** @class */function (_super) {
222
241
  } else {
223
242
  previewText = children;
224
243
  hiddenText = '';
244
+ if (!isTruncated && !isBlank(collapseText)) {
245
+ var cls = _this.prefixCls;
246
+ // 结尾加上收起按钮
247
+ previewText = /*#__PURE__*/React.createElement(React.Fragment, null, children, ' ', /*#__PURE__*/React.createElement("span", {
248
+ className: classNames(collapseClassName, "".concat(cls, "-collapse ").concat(cls, "-btn")),
249
+ onClick: _this.onCollapse
250
+ }, collapseText));
251
+ }
225
252
  }
226
253
  _this.setState({
227
254
  previewText: previewText,
@@ -240,27 +267,36 @@ var ShowMore = /** @class */function (_super) {
240
267
  ShowMore.prototype.componentDidMount = function () {
241
268
  var canvas = document.createElement('canvas');
242
269
  this.canvasContext = canvas.getContext('2d');
243
- this.delayCalculate();
270
+ if (this.props.isResizeObserver) {
271
+ this.onResizeObserver();
272
+ }
273
+ this.delayCalculate(true);
244
274
  };
245
275
  ShowMore.prototype.componentDidUpdate = function (prevProps) {
246
- if (this.props.children !== prevProps.children || this.props.width !== prevProps.width) {
276
+ if (this.props.children !== prevProps.children) {
247
277
  // 执行render,并且跳过shouldComponentUpdate
248
- this.delayCalculate();
278
+ this.delayCalculate(true);
249
279
  }
250
280
  };
251
281
  ShowMore.prototype.componentWillUnmount = function () {
252
282
  if (this.timer) {
253
283
  clearTimeout(this.timer);
254
284
  }
285
+ if (this.resizeObserver && this.wrapRef.current) {
286
+ this.resizeObserver.unobserve(this.wrapRef.current);
287
+ }
255
288
  };
256
289
  // 等页面其他元素加载完成,延迟计算宽度
257
- ShowMore.prototype.delayCalculate = function () {
290
+ ShowMore.prototype.delayCalculate = function (isRefresh) {
258
291
  var _this = this;
292
+ if (isRefresh === void 0) {
293
+ isRefresh = false;
294
+ }
259
295
  if (this.timer) {
260
296
  clearTimeout(this.timer);
261
297
  }
262
298
  // children显示的时候, DidMount
263
- if (!this.state.hiddenTextElement) {
299
+ if (!isRefresh && this.state.hiddenTextElement) {
264
300
  this.timer = setTimeout(this.setHiddenTextStatus);
265
301
  return;
266
302
  }
@@ -268,7 +304,10 @@ var ShowMore = /** @class */function (_super) {
268
304
  this.timer = setTimeout(function () {
269
305
  _this.setState({
270
306
  hiddenTextElement: false
271
- }, _this.setHiddenTextStatus);
307
+ }, function () {
308
+ _this.onRefreshChildrenText();
309
+ _this.setHiddenTextStatus();
310
+ });
272
311
  });
273
312
  };
274
313
  ShowMore.prototype.render = function () {
@@ -284,22 +323,29 @@ var ShowMore = /** @class */function (_super) {
284
323
  title: title
285
324
  } : null;
286
325
  var cls = this.prefixCls;
287
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", __assign({
288
- ref: this.setTargetElement,
289
- className: classNames(cls, className)
326
+ return /*#__PURE__*/React.createElement("div", {
327
+ className: classNames(cls, className),
328
+ ref: this.wrapRef
329
+ }, /*#__PURE__*/React.createElement("span", __assign({
330
+ ref: this.contentRef,
331
+ className: "".concat(cls, "-content")
290
332
  }, titleParam), previewText, hiddenText ? /*#__PURE__*/React.createElement("span", {
291
333
  className: "".concat(cls, "-hidden")
292
334
  }, hiddenText) : null), hiddenTextElement ? null : /*#__PURE__*/React.createElement("span", {
293
- ref: this.setChildrenElement,
335
+ ref: this.childrenRef,
294
336
  className: "".concat(cls, "-text")
295
337
  }, children));
296
338
  };
297
339
  ShowMore.defaultProps = {
298
340
  children: '',
299
341
  ellipsisText: 'Show More',
342
+ collapseText: null,
300
343
  lines: 2,
301
344
  width: 0,
302
- expandable: true
345
+ expandable: true,
346
+ onAfterChange: function onAfterChange() {
347
+ return null;
348
+ }
303
349
  };
304
350
  return ShowMore;
305
351
  }(Component);
@@ -1 +1 @@
1
- .ab-show-more-ellipsis{white-space:nowrap}.ab-show-more-btn{color:#4068b0;cursor:pointer}.ab-show-more-hidden,.ab-show-more-text{visibility:hidden;height:0;display:block;overflow:hidden}.ab-show-more-hidden{width:0}
1
+ .ab-show-more-collapse,.ab-show-more-ellipsis{white-space:nowrap}.ab-show-more-btn{color:#4068b0;cursor:pointer}.ab-show-more-hidden,.ab-show-more-text{visibility:hidden;height:0;display:block;overflow:hidden}.ab-show-more-hidden{width:0}
package/esm/style.css CHANGED
@@ -1 +1 @@
1
- a,abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,input,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,textarea,tfoot,th,thead,time,tr,ul,var,video{box-sizing:border-box}html{font-size:100px;font-family:Arial,sans-serif;touch-action:manipulation}@media only screen and (max-width:767px){html{font-size:100px}}body{font-size:.12rem;color:#333;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none}input{outline:0}li,ul{padding:0;margin:0;list-style:none}.ab-affix,.ab-affix-custom{z-index:100}.ab-affix-custom{position:fixed;transition:transform .2s cubic-bezier(.7,.3,.1,1)}.ab-affix-fade-appear,.ab-affix-fade-enter{transform:translate(0,-100%)}.ab-affix-fade-appear-active,.ab-affix-fade-enter-active,.ab-affix-fade-exit{transform:translate(0,0)}.ab-affix-fade-exit-active{transform:translate(0,-100%)}.ab-affix-fade-exit-done{display:none}.ab-carousel{position:relative}.ab-carousel-content{position:relative;display:block;height:100%;width:100%;margin:0;padding:0;overflow:hidden}.ab-carousel-list{user-select:none;position:relative;top:0;left:0;display:block;overflow:hidden}.ab-carousel-slider{outline:0;overflow:hidden;float:left;display:none}.ab-carousel.ab-carousel-init .ab-carousel-slider{display:block}.ab-collapse{transform-origin:left top;transition:opacity .2s,height .2s}.ab-collapse-hidden{height:0;overflow:hidden}.ab-collapse-fade-enter{opacity:.8;overflow:hidden}.ab-collapse-fade-enter-active{opacity:1;overflow:hidden}.ab-collapse-fade-enter-done{opacity:1;overflow:initial}.ab-collapse-fade-exit{opacity:1;overflow:hidden}.ab-collapse-fade-exit-active{opacity:.8;overflow:hidden}.ab-collapse-fade-exit-done{display:none;overflow:initial}.ab-confirm-btns{display:flex;justify-content:flex-end;padding-top:.42rem}.ab-confirm-cancel,.ab-confirm-ok{overflow:hidden;position:relative;font-size:.12rem;border-width:1px;border-style:solid;outline:0;cursor:pointer;font-weight:700;padding:.05rem .3rem;display:inline-block;color:#fff;margin-left:.3rem}.ab-confirm-ok{border-color:#bc0000;background:linear-gradient(180deg,#c00000 0,#c00000 0,#a00000 100%,#a00000 100%)}.ab-confirm-ok:hover{border-color:#bc0000;background:#bc0000}.ab-confirm-cancel{border-color:grey;background:linear-gradient(180deg,#909090 0,#909090 0,#707070 100%,#707070 100%)}.ab-confirm-cancel:hover{border-color:grey;background:grey}.ab-dp-cal{display:flex}.ab-dp-cal-my{padding-left:.12rem;margin-left:.12rem;border-left:1px solid #b0b0b0}.ab-dp-cal-day,.ab-dp-cal-my{width:2.1rem}.ab-dp-cal-dis{color:#c8c8c8}.ab-dp-cal-dg>ul>li{width:14.28%;height:.28rem}.ab-dp-cal-dg>ul>li.ab-dp-cal-out{color:#666}.ab-dp-cal-myg{padding-bottom:.62rem}.ab-dp-cal-myg>ul{justify-content:space-between}.ab-dp-cal-myg>ul>li{width:.4rem;height:.4rem;margin-bottom:.1rem}.ab-dp-cal-t{cursor:pointer;position:absolute;right:.08rem;bottom:.3rem}.ab-dp-cal-t.ab-dp-cal-t-dis{color:#b0b0b0;cursor:default}.ab-date-picker{position:relative}.ab-date-picker-input{outline:0;font-size:.14rem;padding:.04rem;width:1.44rem}.ab-date-picker-input.ab-date-picker-error{background:#fffacd}.ab-date-picker-icon{color:#606060;position:absolute;right:.05rem;top:50%;transform:translateY(-50%)}.ab-drawer{position:fixed;z-index:101;background-color:#fff;overflow:auto;transition:transform .3s cubic-bezier(.7,.3,.1,1)}.ab-drawer-times{position:absolute;right:.17rem;font-size:.16rem;color:#b0b0b0;cursor:pointer;top:.11rem}.ab-drawer-times:hover{color:#333}.ab-drawer-tf-top{transform:translate(0,-100%)}.ab-drawer-tf-bottom{transform:translate(0,100%)}.ab-drawer-tf-left{transform:translate(-100%,0)}.ab-drawer-tf-right{transform:translate(100%,0)}.ab-drawer-hidden.ab-drawer,.ab-drawer-hidden.ab-mask{display:none}.ab-guide-mask.ab-mask{background-color:rgba(0,0,0,.7);z-index:4}.ab-guide-icon{position:absolute;z-index:5}.ab-guide-content{position:relative;z-index:6}.ab-ellipsis{overflow:hidden;display:block;display:-webkit-box;-webkit-box-orient:vertical}.ab-textarea{display:flex;align-items:center;border:1px solid #ccc;position:relative;border-radius:.04rem;padding:.04rem}.ab-textarea-prefix,.ab-textarea-suffix{padding-left:.04rem;padding-right:.04rem}.ab-textarea.ab-textarea-enter,.ab-textarea.ab-textarea-focus{border-color:#348fee}.ab-textarea.ab-textarea-focus{box-shadow:0 0 4px #348fee}.ab-textarea.ab-textarea-disabled .ab-textarea-control{cursor:not-allowed}.ab-textarea-control{resize:none;appearance:none;display:block;outline:0;border:none;width:100%;padding:.02rem;background-color:transparent;font-size:inherit;line-height:1.3}.ab-textarea-suffix{position:absolute;right:0;bottom:-.2rem;color:#aaa;font-size:.13rem;padding-right:0}.ab-input-number .ab-input-suffix{padding-left:0;font-size:.08rem;position:absolute;right:0;top:0;width:.22rem;height:100%;padding-right:0;background-color:#fff;display:none;flex-direction:column;border-left:1px solid #f1f1f1}.ab-input-number-has-controls .ab-input-control{padding-right:.2rem}.ab-input-number-down,.ab-input-number-up{cursor:pointer;width:100%;height:50%;display:flex;align-items:center;justify-content:center;color:#333}.ab-input-number-down:hover,.ab-input-number-up:hover{background-color:#e2e2e2}.ab-input-number-down:active,.ab-input-number-up:active{background-color:#929292;color:#fff}.ab-input-number-up{border-bottom:1px solid #f1f1f1}.ab-input-number.ab-input-enter,.ab-input-number.ab-input-focus{border-color:#348fee}.ab-input-number.ab-input-enter .ab-input-suffix,.ab-input-number.ab-input-focus .ab-input-suffix{display:flex}.ab-input{display:flex;align-items:center;border:1px solid #ccc;overflow:hidden;position:relative;border-radius:.04rem;padding:.04rem}.ab-input-prefix,.ab-input-suffix{padding-left:.04rem;padding-right:.04rem}.ab-input.ab-input-enter,.ab-input.ab-input-focus{border-color:#348fee}.ab-input.ab-input-focus{box-shadow:0 0 4px #348fee}.ab-input.ab-input-disabled .ab-input-control{cursor:not-allowed}.ab-input-control{appearance:none;display:block;outline:0;border:none;width:100%;height:100%;padding:.02rem;background-color:transparent;font-size:inherit}.ab-lazy-image{transition:opacity .5s}.ab-lazy-image-loading{background:#f2f2f2;overflow:hidden}.ab-lazy-image-loading.ab-lazy-image-active{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;animation:1.4s infinite ab-skeleton-loading}.ab-link-list-title{font-size:.16rem;margin:0;padding:0 0 .12rem;display:flex;justify-content:space-between;align-items:center}.ab-link-list-icon{display:none}.ab-link-list-content{flex-wrap:wrap;width:auto;margin-right:-.15rem}.ab-link-list-content.ab-link-list-col2>a,.ab-link-list-content.ab-link-list-col2>span{min-width:calc(100% / 2 - .15rem);max-width:calc(100% / 2 - .15rem)}.ab-link-list-content.ab-link-list-col4>a,.ab-link-list-content.ab-link-list-col4>span{min-width:calc(100% / 4 - .15rem);max-width:calc(100% / 4 - .15rem)}.ab-link-list-content.ab-link-list-col5>a,.ab-link-list-content.ab-link-list-col5>span{min-width:calc(100% / 5 - .15rem);max-width:calc(100% / 5 - .15rem)}.ab-link-list-content.ab-link-list-col6>a,.ab-link-list-content.ab-link-list-col6>span{min-width:calc(100% / 6 - .15rem);max-width:calc(100% / 6 - .15rem)}.ab-link-list-content.ab-link-list-col8>a,.ab-link-list-content.ab-link-list-col8>span{min-width:calc(100% / 8 - .15rem);max-width:calc(100% / 8 - .15rem)}.ab-link-list-content>a,.ab-link-list-content>span{cursor:pointer;border:.5px solid #d0d0d0;margin-bottom:8px;display:inline-block;justify-content:space-between;align-items:center;width:100%;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.085rem .15rem .085rem .12rem;color:#333;margin-right:.15rem}.ab-link-list-content>a::after,.ab-link-list-content>span::after{content:">";position:absolute;right:.1rem;top:50%;transform:translateY(-50%);color:grey;font-size:.12rem}.ab-link-list-content>a:hover,.ab-link-list-content>span:hover{text-decoration:underline;color:#f97601}.ab-link-list-content>.ab-link-list-hidden{display:none}.ab-link-list-wrap-popover.ab-popover-wrap{max-width:3.5rem;min-width:3rem}.ab-link-list-sub-title{display:block;padding-bottom:.06rem;font-size:.12rem}.ab-link-list-sub-link{text-decoration:underline;color:#333;font-size:.12rem;padding:0 .05rem .05rem 0;display:inline-block}@media only screen and (max-width:767px){.ab-link-list-divider{border-bottom:1px solid #d0d0d0}.ab-link-list-body{height:0;width:0;overflow:hidden}.ab-link-list-body.ab-link-list-active{height:auto;width:auto}.ab-link-list-content.ab-link-list-col2>a,.ab-link-list-content.ab-link-list-col2>span,.ab-link-list-content.ab-link-list-col4>a,.ab-link-list-content.ab-link-list-col4>span,.ab-link-list-content.ab-link-list-col5>a,.ab-link-list-content.ab-link-list-col5>span,.ab-link-list-content.ab-link-list-col6>a,.ab-link-list-content.ab-link-list-col6>span,.ab-link-list-content.ab-link-list-col8>a,.ab-link-list-content.ab-link-list-col8>span{min-width:calc(50% - .15rem);max-width:calc(50% - .15rem)}.ab-link-list-icon{font-weight:700;font-size:.22rem;cursor:pointer;width:.2rem;height:.2rem;display:flex;align-items:center;justify-content:center}}.ab-loading-wrap{position:fixed;top:0;left:0;z-index:9999;background-color:rgba(255,255,255,.7);height:100%;width:100%}.ab-loading-wrap .ab-loading-content{position:absolute;left:50%;top:50%;display:block;width:.31rem;height:.31rem;transform:translate(-50%,-50%)}.ab-loading-bar{position:fixed;top:0;left:0;margin-bottom:-3px;height:3px;width:100%;z-index:999}@keyframes movingBar{0%{left:50%;right:50%}99.9%{left:0;right:0}100%{left:50%;right:50%}}@keyframes changeBar{0%,33.3%{background-color:#0aa770}33.33%{background-color:red}66.6%,66.66%{background-color:#f987d6}99.9%{background-color:#00bcd4}}.ab-loading-bar-bar{position:absolute;height:0;width:100%;text-indent:-9999px;background-color:#0aa770;animation:2.25s infinite changeBar}.ab-loading-bar-bar::before{content:"";height:3px;position:absolute;left:50%;right:50%;background-color:inherit;animation:.75s infinite movingBar}.ab-message-container{position:fixed}.ab-message-notice{overflow:hidden;transition:.3s ease-out}.ab-message-content{display:flex;align-items:center;justify-content:space-between;max-width:calc(100vw - .3rem);margin:.05rem .15rem;padding:.08rem;border-radius:.02rem;background-color:#333;color:#fff;box-shadow:0 .01rem .05rem #333}.ab-message-close{display:flex;align-items:center;justify-content:center;cursor:pointer;width:.2rem;height:.2rem;font-size:.2rem;margin-left:.08rem;color:#b0b0b0}.ab-message-close:hover{color:#fff}.ab-message-fade-appear,.ab-message-fade-enter{opacity:0}.ab-message-fade-appear-active,.ab-message-fade-enter-active,.ab-message-fade-enter-done,.ab-message-fade-exit{opacity:1}.ab-message-fade-exit-active{opacity:0}.ab-message-fade-exit-done{display:none}@media only screen and (max-width:767px){.ab-message-content{width:calc(100vw - .3rem);margin:.08rem .15rem}}.ab-mask{position:fixed;top:0;left:0;z-index:101;width:100%;height:100%;background-color:rgba(0,0,0,.45);transition:opacity .4s cubic-bezier(.7,.3,.1,1)}.ab-mask-fade-appear,.ab-mask-fade-enter{opacity:0}.ab-mask-fade-appear-active,.ab-mask-fade-enter-active,.ab-mask-fade-enter-done,.ab-mask-fade-exit{opacity:1}.ab-mask-fade-exit-active{opacity:0}.ab-mask-fade-exit-done{display:none}.ab-modal{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;outline:0}.ab-modal.ab-modal-center{text-align:center}.ab-modal.ab-modal-center::before{display:inline-block;width:0;height:100%;vertical-align:middle;content:""}.ab-modal.ab-modal-center .ab-modal-content{top:0;text-align:left;display:inline-block;vertical-align:middle}.ab-modal-content{position:relative;background-color:#fff;max-width:calc(100vw - .3rem);margin-left:auto;margin-right:auto;overflow:auto;-webkit-overflow-scrolling:touch;transition:transform .3s,opacity .3s cubic-bezier(.7,.3,.1,1);z-index:101}.ab-modal-title{position:relative;width:100%}.ab-modal-title .ab-modal-times{top:50%;transform:translateY(-50%)}.ab-modal-times{position:absolute;top:.12rem;right:.12rem;font-size:.15rem;color:#b0b0b0;cursor:pointer}.ab-modal-times svg{display:block}.ab-modal-times:hover{color:#333}.ab-modal-hidden{display:none}@media only screen and (max-width:767px){.ab-modal-content{width:calc(100vw - .3rem)}}.ab-modal-fade-appear,.ab-modal-fade-enter{transform:translate3d(0,-30px,0);opacity:0}.ab-modal-fade-appear-active,.ab-modal-fade-enter-active,.ab-modal-fade-enter-done,.ab-modal-fade-exit{transform:translateZ(0);opacity:1}.ab-modal-fade-exit-active{transform:translate3d(0,-30px,0);opacity:0}.ab-modal-fade-exit-done{display:none}.ab-move{cursor:move;visibility:hidden;transform-origin:center center}.ab-popover-wrap{background-clip:padding-box;min-width:210px;border-radius:4px}.ab-popover-inner{padding:.08rem .11rem .05rem;position:relative;width:100%;overflow:auto;font-size:.12rem}.ab-popover-inner-expand{padding-right:.1rem}.ab-popover-arrow{position:absolute;display:block;width:8px;height:8px;border-style:solid;box-shadow:3px 3px 7px rgba(0,0,0,.07)}.ab-popover-close{position:absolute;right:.02rem;top:.05rem;cursor:pointer;padding:0 .05rem;color:#bfbfbf;font-size:.2rem;line-height:1;z-index:2}.ab-popover-close:hover{color:#4a4a4a}.ab-popover-white{background-color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15)}.ab-popover-white .ab-popover-arrow{background-color:#fff;border-color:transparent #fff #fff transparent;border-width:4px}.ab-popover-orange{border:1px solid #906c00;box-shadow:1px 1px 5px -1px #000;background-color:#fffaec}.ab-popover-orange .ab-popover-arrow{background-color:#fffaec;border-color:transparent #906c00 #906c00 transparent;border-width:1px}@media only screen and (max-width:767px){.ab-popover-wrap{width:calc(100% - .3rem)}}.ab-radio{position:relative;display:inline-flex;align-items:center;cursor:pointer}.ab-radio:hover .ab-radio-control{color:#4f4f4f}.ab-radio input{cursor:inherit;position:absolute;margin:0;padding:0;opacity:0;top:50%;left:0;transform:translateY(-50%);z-index:1}.ab-radio-checked:hover .ab-radio-control{color:#005cc8}.ab-radio-checked .ab-radio-control{color:#0075ff}.ab-radio-checked .ab-radio-control svg{display:inline-block}.ab-radio-disabled{cursor:not-allowed}.ab-radio-disabled .ab-radio-control,.ab-radio-disabled:hover .ab-radio-control{color:#d1d1d1}.ab-radio-control{margin-right:.06rem;position:relative;color:#767676;flex-shrink:0}.ab-radio-control svg{width:1em;height:1em;user-select:none;flex-shrink:0;fill:currentcolor;stroke:currentcolor;overflow:visible}.ab-radio-dot,.ab-radio-outer{position:absolute;left:0;top:0}.ab-radio-dot{display:none}.ab-radio-group-horizontal{display:flex}.ab-radio-group-horizontal .ab-radio-item{margin-right:.2rem}.ab-radio-group-horizontal .ab-radio-item:last-child{margin-right:0}.ab-radio-group-vertical{display:flex;flex-direction:column;align-items:flex-start}.ab-radio-group-vertical .ab-radio-item{margin-bottom:.15rem}.ab-radio-group-vertical .ab-radio-item:last-child{margin-bottom:0}.ab-select-wrap{min-width:177px;background-color:#fff;background-clip:padding-box;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15);display:flex}.ab-select-wrap.ab-trigger-fade-hr-exit-done{display:none}.ab-select-inner{flex:1;width:100%;overflow:auto}.ab-select-bottom,.ab-select-content,.ab-select-title{display:flex}.ab-select-title{padding:.09rem 0;background-color:transparent;cursor:context-menu;border-bottom:1px solid #d7d7d7;font-weight:700;color:#606060;font-size:.12rem;margin:0 .1rem}.ab-select-col{font-size:.12rem;padding-right:.07rem;flex:auto}.ab-select-col:last-child{padding-right:0}.ab-select-col>li{padding:.08rem .11rem;cursor:pointer}.ab-select-col>li:hover{background-color:#eee}.ab-select-col>li.ab-select-active{background-color:#e6f7ff}.ab-select-col>li.ab-select-unselect{background-color:transparent;cursor:context-menu}.ab-select-input-group{position:relative;display:flex;align-items:center;border:1px solid #ccc;cursor:pointer;border-radius:.02rem;user-select:none;padding:.08rem .07rem;font-size:.12rem;background-color:#fff;transition:.2s}.ab-select-input-group.ab-select-active,.ab-select-input-group.ab-select-enter{border-color:#348fee}.ab-select-input-group.ab-select-active{box-shadow:0 0 2px rgba(52,143,238,.8)}.ab-select-input-group.ab-select-empty{color:#888}.ab-select-input-group.ab-select-disabled{cursor:not-allowed}.ab-select-input-control{flex:1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ab-select-icon{position:relative;margin-left:.04rem;width:.14rem;height:.14rem}.ab-select-icon svg{position:absolute;left:50%;top:50%;color:#ccc;font-size:.12rem;transition:transform .2s;transform:translate(-50%,-50%)}.ab-select-active .ab-select-icon svg{transform:translate(-50%,-50%) rotate(180deg)}@media only screen and (max-width:767px){.ab-select-content{display:block}.ab-select-input-group{font-size:.14rem;padding:.1rem .07rem}.ab-select-col{padding-right:0}}.ab-skeleton{overflow:hidden}.ab-skeleton-item{background:#f2f2f2;overflow:hidden}.ab-skeleton-active .ab-skeleton-item{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;animation:1.4s infinite ab-skeleton-loading}@keyframes ab-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}.ab-show-more-ellipsis{white-space:nowrap}.ab-show-more-btn{color:#4068b0;cursor:pointer}.ab-show-more-hidden,.ab-show-more-text{visibility:hidden;height:0;display:block;overflow:hidden}.ab-show-more-hidden{width:0}.ab-svg-loading{display:inline-block}.ab-svg-loading-icon{display:block;width:.31rem;height:.31rem;animation:1s linear infinite reverse loading}@keyframes loading{0%{transform:rotate(0)}50%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}.ab-loading-container{position:relative}.ab-loading-container-active{user-select:none;pointer-events:none}.ab-loading-container-icon-box{position:absolute;background-color:rgba(255,255,255,.7);top:0;left:0;z-index:4;display:block;width:100%;height:100%}.ab-loading-container-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ab-checkbox{position:relative;cursor:pointer;display:inline-flex;align-items:center;user-select:none}.ab-checkbox:hover .ab-checkbox-outer{border-color:#767676}.ab-checkbox-input{cursor:pointer;position:absolute;opacity:0;margin:0;padding:0;top:50%;left:0;transform:translateY(-50%);z-index:2}.ab-checkbox-check{opacity:0;transform:scale(0);transition:.2s cubic-bezier(.71,-.46,.88,.6),opacity .1s}.ab-checkbox-control{display:inline-block;margin-right:.06rem;position:relative;flex-shrink:0}.ab-checkbox-control svg{position:absolute;left:0;top:0;width:1em;height:1em;user-select:none;flex-shrink:0;fill:currentcolor;stroke:none}.ab-checkbox-outer{position:absolute;left:0;top:0;border:1px solid #b0b0b0;border-radius:.02rem;background-color:#fff}.ab-checkbox-checked .ab-checkbox-check{opacity:1;transform:scale(1);transition:.2s cubic-bezier(.12,.4,.29,1.46) .1s}.ab-checkbox-disabled{cursor:not-allowed;color:rgba(0,0,0,.25)}.ab-checkbox-disabled .ab-checkbox-input{cursor:not-allowed}.ab-checkbox-disabled span.ab-checkbox-control .ab-checkbox-outer{border-color:#f0f0f0;background-color:#f5f5f5}.ab-checkbox-disabled svg.ab-checkbox-check{color:#cecece}.ab-checkbox-white .ab-checkbox-check{color:#e84040}.ab-checkbox-blue .ab-checkbox-check{color:#fff}.ab-checkbox-blue.ab-checkbox-checked .ab-checkbox-outer{background-color:#0075ff;border-color:#0075ff}.ab-checkbox-group{display:flex;flex-wrap:wrap}.ab-checkbox-group .ab-checkbox{margin-right:.08rem}.ab-table{overflow-x:auto}.ab-table-table{border-spacing:0;width:100%;table-layout:fixed;border-collapse:collapse}.ab-table-header{overflow:hidden}.ab-table-body{overflow:auto}.ab-table-checkbox{width:.32rem;text-align:center}.ab-table-checkbox .ab-checkbox-outer{border-width:2px}.ab-table-checkbox-col{width:.32rem}.ab-table-point{cursor:pointer}.ab-table-title{display:flex;align-items:center;text-align:left}.ab-table-arrow{font-size:.16rem;color:#fff;padding:0 .05rem}.ab-tabs{position:relative;display:flex}.ab-tabs-item{cursor:pointer}.ab-tabs-item.ab-tabs-active{font-weight:700}.ab-tabs-item.ab-tabs-disabled{cursor:not-allowed;opacity:.7}.ab-tabs-bar{position:absolute;background-color:#b22222;transition:.25s;width:0;height:0;overflow:hidden;margin:0;padding:0}.ab-tabs-bottom,.ab-tabs-top{flex-direction:row}.ab-tabs-bottom>.ab-tabs-bar,.ab-tabs-top>.ab-tabs-bar{left:0}.ab-tabs-left,.ab-tabs-right{flex-direction:column}.ab-tabs-left>.ab-tabs-bar,.ab-tabs-right>.ab-tabs-bar{top:0}.ab-tabs-top>.ab-tabs-bar{bottom:0}.ab-tabs-bottom>.ab-tabs-bar{top:0}.ab-tabs-left>.ab-tabs-bar{right:0}.ab-tabs-right>.ab-tabs-bar{left:0}.ab-trigger-wrap{position:absolute;top:0;left:0;z-index:101}.ab-trigger-wrap.ab-trigger-hidden{display:none}.ab-trigger-mask{position:fixed;top:0;left:0;bottom:0;right:0;z-index:101;background-color:transparent;display:none}.ab-trigger-mask.ab-trigger-mask-show{display:block}.ab-trigger-fade-appear,.ab-trigger-fade-enter,.ab-trigger-fade-hr-appear,.ab-trigger-fade-hr-enter{opacity:0}.ab-trigger-fade-appear,.ab-trigger-fade-enter{transform:scale(.7)}.ab-trigger-fade-hr-appear,.ab-trigger-fade-hr-enter{opacity:0;transform:scaleY(.7)}.ab-trigger-fade-appear-active,.ab-trigger-fade-enter-active,.ab-trigger-fade-hr-appear-active,.ab-trigger-fade-hr-enter-active{opacity:1;transition:opacity .2s,transform .2s}.ab-trigger-fade-appear-active,.ab-trigger-fade-enter-active{transform:scale(1)}.ab-trigger-fade-hr-appear-active,.ab-trigger-fade-hr-enter-active{transform:scaleY(1)}.ab-trigger-fade-exit,.ab-trigger-fade-hr-exit{opacity:1}.ab-trigger-fade-exit-active,.ab-trigger-fade-hr-exit-active{opacity:0;transition:opacity .2s,transform .2s}.ab-trigger-fade-exit-active{transform:scale(.7)}.ab-trigger-fade-hr-exit-active{transform:scaleY(.7)}.ab-trigger-fade-exit-done,.ab-trigger-fade-hr-exit-done{display:none}.ab-dp-cg-content,.ab-dp-cg-head,.ab-dp-cg-title{display:flex;align-items:center}.ab-dp-cg-title{user-select:none;font-size:.14rem;padding-bottom:.08rem}.ab-dp-cg-title>strong{flex:1 1;margin-left:.1rem;cursor:default;color:#4a4a4a}.ab-dp-cg-title>strong.ab-dp-cg-clickable{cursor:pointer}.ab-dp-cg-title>strong.ab-dp-cg-clickable:hover{color:#000}.ab-dp-cg-dis-icon,.ab-dp-cg-icon{align-self:flex-end;margin-left:.08rem}.ab-dp-cg-icon{cursor:pointer}.ab-dp-cg-head{padding-bottom:.05rem}.ab-dp-cg-head>li{display:flex;align-items:center;justify-content:center;cursor:default}.ab-dp-cg-content{flex-wrap:wrap}.ab-dp-cg-content>li{cursor:pointer;display:flex;align-items:center;justify-content:center;color:#000}.ab-dp-cg-content>li:hover{background:#f0f0f0}.ab-dp-cg-content>li.ab-dp-cg-dis{cursor:not-allowed;color:#b0b0b0}.ab-dp-cg-content>li.ab-dp-cg-dis:hover{background:0 0}.ab-dp-cg-content>li.ab-dp-cg-selected,.ab-dp-cg-content>li:active{background:#c7e0f4;border:3px solid #c7e0f4;border-radius:2px;color:#000}.ab-dp-cg-content>li.ab-dp-cg-today{background:#0078d4;color:#fff}.ab-dp-cg-arrow{cursor:pointer}
1
+ a,abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,input,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,textarea,tfoot,th,thead,time,tr,ul,var,video{box-sizing:border-box}html{font-size:100px;font-family:Arial,sans-serif;touch-action:manipulation}@media only screen and (max-width:767px){html{font-size:100px}}body{font-size:.12rem;color:#333;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none}input{outline:0}li,ul{padding:0;margin:0;list-style:none}.ab-affix,.ab-affix-custom{z-index:100}.ab-affix-custom{position:fixed;transition:transform .2s cubic-bezier(.7,.3,.1,1)}.ab-affix-fade-appear,.ab-affix-fade-enter{transform:translate(0,-100%)}.ab-affix-fade-appear-active,.ab-affix-fade-enter-active,.ab-affix-fade-exit{transform:translate(0,0)}.ab-affix-fade-exit-active{transform:translate(0,-100%)}.ab-affix-fade-exit-done{display:none}.ab-carousel{position:relative}.ab-carousel-content{position:relative;display:block;height:100%;width:100%;margin:0;padding:0;overflow:hidden}.ab-carousel-list{user-select:none;position:relative;top:0;left:0;display:block;overflow:hidden}.ab-carousel-slider{outline:0;overflow:hidden;float:left;display:none}.ab-carousel.ab-carousel-init .ab-carousel-slider{display:block}.ab-confirm-btns{display:flex;justify-content:flex-end;padding-top:.42rem}.ab-confirm-cancel,.ab-confirm-ok{overflow:hidden;position:relative;font-size:.12rem;border-width:1px;border-style:solid;outline:0;cursor:pointer;font-weight:700;padding:.05rem .3rem;display:inline-block;color:#fff;margin-left:.3rem}.ab-confirm-ok{border-color:#bc0000;background:linear-gradient(180deg,#c00000 0,#c00000 0,#a00000 100%,#a00000 100%)}.ab-confirm-ok:hover{border-color:#bc0000;background:#bc0000}.ab-confirm-cancel{border-color:grey;background:linear-gradient(180deg,#909090 0,#909090 0,#707070 100%,#707070 100%)}.ab-confirm-cancel:hover{border-color:grey;background:grey}.ab-date-picker{position:relative}.ab-date-picker-input{outline:0;font-size:.14rem;padding:.04rem;width:1.44rem}.ab-date-picker-input.ab-date-picker-error{background:#fffacd}.ab-date-picker-icon{color:#606060;position:absolute;right:.05rem;top:50%;transform:translateY(-50%)}.ab-dp-cal{display:flex}.ab-dp-cal-my{padding-left:.12rem;margin-left:.12rem;border-left:1px solid #b0b0b0}.ab-dp-cal-day,.ab-dp-cal-my{width:2.1rem}.ab-dp-cal-dis{color:#c8c8c8}.ab-dp-cal-dg>ul>li{width:14.28%;height:.28rem}.ab-dp-cal-dg>ul>li.ab-dp-cal-out{color:#666}.ab-dp-cal-myg{padding-bottom:.62rem}.ab-dp-cal-myg>ul{justify-content:space-between}.ab-dp-cal-myg>ul>li{width:.4rem;height:.4rem;margin-bottom:.1rem}.ab-dp-cal-t{cursor:pointer;position:absolute;right:.08rem;bottom:.3rem}.ab-dp-cal-t.ab-dp-cal-t-dis{color:#b0b0b0;cursor:default}.ab-drawer{position:fixed;z-index:101;background-color:#fff;overflow:auto;transition:transform .3s cubic-bezier(.7,.3,.1,1)}.ab-drawer-times{position:absolute;right:.17rem;font-size:.16rem;color:#b0b0b0;cursor:pointer;top:.11rem}.ab-drawer-times:hover{color:#333}.ab-drawer-tf-top{transform:translate(0,-100%)}.ab-drawer-tf-bottom{transform:translate(0,100%)}.ab-drawer-tf-left{transform:translate(-100%,0)}.ab-drawer-tf-right{transform:translate(100%,0)}.ab-drawer-hidden.ab-drawer,.ab-drawer-hidden.ab-mask{display:none}.ab-collapse{transform-origin:left top;transition:opacity .2s,height .2s}.ab-collapse-hidden{height:0;overflow:hidden}.ab-collapse-fade-enter{opacity:.8;overflow:hidden}.ab-collapse-fade-enter-active{opacity:1;overflow:hidden}.ab-collapse-fade-enter-done{opacity:1;overflow:initial}.ab-collapse-fade-exit{opacity:1;overflow:hidden}.ab-collapse-fade-exit-active{opacity:.8;overflow:hidden}.ab-collapse-fade-exit-done{display:none;overflow:initial}.ab-guide-mask.ab-mask{background-color:rgba(0,0,0,.7);z-index:4}.ab-guide-icon{position:absolute;z-index:5}.ab-guide-content{position:relative;z-index:6}.ab-ellipsis{overflow:hidden;display:block;display:-webkit-box;-webkit-box-orient:vertical}.ab-textarea{display:flex;align-items:center;border:1px solid #ccc;position:relative;border-radius:.04rem;padding:.04rem}.ab-textarea-prefix,.ab-textarea-suffix{padding-left:.04rem;padding-right:.04rem}.ab-textarea.ab-textarea-enter,.ab-textarea.ab-textarea-focus{border-color:#348fee}.ab-textarea.ab-textarea-focus{box-shadow:0 0 4px #348fee}.ab-textarea.ab-textarea-disabled .ab-textarea-control{cursor:not-allowed}.ab-textarea-control{resize:none;appearance:none;display:block;outline:0;border:none;width:100%;padding:.02rem;background-color:transparent;font-size:inherit;line-height:1.3}.ab-textarea-suffix{position:absolute;right:0;bottom:-.2rem;color:#aaa;font-size:.13rem;padding-right:0}.ab-input-number .ab-input-suffix{padding-left:0;font-size:.08rem;position:absolute;right:0;top:0;width:.22rem;height:100%;padding-right:0;background-color:#fff;display:none;flex-direction:column;border-left:1px solid #f1f1f1}.ab-input-number-has-controls .ab-input-control{padding-right:.2rem}.ab-input-number-down,.ab-input-number-up{cursor:pointer;width:100%;height:50%;display:flex;align-items:center;justify-content:center;color:#333}.ab-input-number-down:hover,.ab-input-number-up:hover{background-color:#e2e2e2}.ab-input-number-down:active,.ab-input-number-up:active{background-color:#929292;color:#fff}.ab-input-number-up{border-bottom:1px solid #f1f1f1}.ab-input-number.ab-input-enter,.ab-input-number.ab-input-focus{border-color:#348fee}.ab-input-number.ab-input-enter .ab-input-suffix,.ab-input-number.ab-input-focus .ab-input-suffix{display:flex}.ab-input{display:flex;align-items:center;border:1px solid #ccc;overflow:hidden;position:relative;border-radius:.04rem;padding:.04rem}.ab-input-prefix,.ab-input-suffix{padding-left:.04rem;padding-right:.04rem}.ab-input.ab-input-enter,.ab-input.ab-input-focus{border-color:#348fee}.ab-input.ab-input-focus{box-shadow:0 0 4px #348fee}.ab-input.ab-input-disabled .ab-input-control{cursor:not-allowed}.ab-input-control{appearance:none;display:block;outline:0;border:none;width:100%;height:100%;padding:.02rem;background-color:transparent;font-size:inherit}.ab-lazy-image{position:relative;overflow:hidden;transition:opacity .5s;display:flex;align-items:center;justify-content:center}.ab-lazy-image::after{display:none;content:"";position:absolute;left:0;top:0;width:100%;height:100%}.ab-lazy-image-loading::after{display:block;background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;animation:1.4s infinite ab-skeleton-loading}.ab-lazy-image img{display:block;max-width:100%;max-height:100%}.ab-link-list-title{font-size:.16rem;margin:0;padding:0 0 .12rem;display:flex;justify-content:space-between;align-items:center}.ab-link-list-icon{display:none}.ab-link-list-content{flex-wrap:wrap;width:auto;margin-right:-.15rem}.ab-link-list-content.ab-link-list-col2>a,.ab-link-list-content.ab-link-list-col2>span{min-width:calc(100% / 2 - .15rem);max-width:calc(100% / 2 - .15rem)}.ab-link-list-content.ab-link-list-col4>a,.ab-link-list-content.ab-link-list-col4>span{min-width:calc(100% / 4 - .15rem);max-width:calc(100% / 4 - .15rem)}.ab-link-list-content.ab-link-list-col5>a,.ab-link-list-content.ab-link-list-col5>span{min-width:calc(100% / 5 - .15rem);max-width:calc(100% / 5 - .15rem)}.ab-link-list-content.ab-link-list-col6>a,.ab-link-list-content.ab-link-list-col6>span{min-width:calc(100% / 6 - .15rem);max-width:calc(100% / 6 - .15rem)}.ab-link-list-content.ab-link-list-col8>a,.ab-link-list-content.ab-link-list-col8>span{min-width:calc(100% / 8 - .15rem);max-width:calc(100% / 8 - .15rem)}.ab-link-list-content>a,.ab-link-list-content>span{cursor:pointer;border:.5px solid #d0d0d0;margin-bottom:8px;display:inline-block;justify-content:space-between;align-items:center;width:100%;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.085rem .15rem .085rem .12rem;color:#333;margin-right:.15rem}.ab-link-list-content>a::after,.ab-link-list-content>span::after{content:">";position:absolute;right:.1rem;top:50%;transform:translateY(-50%);color:grey;font-size:.12rem}.ab-link-list-content>a:hover,.ab-link-list-content>span:hover{text-decoration:underline;color:#f97601}.ab-link-list-content>.ab-link-list-hidden{display:none}.ab-link-list-wrap-popover.ab-popover-wrap{max-width:3.5rem;min-width:3rem}.ab-link-list-sub-title{display:block;padding-bottom:.06rem;font-size:.12rem}.ab-link-list-sub-link{text-decoration:underline;color:#333;font-size:.12rem;padding:0 .05rem .05rem 0;display:inline-block}@media only screen and (max-width:767px){.ab-link-list-divider{border-bottom:1px solid #d0d0d0}.ab-link-list-body{height:0;width:0;overflow:hidden}.ab-link-list-body.ab-link-list-active{height:auto;width:auto}.ab-link-list-content.ab-link-list-col2>a,.ab-link-list-content.ab-link-list-col2>span,.ab-link-list-content.ab-link-list-col4>a,.ab-link-list-content.ab-link-list-col4>span,.ab-link-list-content.ab-link-list-col5>a,.ab-link-list-content.ab-link-list-col5>span,.ab-link-list-content.ab-link-list-col6>a,.ab-link-list-content.ab-link-list-col6>span,.ab-link-list-content.ab-link-list-col8>a,.ab-link-list-content.ab-link-list-col8>span{min-width:calc(50% - .15rem);max-width:calc(50% - .15rem)}.ab-link-list-icon{font-weight:700;font-size:.22rem;cursor:pointer;width:.2rem;height:.2rem;display:flex;align-items:center;justify-content:center}}.ab-loading-wrap{position:fixed;top:0;left:0;z-index:9999;background-color:rgba(255,255,255,.7);height:100%;width:100%}.ab-loading-wrap .ab-loading-content{position:absolute;left:50%;top:50%;display:block;width:.31rem;height:.31rem;transform:translate(-50%,-50%)}.ab-loading-bar{position:fixed;top:0;left:0;margin-bottom:-3px;height:3px;width:100%;z-index:999}@keyframes movingBar{0%{left:50%;right:50%}99.9%{left:0;right:0}100%{left:50%;right:50%}}@keyframes changeBar{0%,33.3%{background-color:#0aa770}33.33%{background-color:red}66.6%,66.66%{background-color:#f987d6}99.9%{background-color:#00bcd4}}.ab-loading-bar-bar{position:absolute;height:0;width:100%;text-indent:-9999px;background-color:#0aa770;animation:2.25s infinite changeBar}.ab-loading-bar-bar::before{content:"";height:3px;position:absolute;left:50%;right:50%;background-color:inherit;animation:.75s infinite movingBar}.ab-message-container{position:fixed}.ab-message-notice{overflow:hidden;transition:.3s ease-out}.ab-message-content{display:flex;align-items:center;justify-content:space-between;max-width:calc(100vw - .3rem);margin:.05rem .15rem;padding:.08rem;border-radius:.02rem;background-color:#333;color:#fff;box-shadow:0 .01rem .05rem #333}.ab-message-close{display:flex;align-items:center;justify-content:center;cursor:pointer;width:.2rem;height:.2rem;font-size:.2rem;margin-left:.08rem;color:#b0b0b0}.ab-message-close:hover{color:#fff}.ab-message-fade-appear,.ab-message-fade-enter{opacity:0}.ab-message-fade-appear-active,.ab-message-fade-enter-active,.ab-message-fade-enter-done,.ab-message-fade-exit{opacity:1}.ab-message-fade-exit-active{opacity:0}.ab-message-fade-exit-done{display:none}@media only screen and (max-width:767px){.ab-message-content{width:calc(100vw - .3rem);margin:.08rem .15rem}}.ab-move{cursor:move;visibility:hidden;transform-origin:center center}.ab-mask{position:fixed;top:0;left:0;z-index:101;width:100%;height:100%;background-color:rgba(0,0,0,.45);transition:opacity .4s cubic-bezier(.7,.3,.1,1)}.ab-mask-fade-appear,.ab-mask-fade-enter{opacity:0}.ab-mask-fade-appear-active,.ab-mask-fade-enter-active,.ab-mask-fade-enter-done,.ab-mask-fade-exit{opacity:1}.ab-mask-fade-exit-active{opacity:0}.ab-mask-fade-exit-done{display:none}.ab-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:101;overflow:auto;outline:0}.ab-modal.ab-modal-center{text-align:center}.ab-modal.ab-modal-center::before{display:inline-block;width:0;height:100%;vertical-align:middle;content:""}.ab-modal.ab-modal-center .ab-modal-content{top:0;text-align:left;display:inline-block;vertical-align:middle}.ab-modal-content{position:relative;background-color:#fff;max-width:calc(100vw - .3rem);margin-left:auto;margin-right:auto;overflow:auto;-webkit-overflow-scrolling:touch;transition:transform .3s,opacity .3s cubic-bezier(.7,.3,.1,1);z-index:101}.ab-modal-title{position:relative;width:100%}.ab-modal-title .ab-modal-times{top:50%;transform:translateY(-50%)}.ab-modal-times{position:absolute;top:.12rem;right:.12rem;font-size:.15rem;color:#b0b0b0;cursor:pointer}.ab-modal-times svg{display:block}.ab-modal-times:hover{color:#333}.ab-modal-hidden{display:none}@media only screen and (max-width:767px){.ab-modal-content{width:calc(100vw - .3rem)}}.ab-modal-fade-appear,.ab-modal-fade-enter{transform:translate3d(0,-30px,0);opacity:0}.ab-modal-fade-appear-active,.ab-modal-fade-enter-active,.ab-modal-fade-enter-done,.ab-modal-fade-exit{transform:translateZ(0);opacity:1}.ab-modal-fade-exit-active{transform:translate3d(0,-30px,0);opacity:0}.ab-modal-fade-exit-done{display:none}.ab-popover-wrap{background-clip:padding-box;min-width:210px;border-radius:4px}.ab-popover-inner{padding:.08rem .11rem .05rem;position:relative;width:100%;overflow:auto;font-size:.12rem}.ab-popover-inner-expand{padding-right:.1rem}.ab-popover-arrow{position:absolute;display:block;width:8px;height:8px;border-style:solid;box-shadow:3px 3px 7px rgba(0,0,0,.07)}.ab-popover-close{position:absolute;right:.02rem;top:.05rem;cursor:pointer;padding:0 .05rem;color:#bfbfbf;font-size:.2rem;line-height:1;z-index:2}.ab-popover-close:hover{color:#4a4a4a}.ab-popover-white{background-color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15)}.ab-popover-white .ab-popover-arrow{background-color:#fff;border-color:transparent #fff #fff transparent;border-width:4px}.ab-popover-orange{border:1px solid #906c00;box-shadow:1px 1px 5px -1px #000;background-color:#fffaec}.ab-popover-orange .ab-popover-arrow{background-color:#fffaec;border-color:transparent #906c00 #906c00 transparent;border-width:1px}@media only screen and (max-width:767px){.ab-popover-wrap{width:calc(100% - .3rem)}}.ab-radio{position:relative;overflow:hidden;display:inline-flex;align-items:center;cursor:pointer;font-size:.14rem}.ab-radio:hover .ab-radio-control{color:#4f4f4f}.ab-radio input{cursor:inherit;position:absolute;margin:0;padding:0;opacity:0;top:0;left:0;z-index:1}.ab-radio-checked:hover .ab-radio-control{color:#005cc8}.ab-radio-checked .ab-radio-control{color:#0075ff}.ab-radio-checked .ab-radio-control svg{display:inline-block}.ab-radio-disabled{cursor:not-allowed}.ab-radio-disabled .ab-radio-control,.ab-radio-disabled:hover .ab-radio-control{color:#d1d1d1}.ab-radio-control{margin-right:.06rem;position:relative;color:#767676}.ab-radio-control svg{width:1em;height:1em;user-select:none;flex-shrink:0;fill:currentcolor;stroke:currentcolor}.ab-radio-dot,.ab-radio-outer{position:absolute;left:0;top:0}.ab-radio-dot{display:none}.ab-radio-group-horizontal{display:flex}.ab-radio-group-horizontal .ab-radio-item{margin-right:.2rem}.ab-radio-group-horizontal .ab-radio-item:last-child{margin-right:0}.ab-radio-group-vertical{display:flex;flex-direction:column}.ab-radio-group-vertical .ab-radio-item{margin-bottom:.15rem}.ab-radio-group-vertical .ab-radio-item:last-child{margin-bottom:0}.ab-read-more{overflow:hidden}.ab-read-more-hidden{display:none}.ab-read-more-collapse,.ab-read-more-expand{user-select:none}.ab-read-more-collapse::after,.ab-read-more-expand::after{color:#4068b0;cursor:pointer}.ab-read-more-collapse::after{content:" " attr(data-collapse)}.ab-read-more-expand::after{content:" " attr(data-expand)}.ab-select-wrap{min-width:177px;background-color:#fff;background-clip:padding-box;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15);display:flex}.ab-select-wrap.ab-trigger-fade-hr-exit-done{display:none}.ab-select-inner{flex:1;width:100%;overflow:auto}.ab-select-bottom,.ab-select-content,.ab-select-title{display:flex}.ab-select-title{padding:.09rem 0;background-color:transparent;cursor:context-menu;border-bottom:1px solid #d7d7d7;font-weight:700;color:#606060;font-size:.12rem;margin:0 .1rem}.ab-select-col{font-size:.12rem;padding-right:.07rem;flex:auto}.ab-select-col:last-child{padding-right:0}.ab-select-col>li{padding:.08rem .11rem;cursor:pointer}.ab-select-col>li:hover{background-color:#eee}.ab-select-col>li.ab-select-active{background-color:#e6f7ff}.ab-select-col>li.ab-select-unselect{background-color:transparent;cursor:context-menu}.ab-select-input-group{position:relative;overflow:hidden}.ab-select-input-control{appearance:none;outline:0;user-select:none;width:100%;border:1px solid #ccc;border-radius:2px;resize:none;transition:.2s;background-color:#fff;text-overflow:ellipsis;padding:.08rem .28rem .07rem .07rem;font-size:.14rem;white-space:nowrap;overflow:hidden;max-width:100%;cursor:pointer}.ab-select-input-control.ab-select-focused{box-shadow:0 0 4px rgba(52,143,238,.8);border-color:rgba(52,143,238,.8)}.ab-select-input-control.ab-select-empty{color:#888}.ab-select-input-control.error{background-color:#fffacd}.ab-select-icon{position:absolute;right:.21rem;top:50%;color:#ccc;font-size:0;transform:translate(100%,-50%);transition:transform .2s}.ab-select-icon svg{font-size:.12rem}.ab-select-active .ab-select-icon{transform:translate(100%,-50%) rotate(180deg)}@media only screen and (max-width:767px){.ab-select-content{display:block}.ab-select-input-control{padding:.1rem .05rem;font-size:.14rem}.ab-select-col{padding-right:0}}.ab-show-more-collapse,.ab-show-more-ellipsis{white-space:nowrap}.ab-show-more-btn{color:#4068b0;cursor:pointer}.ab-show-more-hidden,.ab-show-more-text{visibility:hidden;height:0;display:block;overflow:hidden}.ab-show-more-hidden{width:0}.ab-tabs{position:relative;display:flex}.ab-tabs-item{cursor:pointer}.ab-tabs-item.ab-tabs-active{font-weight:700}.ab-tabs-item.ab-tabs-disabled{cursor:not-allowed;opacity:.7}.ab-tabs-bar{position:absolute;background-color:#b22222;transition:.25s;width:0;height:0;overflow:hidden;margin:0;padding:0}.ab-tabs-bottom,.ab-tabs-top{flex-direction:row}.ab-tabs-bottom>.ab-tabs-bar,.ab-tabs-top>.ab-tabs-bar{left:0}.ab-tabs-left,.ab-tabs-right{flex-direction:column}.ab-tabs-left>.ab-tabs-bar,.ab-tabs-right>.ab-tabs-bar{top:0}.ab-tabs-top>.ab-tabs-bar{bottom:0}.ab-tabs-bottom>.ab-tabs-bar{top:0}.ab-tabs-left>.ab-tabs-bar{right:0}.ab-tabs-right>.ab-tabs-bar{left:0}.ab-skeleton{overflow:hidden}.ab-skeleton-item{background:#f2f2f2;overflow:hidden}.ab-skeleton-active .ab-skeleton-item{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;animation:1.4s infinite ab-skeleton-loading}@keyframes ab-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}.ab-svg-loading{display:inline-block}.ab-svg-loading-icon{display:block;width:.31rem;height:.31rem;animation:1s linear infinite reverse loading}@keyframes loading{0%{transform:rotate(0)}50%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}.ab-loading-container{position:relative}.ab-loading-container-active{user-select:none;pointer-events:none}.ab-loading-container-icon-box{position:absolute;background-color:rgba(255,255,255,.7);top:0;left:0;z-index:4;display:block;width:100%;height:100%}.ab-loading-container-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ab-checkbox{cursor:pointer;display:inline-flex;align-items:center;user-select:none;position:relative}.ab-checkbox-input{cursor:pointer;position:absolute;opacity:0;margin:0;padding:0;z-index:2}.ab-checkbox-inner{display:inline-block;margin-right:.06rem;position:relative;border:1px solid #b0b0b0;border-radius:.02rem;background-color:#fff;transition:.3s;flex-shrink:0}.ab-checkbox-inner::after{box-sizing:border-box;position:absolute;top:45%;left:22%;display:table;width:37.5%;height:62.5%;border-style:solid;border-width:2px;border-top:0;border-inline-start:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;content:"";transition:.2s cubic-bezier(.71,-.46,.88,.6),opacity .1s}.ab-checkbox-checked .ab-checkbox-inner::after{opacity:1;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:.2s cubic-bezier(.12,.4,.29,1.46) .1s}.ab-checkbox-disabled{cursor:not-allowed;color:rgba(0,0,0,.25)}.ab-checkbox-disabled .ab-checkbox-inner{border-color:#f0f0f0;background-color:#f5f5f5}.ab-checkbox-disabled .ab-checkbox-input{cursor:not-allowed}.ab-checkbox-white .ab-checkbox-inner::after{border-color:#e84040}.ab-checkbox-white.ab-checkbox-disabled .ab-checkbox-inner::after{border-color:#cecece}.ab-checkbox-blue .ab-checkbox-inner::after{border-color:#fff}.ab-checkbox-blue.ab-checkbox-checked .ab-checkbox-inner{transition:none;background-color:#0075ff;border-color:#0075ff}.ab-checkbox-blue.ab-checkbox-disabled .ab-checkbox-inner{border-color:#f0f0f0;background-color:#f5f5f5}.ab-checkbox-blue.ab-checkbox-disabled .ab-checkbox-inner::after{border-color:#cecece}.ab-checkbox-group{display:flex;flex-wrap:wrap}.ab-checkbox-group .ab-checkbox{margin-right:.08rem}.ab-table{overflow-x:auto}.ab-table-table{border-spacing:0;width:100%;table-layout:fixed;border-collapse:collapse}.ab-table-header{overflow:hidden}.ab-table-body{overflow:auto}.ab-table-checkbox{width:.32rem;text-align:center}.ab-table-checkbox .ab-checkbox-inner{border-width:2px}.ab-table-checkbox-col{width:.32rem}.ab-table-point{cursor:pointer}.ab-table-title{display:flex;align-items:center;text-align:left}.ab-table-arrow{font-size:.16rem;color:#fff;padding:0 .05rem}.ab-rdm-html,.ab-rdm-html-content{overflow:hidden}.ab-rdm-html-collapse::after,.ab-rdm-html-expand::after{line-height:.18rem;display:block;padding-top:.02rem;cursor:pointer;text-decoration:underline}.ab-rdm-html-collapse::after{content:attr(data-collapse)}.ab-rdm-html-expand::after{content:attr(data-expand)}.ab-trigger-wrap{position:absolute;top:0;left:0;z-index:101}.ab-trigger-wrap.ab-trigger-hidden{display:none}.ab-trigger-mask{position:fixed;top:0;left:0;bottom:0;right:0;z-index:101;background-color:transparent;display:none}.ab-trigger-mask.ab-trigger-mask-show{display:block}.ab-trigger-fade-appear,.ab-trigger-fade-enter,.ab-trigger-fade-hr-appear,.ab-trigger-fade-hr-enter{opacity:0}.ab-trigger-fade-appear,.ab-trigger-fade-enter{transform:scale(.7)}.ab-trigger-fade-hr-appear,.ab-trigger-fade-hr-enter{opacity:0;transform:scaleY(.7)}.ab-trigger-fade-appear-active,.ab-trigger-fade-enter-active,.ab-trigger-fade-hr-appear-active,.ab-trigger-fade-hr-enter-active{opacity:1;transition:opacity .2s,transform .2s}.ab-trigger-fade-appear-active,.ab-trigger-fade-enter-active{transform:scale(1)}.ab-trigger-fade-hr-appear-active,.ab-trigger-fade-hr-enter-active{transform:scaleY(1)}.ab-trigger-fade-exit,.ab-trigger-fade-hr-exit{opacity:1}.ab-trigger-fade-exit-active,.ab-trigger-fade-hr-exit-active{opacity:0;transition:opacity .2s,transform .2s}.ab-trigger-fade-exit-active{transform:scale(.7)}.ab-trigger-fade-hr-exit-active{transform:scaleY(.7)}.ab-trigger-fade-exit-done,.ab-trigger-fade-hr-exit-done{display:none}.ab-dp-cg-content,.ab-dp-cg-head,.ab-dp-cg-title{display:flex;align-items:center}.ab-dp-cg-title{user-select:none;font-size:.14rem;padding-bottom:.08rem}.ab-dp-cg-title>strong{flex:1 1;margin-left:.1rem;cursor:default;color:#4a4a4a}.ab-dp-cg-title>strong.ab-dp-cg-clickable{cursor:pointer}.ab-dp-cg-title>strong.ab-dp-cg-clickable:hover{color:#000}.ab-dp-cg-dis-icon,.ab-dp-cg-icon{align-self:flex-end;margin-left:.08rem}.ab-dp-cg-icon{cursor:pointer}.ab-dp-cg-head{padding-bottom:.05rem}.ab-dp-cg-head>li{display:flex;align-items:center;justify-content:center;cursor:default}.ab-dp-cg-content{flex-wrap:wrap}.ab-dp-cg-content>li{cursor:pointer;display:flex;align-items:center;justify-content:center;color:#000}.ab-dp-cg-content>li:hover{background:#f0f0f0}.ab-dp-cg-content>li.ab-dp-cg-dis{cursor:not-allowed;color:#b0b0b0}.ab-dp-cg-content>li.ab-dp-cg-dis:hover{background:0 0}.ab-dp-cg-content>li.ab-dp-cg-selected,.ab-dp-cg-content>li:active{background:#c7e0f4;border:3px solid #c7e0f4;border-radius:2px;color:#000}.ab-dp-cg-content>li.ab-dp-cg-today{background:#0078d4;color:#fff}.ab-dp-cg-arrow{cursor:pointer}
@@ -1 +1 @@
1
- .ab-svg-loading{display:inline-block}.ab-svg-loading-icon{display:block;width:.31rem;height:.31rem;animation:1s linear infinite reverse loading}@keyframes loading{0%{transform:rotate(0)}50%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}.ab-loading-container{position:relative}.ab-loading-container-active{user-select:none;pointer-events:none}.ab-loading-container-icon-box{position:absolute;background-color:rgba(255,255,255,.7);top:0;left:0;z-index:4;display:block;width:100%;height:100%}.ab-loading-container-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ab-checkbox{position:relative;cursor:pointer;display:inline-flex;align-items:center;user-select:none}.ab-checkbox:hover .ab-checkbox-outer{border-color:#767676}.ab-checkbox-input{cursor:pointer;position:absolute;opacity:0;margin:0;padding:0;top:50%;left:0;transform:translateY(-50%);z-index:2}.ab-checkbox-check{opacity:0;transform:scale(0);transition:.2s cubic-bezier(.71,-.46,.88,.6),opacity .1s}.ab-checkbox-control{display:inline-block;margin-right:.06rem;position:relative;flex-shrink:0}.ab-checkbox-control svg{position:absolute;left:0;top:0;width:1em;height:1em;user-select:none;flex-shrink:0;fill:currentcolor;stroke:none}.ab-checkbox-outer{position:absolute;left:0;top:0;border:1px solid #b0b0b0;border-radius:.02rem;background-color:#fff}.ab-checkbox-checked .ab-checkbox-check{opacity:1;transform:scale(1);transition:.2s cubic-bezier(.12,.4,.29,1.46) .1s}.ab-checkbox-disabled{cursor:not-allowed;color:rgba(0,0,0,.25)}.ab-checkbox-disabled .ab-checkbox-input{cursor:not-allowed}.ab-checkbox-disabled span.ab-checkbox-control .ab-checkbox-outer{border-color:#f0f0f0;background-color:#f5f5f5}.ab-checkbox-disabled svg.ab-checkbox-check{color:#cecece}.ab-checkbox-white .ab-checkbox-check{color:#e84040}.ab-checkbox-blue .ab-checkbox-check{color:#fff}.ab-checkbox-blue.ab-checkbox-checked .ab-checkbox-outer{background-color:#0075ff;border-color:#0075ff}.ab-checkbox-group{display:flex;flex-wrap:wrap}.ab-checkbox-group .ab-checkbox{margin-right:.08rem}.ab-table{overflow-x:auto}.ab-table-table{border-spacing:0;width:100%;table-layout:fixed;border-collapse:collapse}.ab-table-header{overflow:hidden}.ab-table-body{overflow:auto}.ab-table-checkbox{width:.32rem;text-align:center}.ab-table-checkbox .ab-checkbox-outer{border-width:2px}.ab-table-checkbox-col{width:.32rem}.ab-table-point{cursor:pointer}.ab-table-title{display:flex;align-items:center;text-align:left}.ab-table-arrow{font-size:.16rem;color:#fff;padding:0 .05rem}
1
+ .ab-svg-loading{display:inline-block}.ab-svg-loading-icon{display:block;width:.31rem;height:.31rem;animation:1s linear infinite reverse loading}@keyframes loading{0%{transform:rotate(0)}50%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}.ab-loading-container{position:relative}.ab-loading-container-active{user-select:none;pointer-events:none}.ab-loading-container-icon-box{position:absolute;background-color:rgba(255,255,255,.7);top:0;left:0;z-index:4;display:block;width:100%;height:100%}.ab-loading-container-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ab-checkbox{cursor:pointer;display:inline-flex;align-items:center;user-select:none;position:relative}.ab-checkbox-input{cursor:pointer;position:absolute;opacity:0;margin:0;padding:0;z-index:2}.ab-checkbox-inner{display:inline-block;margin-right:.06rem;position:relative;border:1px solid #b0b0b0;border-radius:.02rem;background-color:#fff;transition:.3s;flex-shrink:0}.ab-checkbox-inner::after{box-sizing:border-box;position:absolute;top:45%;left:22%;display:table;width:37.5%;height:62.5%;border-style:solid;border-width:2px;border-top:0;border-inline-start:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;content:"";transition:.2s cubic-bezier(.71,-.46,.88,.6),opacity .1s}.ab-checkbox-checked .ab-checkbox-inner::after{opacity:1;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:.2s cubic-bezier(.12,.4,.29,1.46) .1s}.ab-checkbox-disabled{cursor:not-allowed;color:rgba(0,0,0,.25)}.ab-checkbox-disabled .ab-checkbox-inner{border-color:#f0f0f0;background-color:#f5f5f5}.ab-checkbox-disabled .ab-checkbox-input{cursor:not-allowed}.ab-checkbox-white .ab-checkbox-inner::after{border-color:#e84040}.ab-checkbox-white.ab-checkbox-disabled .ab-checkbox-inner::after{border-color:#cecece}.ab-checkbox-blue .ab-checkbox-inner::after{border-color:#fff}.ab-checkbox-blue.ab-checkbox-checked .ab-checkbox-inner{transition:none;background-color:#0075ff;border-color:#0075ff}.ab-checkbox-blue.ab-checkbox-disabled .ab-checkbox-inner{border-color:#f0f0f0;background-color:#f5f5f5}.ab-checkbox-blue.ab-checkbox-disabled .ab-checkbox-inner::after{border-color:#cecece}.ab-checkbox-group{display:flex;flex-wrap:wrap}.ab-checkbox-group .ab-checkbox{margin-right:.08rem}.ab-table{overflow-x:auto}.ab-table-table{border-spacing:0;width:100%;table-layout:fixed;border-collapse:collapse}.ab-table-header{overflow:hidden}.ab-table-body{overflow:auto}.ab-table-checkbox{width:.32rem;text-align:center}.ab-table-checkbox .ab-checkbox-inner{border-width:2px}.ab-table-checkbox-col{width:.32rem}.ab-table-point{cursor:pointer}.ab-table-title{display:flex;align-items:center;text-align:left}.ab-table-arrow{font-size:.16rem;color:#fff;padding:0 .05rem}
@@ -100,7 +100,7 @@ export interface TriggerProps {
100
100
  * visible变化的回调函数,回调函数返回status和name
101
101
  */
102
102
  onVisibleChange?: (visible: boolean, name?: string) => void;
103
- getCurrentDOMNode?: (node: HTMLElement | null) => HTMLElement;
103
+ getCurrentDOMNode?: (node: React.ReactInstance | null) => HTMLElement;
104
104
  /**
105
105
  * 隐藏后的回调函数
106
106
  */
@@ -139,8 +139,7 @@ declare class Trigger extends React.Component<TriggerProps, TriggerStates> {
139
139
  };
140
140
  prefixCls: string;
141
141
  clickOutsideHandler: AddListenerEventRemoveHandler | null;
142
- touchStartOutsideHandler: AddListenerEventRemoveHandler | null;
143
- touchEndOutsideHandler: AddListenerEventRemoveHandler | null;
142
+ touchOutsideHandler: AddListenerEventRemoveHandler | null;
144
143
  resizeHandler: AddListenerEventRemoveHandler | null;
145
144
  scrollHandler: AddListenerEventRemoveHandler | null;
146
145
  hasPopupMouseDown: boolean;
@@ -151,20 +150,14 @@ declare class Trigger extends React.Component<TriggerProps, TriggerStates> {
151
150
  prevPopupSize: PrevPopupSize;
152
151
  popupRef: React.RefObject<HTMLDivElement>;
153
152
  maskRef: React.RefObject<HTMLDivElement>;
153
+ triggerRef: React.RefObject<React.ReactInstance>;
154
154
  isClickToHide: () => boolean;
155
- touchesOverOne: boolean;
156
155
  static getPopupInnerHeight(element: any): number;
157
156
  constructor(props: TriggerProps);
158
157
  static getDerivedStateFromProps(nextProps: TriggerProps, preState: TriggerStates): TriggerStates;
159
158
  componentDidMount(): void;
160
159
  componentDidUpdate(): void;
161
160
  componentWillUnmount(): void;
162
- windowResizeHiddenHandle: () => void;
163
- onTouchEnd: (event: any) => void;
164
- /**
165
- * 移动端 非用户双指缩放引起的resize
166
- */
167
- isTouchAutoResize: () => boolean;
168
161
  clearPopupTimer: (popupEl?: HTMLElement) => void;
169
162
  forceAlign: (popupEl?: HTMLElement) => void;
170
163
  getRootDomNode: () => HTMLElement | null;
@@ -38,6 +38,7 @@ import classNames from 'classnames';
38
38
  import { getElementSize, getStyleValue, isTouchScreen, isEmptyObject, throttleWithRAF, contains, addEventListener } from '@autobest-ui/utils';
39
39
  import { CSSTransition } from 'react-transition-group';
40
40
  import Portal from '../portal';
41
+ import { supportRef, composeRef } from './ref';
41
42
  import getPopupLocation from './getPopupLocation';
42
43
  function noop() {}
43
44
  var Trigger = /** @class */function (_super) {
@@ -47,29 +48,10 @@ var Trigger = /** @class */function (_super) {
47
48
  _this.prefixCls = 'ab-trigger';
48
49
  _this.popupRef = /*#__PURE__*/React.createRef();
49
50
  _this.maskRef = /*#__PURE__*/React.createRef();
51
+ _this.triggerRef = /*#__PURE__*/React.createRef();
50
52
  _this.isClickToHide = function () {
51
53
  return _this.props.trigger.indexOf('click') !== -1;
52
54
  };
53
- _this.touchesOverOne = false;
54
- _this.windowResizeHiddenHandle = function () {
55
- if (_this.isTouchAutoResize()) {
56
- _this.forceAlign();
57
- return;
58
- }
59
- _this.triggerPopup(false);
60
- };
61
- _this.onTouchEnd = function (event) {
62
- _this.touchesOverOne = event.touches && event.touches.length > 1;
63
- };
64
- /**
65
- * 移动端 非用户双指缩放引起的resize
66
- */
67
- _this.isTouchAutoResize = function () {
68
- if (!isTouchScreen()) {
69
- return false;
70
- }
71
- return !_this.touchesOverOne;
72
- };
73
55
  _this.clearPopupTimer = function (popupEl) {
74
56
  clearTimeout(_this.popupTimer);
75
57
  var element = popupEl || _this.getPopupDomNode();
@@ -142,13 +124,12 @@ var Trigger = /** @class */function (_super) {
142
124
  _this.getRootDomNode = function () {
143
125
  var getCurrentDOMNode = _this.props.getCurrentDOMNode;
144
126
  if (getCurrentDOMNode) {
145
- // eslint-disable-next-line react/no-find-dom-node
146
- return getCurrentDOMNode(findDOMNode(_this));
127
+ return getCurrentDOMNode(_this.triggerRef.current);
147
128
  }
148
129
  try {
149
130
  // 支持children是组件的情况, 穿透组件获取HTML元素
150
131
  // eslint-disable-next-line react/no-find-dom-node
151
- var domNode = findDOMNode(_this);
132
+ var domNode = findDOMNode(_this.triggerRef.current);
152
133
  if (domNode) {
153
134
  return domNode;
154
135
  }
@@ -169,7 +150,6 @@ var Trigger = /** @class */function (_super) {
169
150
  if (!root || !target || !popupNode) {
170
151
  return;
171
152
  }
172
- _this.touchesOverOne = event.type === 'touchstart' && event.touches.length > 1;
173
153
  var showMask = _this.props.showMask;
174
154
  var maskEl = _this.getMaskDomNode();
175
155
  if (showMask && !maskEl) {
@@ -324,7 +304,9 @@ var Trigger = /** @class */function (_super) {
324
304
  var popupEl = this.getPopupDomNode();
325
305
  // 加入 resize 监听
326
306
  if (this.props.monitorWindowResize && !this.resizeHandler) {
327
- var handle = this.props.windowResizeHidden ? throttleWithRAF(this.windowResizeHiddenHandle) : throttleWithRAF(function () {
307
+ var handle = this.props.windowResizeHidden ? throttleWithRAF(function () {
308
+ return _this.triggerPopup(false);
309
+ }) : throttleWithRAF(function () {
328
310
  return _this.forceAlign();
329
311
  });
330
312
  this.resizeHandler = addEventListener(window, 'resize', handle);
@@ -339,18 +321,17 @@ var Trigger = /** @class */function (_super) {
339
321
  _this.triggerPopup(false);
340
322
  });
341
323
  }
342
- var currentDocument = window.document;
343
- var touch = isTouchScreen();
344
324
  // 需要监听 `mousedown` or `touchstart`, 而不是click
325
+ var currentDocument;
326
+ var touch = isTouchScreen();
345
327
  if (!this.clickOutsideHandler && !touch && this.isClickToHide()) {
328
+ currentDocument = window.document;
346
329
  this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);
347
330
  }
348
331
  // always hide on mobile
349
- if (!this.touchStartOutsideHandler) {
350
- this.touchStartOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);
351
- }
352
- if (!this.touchEndOutsideHandler) {
353
- this.touchEndOutsideHandler = addEventListener(currentDocument, 'touchend', this.onTouchEnd);
332
+ if (!this.touchOutsideHandler) {
333
+ currentDocument = currentDocument || window.document;
334
+ this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);
354
335
  }
355
336
  if (popupEl && this.prevPopupSize) {
356
337
  var _a = getElementSize(popupEl),
@@ -400,13 +381,9 @@ var Trigger = /** @class */function (_super) {
400
381
  this.clickOutsideHandler();
401
382
  this.clickOutsideHandler = null;
402
383
  }
403
- if (this.touchStartOutsideHandler) {
404
- this.touchStartOutsideHandler();
405
- this.touchStartOutsideHandler = null;
406
- }
407
- if (this.touchEndOutsideHandler) {
408
- this.touchEndOutsideHandler();
409
- this.touchEndOutsideHandler = null;
384
+ if (this.touchOutsideHandler) {
385
+ this.touchOutsideHandler();
386
+ this.touchOutsideHandler = null;
410
387
  }
411
388
  };
412
389
  Trigger.prototype.delaySetPopupVisible = function (visible, delayTime) {
@@ -494,6 +471,9 @@ var Trigger = /** @class */function (_super) {
494
471
  }
495
472
  }
496
473
  var cloneProps = __assign({}, newChildProps);
474
+ if (supportRef(child)) {
475
+ cloneProps.ref = composeRef(this.triggerRef, child.ref);
476
+ }
497
477
  // 对当前children元素添加额外属性
498
478
  return /*#__PURE__*/React.cloneElement(child, cloneProps);
499
479
  };
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import { AddListenerEventRemoveHandler, getOffsetAndSize } from '@autobest-ui/utils';
3
- import { CurrentResizeObserver } from './observe';
4
3
  export interface GetFixedStateParams {
5
4
  positionInfo: OffsetInfo;
6
5
  scrollTop: number;
@@ -50,10 +49,6 @@ export interface AffixProps {
50
49
  * 是否忽略水平方向固定定位, true将跟着鼠标左右移动
51
50
  */
52
51
  ignoreHorizontalFixed?: boolean;
53
- /**
54
- * 是否监听children的大小变化(仅用于非自定义renderAffix的情况)
55
- */
56
- observeSize?: boolean;
57
52
  }
58
53
  interface AffixStates {
59
54
  visible: boolean;
@@ -69,7 +64,6 @@ declare class Affix extends React.Component<AffixProps, AffixStates> {
69
64
  isFixed: boolean;
70
65
  wrapRef: React.RefObject<HTMLDivElement>;
71
66
  customRef: React.RefObject<HTMLDivElement>;
72
- resizeObserver: CurrentResizeObserver;
73
67
  static defaultProps: {
74
68
  offsetTop: number;
75
69
  allWidth: boolean;
@@ -80,10 +74,6 @@ declare class Affix extends React.Component<AffixProps, AffixStates> {
80
74
  constructor(props: AffixProps);
81
75
  componentDidMount(): void;
82
76
  componentWillUnmount(): void;
83
- onVisibleChange: (visible: any) => void;
84
- addElementObserve: () => void;
85
- removeElementObserve: () => void;
86
- refreshWrap: () => void;
87
77
  onHandlerScroll: (isResize?: boolean) => void;
88
78
  renderContent(): JSX.Element;
89
79
  render(): JSX.Element;