tntd 2.8.34 → 2.8.35

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 (127) hide show
  1. package/CHANGELOG.json +1034 -0
  2. package/CHANGELOG.md +605 -0
  3. package/lib/alert/alert.d.ts +12 -0
  4. package/lib/alert/alert.d.ts.map +1 -0
  5. package/lib/alert/alert.js +147 -0
  6. package/lib/alert/alert.js.map +1 -0
  7. package/lib/alert/alert.less +128 -0
  8. package/lib/cascader/cascader.d.ts +10 -0
  9. package/lib/cascader/cascader.d.ts.map +1 -0
  10. package/lib/cascader/cascader.js +84 -0
  11. package/lib/cascader/cascader.js.map +1 -0
  12. package/lib/cascader/cascader.less +16 -0
  13. package/lib/checkbox/check.png +0 -0
  14. package/lib/checkbox/checkbox.d.ts +16 -0
  15. package/lib/checkbox/checkbox.d.ts.map +1 -0
  16. package/lib/checkbox/checkbox.js +100 -0
  17. package/lib/checkbox/checkbox.js.map +1 -0
  18. package/lib/checkbox/checkbox.less +69 -0
  19. package/lib/date-picker/DatePicker.d.ts +21 -0
  20. package/lib/date-picker/DatePicker.d.ts.map +1 -0
  21. package/lib/date-picker/DatePicker.js +163 -0
  22. package/lib/date-picker/DatePicker.js.map +1 -0
  23. package/lib/date-picker/index.less +294 -0
  24. package/lib/input-number/inputNumber.d.ts +10 -0
  25. package/lib/input-number/inputNumber.d.ts.map +1 -0
  26. package/lib/input-number/inputNumber.js +89 -0
  27. package/lib/input-number/inputNumber.js.map +1 -0
  28. package/lib/input-number/inputNumber.less +12 -0
  29. package/lib/modal/index.less +36 -0
  30. package/lib/popconfirm/index.less +32 -0
  31. package/lib/popconfirm/popconfirm.d.ts +8 -0
  32. package/lib/popconfirm/popconfirm.d.ts.map +1 -0
  33. package/lib/popconfirm/popconfirm.js +96 -0
  34. package/lib/popconfirm/popconfirm.js.map +1 -0
  35. package/lib/popover/index.less +57 -0
  36. package/lib/popover/popover.d.ts +14 -0
  37. package/lib/popover/popover.d.ts.map +1 -0
  38. package/lib/popover/popover.js +90 -0
  39. package/lib/popover/popover.js.map +1 -0
  40. package/lib/progress/progress.d.ts +12 -0
  41. package/lib/progress/progress.d.ts.map +1 -0
  42. package/lib/progress/progress.js +179 -0
  43. package/lib/progress/progress.js.map +1 -0
  44. package/lib/progress/progress.less +82 -0
  45. package/lib/query-form/Field/Composition/FieldPopover.d.ts +19 -0
  46. package/lib/query-form/Field/Composition/FieldPopover.d.ts.map +1 -0
  47. package/lib/query-form/Field/Composition/FieldPopover.js +419 -0
  48. package/lib/query-form/Field/Composition/FieldPopover.js.map +1 -0
  49. package/lib/query-form/Field/Composition/FieldPopover.less +35 -0
  50. package/lib/query-form/Field/Composition/Select.d.ts +4 -0
  51. package/lib/query-form/Field/Composition/Select.d.ts.map +1 -0
  52. package/lib/query-form/Field/Composition/Select.js +253 -0
  53. package/lib/query-form/Field/Composition/Select.js.map +1 -0
  54. package/lib/query-form/Field/Composition/ValueTag.d.ts +13 -0
  55. package/lib/query-form/Field/Composition/ValueTag.d.ts.map +1 -0
  56. package/lib/query-form/Field/Composition/ValueTag.js +236 -0
  57. package/lib/query-form/Field/Composition/ValueTag.js.map +1 -0
  58. package/lib/query-form/Field/Composition/index.d.ts +13 -0
  59. package/lib/query-form/Field/Composition/index.d.ts.map +1 -0
  60. package/lib/query-form/Field/Composition/index.js +425 -0
  61. package/lib/query-form/Field/Composition/index.js.map +1 -0
  62. package/lib/query-form/Field/Composition/index.less +145 -0
  63. package/lib/query-form/Field/Composition/utils.d.ts +21 -0
  64. package/lib/query-form/Field/Composition/utils.d.ts.map +1 -0
  65. package/lib/query-form/Field/Composition/utils.js +172 -0
  66. package/lib/query-form/Field/Composition/utils.js.map +1 -0
  67. package/lib/query-form-backup/Field/Composition/FieldPopover.less +35 -0
  68. package/lib/query-form-backup/Field/Composition/index.less +114 -0
  69. package/lib/query-form-backup/index.less +90 -0
  70. package/lib/query-form-v2/index.less +133 -0
  71. package/lib/radio/radio.d.ts +17 -0
  72. package/lib/radio/radio.d.ts.map +1 -0
  73. package/lib/radio/radio.js +110 -0
  74. package/lib/radio/radio.js.map +1 -0
  75. package/lib/radio/radio.less +43 -0
  76. package/lib/scroll-bar/Bar.d.ts +4 -0
  77. package/lib/scroll-bar/Bar.d.ts.map +1 -0
  78. package/lib/scroll-bar/Bar.js +168 -0
  79. package/lib/scroll-bar/Bar.js.map +1 -0
  80. package/lib/scroll-bar/Context.d.ts +7 -0
  81. package/lib/scroll-bar/Context.d.ts.map +1 -0
  82. package/lib/scroll-bar/Context.js +17 -0
  83. package/lib/scroll-bar/Context.js.map +1 -0
  84. package/lib/scroll-bar/ScrollBar.d.ts +4 -0
  85. package/lib/scroll-bar/ScrollBar.d.ts.map +1 -0
  86. package/lib/scroll-bar/ScrollBar.js +132 -0
  87. package/lib/scroll-bar/ScrollBar.js.map +1 -0
  88. package/lib/scroll-bar/Thumb.d.ts +3 -0
  89. package/lib/scroll-bar/Thumb.d.ts.map +1 -0
  90. package/lib/scroll-bar/Thumb.js +202 -0
  91. package/lib/scroll-bar/Thumb.js.map +1 -0
  92. package/lib/scroll-bar/index.d.ts +3 -0
  93. package/lib/scroll-bar/index.d.ts.map +1 -0
  94. package/lib/scroll-bar/index.js +14 -0
  95. package/lib/scroll-bar/index.js.map +1 -0
  96. package/lib/scroll-bar/scrollBar.less +59 -0
  97. package/lib/scroll-bar/util.d.ts +40 -0
  98. package/lib/scroll-bar/util.d.ts.map +1 -0
  99. package/lib/scroll-bar/util.js +66 -0
  100. package/lib/scroll-bar/util.js.map +1 -0
  101. package/lib/spin/spin.d.ts +9 -0
  102. package/lib/spin/spin.d.ts.map +1 -0
  103. package/lib/spin/spin.js +79 -0
  104. package/lib/spin/spin.js.map +1 -0
  105. package/lib/spin/spin.less +9 -0
  106. package/lib/steps/assets/background_left.svg +12 -0
  107. package/lib/steps/assets/background_right.svg +12 -0
  108. package/lib/steps/assets/horizontal_line.svg +3 -0
  109. package/lib/steps/assets/vertical_line.svg +3 -0
  110. package/lib/steps/stepStyle/icon.less +51 -0
  111. package/lib/steps/stepStyle/progress-dot.less +10 -0
  112. package/lib/steps/stepStyle/variables.less +8 -0
  113. package/lib/steps/stepStyle/vertical.less +41 -0
  114. package/lib/switch/index.less +45 -0
  115. package/lib/tabs/tabs.less +125 -0
  116. package/lib/time-picker/TimePicker.d.ts +9 -0
  117. package/lib/time-picker/TimePicker.d.ts.map +1 -0
  118. package/lib/time-picker/TimePicker.js +90 -0
  119. package/lib/time-picker/TimePicker.js.map +1 -0
  120. package/lib/time-picker/index.less +38 -0
  121. package/lib/tntd-action/Action.d.ts +6 -0
  122. package/lib/tntd-action/Action.d.ts.map +1 -0
  123. package/lib/tntd-action/Action.js +218 -0
  124. package/lib/tntd-action/Action.js.map +1 -0
  125. package/lib/tntd-action/index.less +61 -0
  126. package/lib/tntd-select/index.less +7 -0
  127. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../src/radio/radio.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;GAOG;AACH,6DAAwD;AAKxD,0DAAqC;AAErC,4DAAmC;AACnC,+CAAyC;AACzC,wCAAqD;AACrD,kDAA6C;AAE7C,gDAA6B;AAe7B,MAAM,YAAY,GAAG,WAAW,CAAA;AAEhC,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAwB,CAAC,EAAsC,EAAE,GAAG,EAAE,EAAE;QAA/C,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,OAAW,EAAN,IAAI,cAApC,iCAAsC,CAAF;IACnF,OAAO,CACL,8BAAC,gCAAc,QACZ,GAAG,EAAE;QACJ,OAAO,CACL,8BAAC,eAAS,oBAAK,IAAI,IAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAA,oBAAU,EAAC,SAAS,EAAE,YAAY,CAAC,KAC1E,QAAQ,CAAC,CAAC,CAAC,CACV,wCAAM,SAAS,EAAE,GAAG,YAAY,WAAW;YACzC,4CAAO,QAAQ,CAAQ;YACtB,CAAC,CAAC,IAAI,IAAI,wCAAM,SAAS,EAAE,GAAG,YAAY,OAAO,IAAG,IAAI,CAAQ,CAC5D,CACR,CAAC,CAAC,CAAC,SAAS,CACH,CACb,CAAA;IACH,CAAC,CACc,CAClB,CAAA;AACH,CAAC,CAAmB,CAAA;AAEpB,MAAM,UAAU,GAAG,IAAA,kBAAU,EAAkC,CAAC,EAAsB,EAAE,GAAG,EAAE,EAAE;QAA/B,EAAE,SAAS,OAAW,EAAN,IAAI,cAApB,aAAsB,CAAF;IAClF,OAAO,CACL,8BAAC,gCAAc,QACZ,GAAG,EAAE;QACJ,OAAO,CACL,8BAAC,eAAS,CAAC,KAAK,oBACV,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,oBAAU,EAAC,SAAS,EAAE,GAAG,YAAY,QAAQ,CAAC,IACzD,CACH,CAAA;IACH,CAAC,CACc,CAClB,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,KAAK,CAAC,KAAK,GAAG,IAAA,kCAAwB,EAAC,UAAU,EAAE,0BAAW,CAAC,MAAM,CAAC,CAAA;AACtE,KAAK,CAAC,MAAM,GAAG,eAAS,CAAC,MAAM,CAAA;AAE/B,kBAAe,KAAK,CAAA","sourcesContent":["/*\n * @Author: 周泽飞 zefei.zhou@tongdun.net\n * @Date: 2024-03-14 16:55:05\n * @LastEditors: 周泽飞 zefei.zhou@tongdun.net\n * @LastEditTime: 2024-03-14 17:00:03\n * @FilePath: /tntd/packages/tntd/src/radio/radio.tsx\n * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n */\nimport { ConfigConsumer } from 'antd/lib/config-provider'\nimport type {\n RadioGroupProps as AntdRadioGroupProps,\n RadioProps as AntdRadioProps,\n} from 'antd/lib/radio'\nimport AntdRadio from 'antd/lib/radio'\nimport type AntdRadioGroup from 'antd/lib/radio/group'\nimport classNames from 'classnames'\nimport React, { forwardRef } from 'react'\nimport { connectReadonlyComponent } from '../connect'\nimport { PreviewText } from '../preview-text'\n\nexport * from 'antd/lib/radio'\n\nexport type RadioProps = AntdRadioProps & {\n desc?: string | React.ReactNode\n}\nexport type RadioGroupProps = AntdRadioGroupProps & {\n readonly?: boolean\n}\n\ninterface RadioComponent\n extends React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<AntdRadio>> {\n Group: React.FC<RadioGroupProps>\n Button: typeof AntdRadio.Button\n}\n\nconst tntPrefixCls = 'tnt-radio'\n\nconst Radio = forwardRef<AntdRadio, RadioProps>(({ className, children, desc, ...rest }, ref) => {\n return (\n <ConfigConsumer>\n {() => {\n return (\n <AntdRadio {...rest} ref={ref} className={classNames(className, tntPrefixCls)}>\n {children ? (\n <span className={`${tntPrefixCls}-children`}>\n <span>{children}</span>\n {!!desc && <span className={`${tntPrefixCls}-desc`}>{desc}</span>}\n </span>\n ) : undefined}\n </AntdRadio>\n )\n }}\n </ConfigConsumer>\n )\n}) as RadioComponent\n\nconst RadioGroup = forwardRef<AntdRadioGroup, RadioGroupProps>(({ className, ...rest }, ref) => {\n return (\n <ConfigConsumer>\n {() => {\n return (\n <AntdRadio.Group\n {...rest}\n ref={ref}\n className={classNames(className, `${tntPrefixCls}-group`)}\n />\n )\n }}\n </ConfigConsumer>\n )\n})\n\nRadio.Group = connectReadonlyComponent(RadioGroup, PreviewText.Select)\nRadio.Button = AntdRadio.Button\n\nexport default Radio\n"]}
@@ -0,0 +1,43 @@
1
+ @radio-prefix-cls: ~'@{ant-prefix}-radio';
2
+ @radio-inner-prefix-cls: ~'@{radio-prefix-cls}-inner';
3
+
4
+ // 选中状态
5
+ .tnt-radio,
6
+ .tnt-radio-group {
7
+ .@{radio-prefix-cls}-checked {
8
+ .@{radio-inner-prefix-cls} {
9
+ border-color: @radio-dot-color;
10
+ background-color: @radio-dot-color;
11
+ &::after {
12
+ @radio-dot-size: calc(@radio-size - 12px);
13
+
14
+ width: @radio-dot-size;
15
+ height: @radio-dot-size;
16
+ top: calc((@radio-size - @radio-dot-size) / 2 - 1px);
17
+ left: calc((@radio-size - @radio-dot-size) / 2 - 1px);
18
+ background-color: @radio-button-bg;
19
+ }
20
+ }
21
+
22
+ &.@{radio-prefix-cls}-disabled {
23
+ .@{radio-inner-prefix-cls} {
24
+ border-color: @checkbox-check-disabled-color !important;
25
+ background-color: @checkbox-check-disabled-color;
26
+ }
27
+ }
28
+ }
29
+ }
30
+
31
+ .tnt-radio {
32
+ & > span:nth-of-type(2) {
33
+ display: inline-block;
34
+ }
35
+ &-children {
36
+ display: flex;
37
+ flex-direction: column;
38
+ }
39
+ &-desc {
40
+ font-size: @font-size-sm;
41
+ color: @bg-color-spotilight-tint-50;
42
+ }
43
+ }
@@ -0,0 +1,4 @@
1
+ declare var _default: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
2
+ export default _default;
3
+ import React from "react";
4
+ //# sourceMappingURL=Bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bar.d.ts","sourceRoot":"","sources":["../../src/scroll-bar/Bar.js"],"names":[],"mappings":""}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) {
4
+ "@babel/helpers - typeof";
5
+
6
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
7
+ return typeof o;
8
+ } : function (o) {
9
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
10
+ }, _typeof(o);
11
+ }
12
+ Object.defineProperty(exports, "__esModule", {
13
+ value: true
14
+ });
15
+ exports["default"] = void 0;
16
+ var _react = _interopRequireWildcard(require("react"));
17
+ var _Context = _interopRequireDefault(require("./Context"));
18
+ var _Thumb = _interopRequireDefault(require("./Thumb"));
19
+ var _util = require("./util");
20
+ function _interopRequireDefault(e) {
21
+ return e && e.__esModule ? e : {
22
+ "default": e
23
+ };
24
+ }
25
+ function _getRequireWildcardCache(e) {
26
+ if ("function" != typeof WeakMap) return null;
27
+ var r = new WeakMap(),
28
+ t = new WeakMap();
29
+ return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {
30
+ return e ? t : r;
31
+ })(e);
32
+ }
33
+ function _interopRequireWildcard(e, r) {
34
+ if (!r && e && e.__esModule) return e;
35
+ if (null === e || "object" != _typeof(e) && "function" != typeof e) return {
36
+ "default": e
37
+ };
38
+ var t = _getRequireWildcardCache(r);
39
+ if (t && t.has(e)) return t.get(e);
40
+ var n = {
41
+ __proto__: null
42
+ },
43
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
44
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
45
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
46
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
47
+ }
48
+ return n["default"] = e, t && t.set(e, n), n;
49
+ }
50
+ function _slicedToArray(r, e) {
51
+ return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
52
+ }
53
+ function _nonIterableRest() {
54
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
55
+ }
56
+ function _unsupportedIterableToArray(r, a) {
57
+ if (r) {
58
+ if ("string" == typeof r) return _arrayLikeToArray(r, a);
59
+ var t = {}.toString.call(r).slice(8, -1);
60
+ return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
61
+ }
62
+ }
63
+ function _arrayLikeToArray(r, a) {
64
+ (null == a || a > r.length) && (a = r.length);
65
+ for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
66
+ return n;
67
+ }
68
+ function _iterableToArrayLimit(r, l) {
69
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
70
+ if (null != t) {
71
+ var e,
72
+ n,
73
+ i,
74
+ u,
75
+ a = [],
76
+ f = !0,
77
+ o = !1;
78
+ try {
79
+ if (i = (t = t.call(r)).next, 0 === l) {
80
+ if (Object(t) !== t) return;
81
+ f = !1;
82
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
83
+ } catch (r) {
84
+ o = !0, n = r;
85
+ } finally {
86
+ try {
87
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
88
+ } finally {
89
+ if (o) throw n;
90
+ }
91
+ }
92
+ return a;
93
+ }
94
+ }
95
+ function _arrayWithHoles(r) {
96
+ if (Array.isArray(r)) return r;
97
+ }
98
+ var _default = exports["default"] = (0, _react.forwardRef)(function (props, ref) {
99
+ var _useContext = (0, _react.useContext)(_Context["default"]),
100
+ wrapElement = _useContext.wrapElement;
101
+ var _useState = (0, _react.useState)(0),
102
+ _useState2 = _slicedToArray(_useState, 2),
103
+ moveX = _useState2[0],
104
+ setMoveX = _useState2[1];
105
+ var _useState3 = (0, _react.useState)(0),
106
+ _useState4 = _slicedToArray(_useState3, 2),
107
+ moveY = _useState4[0],
108
+ setMoveY = _useState4[1];
109
+ var _useState5 = (0, _react.useState)(0),
110
+ _useState6 = _slicedToArray(_useState5, 2),
111
+ sizeWidth = _useState6[0],
112
+ setSizeWidth = _useState6[1];
113
+ var _useState7 = (0, _react.useState)(0),
114
+ _useState8 = _slicedToArray(_useState7, 2),
115
+ sizeHeight = _useState8[0],
116
+ setSizeHeight = _useState8[1];
117
+ var _useState9 = (0, _react.useState)(1),
118
+ _useState10 = _slicedToArray(_useState9, 2),
119
+ ratioX = _useState10[0],
120
+ setRatioX = _useState10[1];
121
+ var _useState11 = (0, _react.useState)(1),
122
+ _useState12 = _slicedToArray(_useState11, 2),
123
+ ratioY = _useState12[0],
124
+ setRatioY = _useState12[1];
125
+ (0, _react.useImperativeHandle)(ref, function () {
126
+ return {
127
+ update: update,
128
+ handleScroll: handleScroll
129
+ };
130
+ });
131
+ function handleScroll() {
132
+ var wrap = wrapElement.current;
133
+ if (!wrap) return;
134
+ var offsetHeight = wrap.offsetHeight - _util.GAP;
135
+ var offsetWidth = wrap.offsetWidth - _util.GAP;
136
+ setMoveY(wrap.scrollTop * 100 / offsetHeight * ratioY);
137
+ setMoveX(wrap.scrollLeft * 100 / offsetWidth * ratioX);
138
+ }
139
+ function update() {
140
+ var wrap = wrapElement.current;
141
+ if (!wrap) return;
142
+ // 滚动窗口的高度
143
+ var offsetHeight = wrap.offsetHeight - _util.GAP;
144
+ var offsetWidth = wrap.offsetWidth - _util.GAP;
145
+ // 滚动条的逻辑高度
146
+ var originalHeight = Math.pow(offsetHeight, 2) / wrap.scrollHeight;
147
+ var originalWidth = Math.pow(offsetWidth, 2) / wrap.scrollWidth;
148
+ // 滚动条的实际高度,因为如果内容太长会导致滚动条非常短,可能难以点击拖拽,所以设置了最小高度
149
+ var height = Math.max(originalHeight, props.minSize);
150
+ var width = Math.max(originalWidth, props.minSize);
151
+ setRatioY(originalHeight / (offsetHeight - originalHeight) / (height / (offsetHeight - height)));
152
+ setRatioX(originalWidth / (offsetWidth - originalWidth) / (width / (offsetWidth - width)));
153
+ setSizeHeight(height + _util.GAP < offsetHeight ? height : 0);
154
+ setSizeWidth(width + _util.GAP < offsetWidth ? width : 0);
155
+ }
156
+ return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_Thumb["default"], {
157
+ always: props.always,
158
+ move: moveX,
159
+ size: sizeWidth,
160
+ ratio: ratioX
161
+ }), _react["default"].createElement(_Thumb["default"], {
162
+ always: props.always,
163
+ move: moveY,
164
+ size: sizeHeight,
165
+ ratio: ratioY,
166
+ vertical: true
167
+ }));
168
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bar.js","sourceRoot":"","sources":["../../src/scroll-bar/Bar.js"],"names":[],"mappings":"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","sourcesContent":["import React, { forwardRef, useContext, useImperativeHandle, useState } from 'react'\nimport Context from './Context'\nimport Thumb from './Thumb'\nimport { GAP } from './util'\n\nexport default forwardRef((props, ref) => {\n const { wrapElement } = useContext(Context)\n\n const [moveX, setMoveX] = useState(0)\n const [moveY, setMoveY] = useState(0)\n const [sizeWidth, setSizeWidth] = useState(0)\n const [sizeHeight, setSizeHeight] = useState(0)\n const [ratioX, setRatioX] = useState(1)\n const [ratioY, setRatioY] = useState(1)\n\n useImperativeHandle(ref, () => ({\n update,\n handleScroll,\n }))\n\n function handleScroll() {\n const wrap = wrapElement.current\n if (!wrap) return\n const offsetHeight = wrap.offsetHeight - GAP\n const offsetWidth = wrap.offsetWidth - GAP\n setMoveY(((wrap.scrollTop * 100) / offsetHeight) * ratioY)\n setMoveX(((wrap.scrollLeft * 100) / offsetWidth) * ratioX)\n }\n\n function update() {\n const wrap = wrapElement.current\n if (!wrap) return\n // 滚动窗口的高度\n const offsetHeight = wrap.offsetHeight - GAP\n const offsetWidth = wrap.offsetWidth - GAP\n // 滚动条的逻辑高度\n const originalHeight = offsetHeight ** 2 / wrap.scrollHeight\n const originalWidth = offsetWidth ** 2 / wrap.scrollWidth\n // 滚动条的实际高度,因为如果内容太长会导致滚动条非常短,可能难以点击拖拽,所以设置了最小高度\n const height = Math.max(originalHeight, props.minSize)\n const width = Math.max(originalWidth, props.minSize)\n\n setRatioY(originalHeight / (offsetHeight - originalHeight) / (height / (offsetHeight - height)))\n setRatioX(originalWidth / (offsetWidth - originalWidth) / (width / (offsetWidth - width)))\n setSizeHeight(height + GAP < offsetHeight ? height : 0)\n setSizeWidth(width + GAP < offsetWidth ? width : 0)\n }\n\n return (\n <>\n <Thumb always={props.always} move={moveX} size={sizeWidth} ratio={ratioX} />\n <Thumb always={props.always} move={moveY} size={sizeHeight} ratio={ratioY} vertical />\n </>\n )\n})\n"]}
@@ -0,0 +1,7 @@
1
+ export default Context;
2
+ declare const Context: React.Context<{
3
+ scrollbarElement: null;
4
+ wrapElement: null;
5
+ }>;
6
+ import React from "react";
7
+ //# sourceMappingURL=Context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/scroll-bar/Context.js"],"names":[],"mappings":";AAEA;;;GAGE"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ function _interopRequireDefault(e) {
9
+ return e && e.__esModule ? e : {
10
+ "default": e
11
+ };
12
+ }
13
+ var Context = _react["default"].createContext({
14
+ scrollbarElement: null,
15
+ wrapElement: null
16
+ });
17
+ var _default = exports["default"] = Context;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../src/scroll-bar/Context.js"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AAEzB,MAAM,OAAO,GAAG,eAAK,CAAC,aAAa,CAAC;IAClC,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,IAAI;CAClB,CAAC,CAAA;AAEF,kBAAe,OAAO,CAAA","sourcesContent":["import React from 'react'\n\nconst Context = React.createContext({\n scrollbarElement: null,\n wrapElement: null,\n})\n\nexport default Context\n"]}
@@ -0,0 +1,4 @@
1
+ declare var _default: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
2
+ export default _default;
3
+ import React from "react";
4
+ //# sourceMappingURL=ScrollBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollBar.d.ts","sourceRoot":"","sources":["../../src/scroll-bar/ScrollBar.js"],"names":[],"mappings":""}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) {
4
+ "@babel/helpers - typeof";
5
+
6
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
7
+ return typeof o;
8
+ } : function (o) {
9
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
10
+ }, _typeof(o);
11
+ }
12
+ Object.defineProperty(exports, "__esModule", {
13
+ value: true
14
+ });
15
+ exports["default"] = void 0;
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+ var _react = _interopRequireWildcard(require("react"));
18
+ var _Bar = _interopRequireDefault(require("./Bar"));
19
+ var _Context = _interopRequireDefault(require("./Context"));
20
+ function _getRequireWildcardCache(e) {
21
+ if ("function" != typeof WeakMap) return null;
22
+ var r = new WeakMap(),
23
+ t = new WeakMap();
24
+ return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {
25
+ return e ? t : r;
26
+ })(e);
27
+ }
28
+ function _interopRequireWildcard(e, r) {
29
+ if (!r && e && e.__esModule) return e;
30
+ if (null === e || "object" != _typeof(e) && "function" != typeof e) return {
31
+ "default": e
32
+ };
33
+ var t = _getRequireWildcardCache(r);
34
+ if (t && t.has(e)) return t.get(e);
35
+ var n = {
36
+ __proto__: null
37
+ },
38
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
39
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
40
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
41
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
42
+ }
43
+ return n["default"] = e, t && t.set(e, n), n;
44
+ }
45
+ function _interopRequireDefault(e) {
46
+ return e && e.__esModule ? e : {
47
+ "default": e
48
+ };
49
+ }
50
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
51
+ var t = {};
52
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
53
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
54
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
55
+ }
56
+ return t;
57
+ };
58
+ var _default = exports["default"] = (0, _react.forwardRef)(function (_a, ref) {
59
+ var children = _a.children,
60
+ _a$minSize = _a.minSize,
61
+ minSize = _a$minSize === void 0 ? 20 : _a$minSize,
62
+ props = __rest(_a, ["children", "minSize"]);
63
+ var scrollbarElement = (0, _react.useRef)();
64
+ var wrapElement = (0, _react.useRef)();
65
+ wrapElement = ref || wrapElement;
66
+ var resizeRef = (0, _react.useRef)();
67
+ var barRef = (0, _react.useRef)();
68
+ (0, _react.useEffect)(function () {
69
+ var wrapDom = wrapElement.current;
70
+ var resizeDom = resizeRef.current;
71
+ // 监听容器尺寸变化,因为尺寸可以设置类似height:100vh之类样式,高度并不是固定的
72
+ var observerCallback = function observerCallback() {
73
+ return requestAnimationFrame(function () {
74
+ var _a;
75
+ update();
76
+ (_a = barRef.current) === null || _a === void 0 ? void 0 : _a.handleScroll();
77
+ });
78
+ };
79
+ var observer = new ResizeObserver(observerCallback);
80
+ observer.observe(wrapDom);
81
+ observer.observe(resizeDom);
82
+ return function () {
83
+ observer.unobserve(wrapDom);
84
+ observer.unobserve(resizeDom);
85
+ };
86
+ }, []);
87
+ (0, _react.useEffect)(function () {
88
+ var _a;
89
+ if (!props["native"]) {
90
+ update();
91
+ (_a = barRef.current) === null || _a === void 0 ? void 0 : _a.handleScroll();
92
+ }
93
+ }, [props["native"]]);
94
+ function update() {
95
+ var _a;
96
+ (_a = barRef.current) === null || _a === void 0 ? void 0 : _a.update();
97
+ }
98
+ function handleScroll(e) {
99
+ var _a, _b;
100
+ (_a = barRef.current) === null || _a === void 0 ? void 0 : _a.handleScroll();
101
+ (_b = props.onScroll) === null || _b === void 0 ? void 0 : _b.call(props, e);
102
+ }
103
+ var wrapStyle = {
104
+ height: props.height,
105
+ maxHeight: props.maxHeight
106
+ };
107
+ var wrapClassName = (0, _classnames["default"])('tntd-scroll-bar-wrap', {
108
+ 'tntd-scroll-bar-wrap-hidden-default': !props["native"]
109
+ });
110
+ return _react["default"].createElement(_Context["default"].Provider, {
111
+ value: {
112
+ scrollbarElement: scrollbarElement,
113
+ wrapElement: wrapElement
114
+ }
115
+ }, _react["default"].createElement("div", {
116
+ style: props.style,
117
+ className: (0, _classnames["default"])('tntd-scroll-bar', props.className),
118
+ ref: scrollbarElement
119
+ }, _react["default"].createElement("div", {
120
+ style: wrapStyle,
121
+ className: wrapClassName,
122
+ ref: wrapElement,
123
+ onScroll: handleScroll
124
+ }, _react["default"].createElement("div", {
125
+ className: "tntd-scroll-bar-view",
126
+ ref: resizeRef
127
+ }, children)), !props["native"] && _react["default"].createElement(_Bar["default"], {
128
+ ref: barRef,
129
+ always: props.always,
130
+ minSize: minSize
131
+ })));
132
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollBar.js","sourceRoot":"","sources":["../../src/scroll-bar/ScrollBar.js"],"names":[],"mappings":"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","sourcesContent":["import clsx from 'classnames'\nimport React, { forwardRef, useEffect, useRef } from 'react'\nimport Bar from './Bar'\nimport Context from './Context'\n\nexport default forwardRef(({ children, minSize = 20, ...props }, ref) => {\n const scrollbarElement = useRef()\n let wrapElement = useRef()\n wrapElement = ref || wrapElement\n const resizeRef = useRef()\n const barRef = useRef()\n\n useEffect(() => {\n const wrapDom = wrapElement.current\n const resizeDom = resizeRef.current\n // 监听容器尺寸变化,因为尺寸可以设置类似height:100vh之类样式,高度并不是固定的\n const observerCallback = () =>\n requestAnimationFrame(() => {\n update()\n barRef.current?.handleScroll()\n })\n const observer = new ResizeObserver(observerCallback)\n observer.observe(wrapDom)\n observer.observe(resizeDom)\n return () => {\n observer.unobserve(wrapDom)\n observer.unobserve(resizeDom)\n }\n }, [])\n useEffect(() => {\n if (!props.native) {\n update()\n barRef.current?.handleScroll()\n }\n }, [props.native])\n\n function update() {\n barRef.current?.update()\n }\n\n function handleScroll(e) {\n barRef.current?.handleScroll()\n props.onScroll?.(e)\n }\n\n const wrapStyle = { height: props.height, maxHeight: props.maxHeight }\n const wrapClassName = clsx('tntd-scroll-bar-wrap', {\n 'tntd-scroll-bar-wrap-hidden-default': !props.native,\n })\n\n return (\n <Context.Provider value={{ scrollbarElement, wrapElement }}>\n <div\n style={props.style}\n className={clsx('tntd-scroll-bar', props.className)}\n ref={scrollbarElement}\n >\n <div style={wrapStyle} className={wrapClassName} ref={wrapElement} onScroll={handleScroll}>\n <div className=\"tntd-scroll-bar-view\" ref={resizeRef}>\n {children}\n </div>\n </div>\n {!props.native && <Bar ref={barRef} always={props.always} minSize={minSize} />}\n </div>\n </Context.Provider>\n )\n})\n"]}
@@ -0,0 +1,3 @@
1
+ export default function Thumb(props: any): React.JSX.Element;
2
+ import React from "react";
3
+ //# sourceMappingURL=Thumb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Thumb.d.ts","sourceRoot":"","sources":["../../src/scroll-bar/Thumb.js"],"names":[],"mappings":"AAKA,6DA6HC"}
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) {
4
+ "@babel/helpers - typeof";
5
+
6
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
7
+ return typeof o;
8
+ } : function (o) {
9
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
10
+ }, _typeof(o);
11
+ }
12
+ Object.defineProperty(exports, "__esModule", {
13
+ value: true
14
+ });
15
+ exports["default"] = Thumb;
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+ var _react = _interopRequireWildcard(require("react"));
18
+ var _Context = _interopRequireDefault(require("./Context"));
19
+ var _util = require("./util");
20
+ function _getRequireWildcardCache(e) {
21
+ if ("function" != typeof WeakMap) return null;
22
+ var r = new WeakMap(),
23
+ t = new WeakMap();
24
+ return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {
25
+ return e ? t : r;
26
+ })(e);
27
+ }
28
+ function _interopRequireWildcard(e, r) {
29
+ if (!r && e && e.__esModule) return e;
30
+ if (null === e || "object" != _typeof(e) && "function" != typeof e) return {
31
+ "default": e
32
+ };
33
+ var t = _getRequireWildcardCache(r);
34
+ if (t && t.has(e)) return t.get(e);
35
+ var n = {
36
+ __proto__: null
37
+ },
38
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
39
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
40
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
41
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
42
+ }
43
+ return n["default"] = e, t && t.set(e, n), n;
44
+ }
45
+ function _interopRequireDefault(e) {
46
+ return e && e.__esModule ? e : {
47
+ "default": e
48
+ };
49
+ }
50
+ function _slicedToArray(r, e) {
51
+ return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
52
+ }
53
+ function _nonIterableRest() {
54
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
55
+ }
56
+ function _unsupportedIterableToArray(r, a) {
57
+ if (r) {
58
+ if ("string" == typeof r) return _arrayLikeToArray(r, a);
59
+ var t = {}.toString.call(r).slice(8, -1);
60
+ return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
61
+ }
62
+ }
63
+ function _arrayLikeToArray(r, a) {
64
+ (null == a || a > r.length) && (a = r.length);
65
+ for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
66
+ return n;
67
+ }
68
+ function _iterableToArrayLimit(r, l) {
69
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
70
+ if (null != t) {
71
+ var e,
72
+ n,
73
+ i,
74
+ u,
75
+ a = [],
76
+ f = !0,
77
+ o = !1;
78
+ try {
79
+ if (i = (t = t.call(r)).next, 0 === l) {
80
+ if (Object(t) !== t) return;
81
+ f = !1;
82
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
83
+ } catch (r) {
84
+ o = !0, n = r;
85
+ } finally {
86
+ try {
87
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
88
+ } finally {
89
+ if (o) throw n;
90
+ }
91
+ }
92
+ return a;
93
+ }
94
+ }
95
+ function _arrayWithHoles(r) {
96
+ if (Array.isArray(r)) return r;
97
+ }
98
+ function Thumb(props) {
99
+ var _useContext = (0, _react.useContext)(_Context["default"]),
100
+ scrollbarElement = _useContext.scrollbarElement,
101
+ wrapElement = _useContext.wrapElement;
102
+ var instance = (0, _react.useRef)();
103
+ var thumb = (0, _react.useRef)();
104
+ var _useState = (0, _react.useState)(false),
105
+ _useState2 = _slicedToArray(_useState, 2),
106
+ visible = _useState2[0],
107
+ setVisible = _useState2[1];
108
+ // 当作非响应式变量使用
109
+ var thumbState = (0, _react.useRef)({});
110
+ var cursorDown = (0, _react.useRef)(false);
111
+ var cursorLeave = (0, _react.useRef)(false);
112
+ var originalOnSelectStart = (0, _react.useRef)(document.onselectstart);
113
+ var bar = _util.BAR_MAP[props.vertical ? 'vertical' : 'horizontal'];
114
+ (0, _react.useEffect)(function () {
115
+ var element = scrollbarElement.current;
116
+ element.addEventListener('mousemove', mouseMoveScrollbarHandler);
117
+ element.addEventListener('mouseleave', mouseLeaveScrollbarHandler);
118
+ return function () {
119
+ restoreOnselectstart();
120
+ document.removeEventListener('mouseup', mouseUpDocumentHandler);
121
+ element.removeEventListener('mousemove', mouseMoveScrollbarHandler);
122
+ element.removeEventListener('mouseleave', mouseLeaveScrollbarHandler);
123
+ };
124
+ }, []);
125
+ function mouseMoveScrollbarHandler() {
126
+ cursorLeave.current = false;
127
+ setVisible(true);
128
+ }
129
+ function mouseLeaveScrollbarHandler() {
130
+ cursorLeave.current = true;
131
+ setVisible(cursorDown.current);
132
+ }
133
+ function getOffsetRatio() {
134
+ return Math.pow(instance.current[bar.offset], 2) / wrapElement.current[bar.scrollSize] / props.ratio / thumb.current[bar.offset];
135
+ }
136
+ function clickTrackHandler(e) {
137
+ if (!thumb.current || !instance.current || !wrapElement.current) return;
138
+ // 鼠标点击的坐标距离顶端的距离
139
+ var offset = Math.abs(e.target.getBoundingClientRect()[bar.direction] - e[bar.client]);
140
+ var thumbHalf = thumb.current[bar.offset] / 2;
141
+ var thumbPositionPercentage = (offset - thumbHalf) * 100 * getOffsetRatio() / instance.current[bar.offset];
142
+ // 直接给scrollTop赋值,就会调用bar组件的handleScroll函数
143
+ wrapElement.current[bar.scroll] = thumbPositionPercentage * wrapElement.current[bar.scrollSize] / 100;
144
+ }
145
+ function clickThumbHandler(e) {
146
+ var _a;
147
+ e.stopPropagation();
148
+ if (e.ctrlKey || [1, 2].includes(e.button)) return;
149
+ (_a = window.getSelection()) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
150
+ startDrag(e);
151
+ var el = e.currentTarget;
152
+ if (!el) return;
153
+ thumbState.current[bar.axis] = el[bar.offset] - (e[bar.client] - el.getBoundingClientRect()[bar.direction]);
154
+ }
155
+ function startDrag(e) {
156
+ e.persist();
157
+ cursorDown.current = true;
158
+ document.addEventListener('mousemove', mouseMoveDocumentHandler);
159
+ document.addEventListener('mouseup', mouseUpDocumentHandler);
160
+ originalOnSelectStart.current = document.onselectstart;
161
+ document.onselectstart = function () {
162
+ return false;
163
+ };
164
+ }
165
+ function mouseMoveDocumentHandler(e) {
166
+ if (!instance.current || !thumb.current) return;
167
+ if (cursorDown.current === false) return;
168
+ var prevPage = thumbState.current[bar.axis];
169
+ if (!prevPage) return;
170
+ var offset = (instance.current.getBoundingClientRect()[bar.direction] - e[bar.client]) * -1;
171
+ var thumbClickPosition = thumb.current[bar.offset] - prevPage;
172
+ var thumbPositionPercentage = (offset - thumbClickPosition) * 100 * getOffsetRatio() / instance.current[bar.offset];
173
+ wrapElement.current[bar.scroll] = thumbPositionPercentage * wrapElement.current[bar.scrollSize] / 100;
174
+ }
175
+ function mouseUpDocumentHandler() {
176
+ cursorDown.current = false;
177
+ thumbState.current[bar.axis] = 0;
178
+ document.removeEventListener('mousemove', mouseMoveDocumentHandler);
179
+ document.removeEventListener('mouseup', mouseUpDocumentHandler);
180
+ restoreOnselectstart();
181
+ if (cursorLeave.current) setVisible(false);
182
+ }
183
+ function restoreOnselectstart() {
184
+ if (document.onselectstart !== originalOnSelectStart.current) document.onselectstart = originalOnSelectStart.current;
185
+ }
186
+ var thumbStyle = (0, _util.renderThumbStyle)({
187
+ size: props.size,
188
+ move: props.move,
189
+ bar: bar
190
+ });
191
+ return _react["default"].createElement("div", {
192
+ hidden: !(props.always || visible),
193
+ className: (0, _classnames["default"])('tntd-scroll-bar-bar', bar.key),
194
+ ref: instance,
195
+ onMouseDown: clickTrackHandler
196
+ }, _react["default"].createElement("div", {
197
+ className: "tntd-scroll-bar-thumb",
198
+ style: thumbStyle,
199
+ ref: thumb,
200
+ onMouseDown: clickThumbHandler
201
+ }));
202
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Thumb.js","sourceRoot":"","sources":["../../src/scroll-bar/Thumb.js"],"names":[],"mappings":"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","sourcesContent":["import clsx from 'classnames'\nimport React, { useContext, useEffect, useRef, useState } from 'react'\nimport Context from './Context'\nimport { BAR_MAP, renderThumbStyle } from './util'\n\nexport default function Thumb(props) {\n const { scrollbarElement, wrapElement } = useContext(Context)\n const instance = useRef()\n const thumb = useRef()\n const [visible, setVisible] = useState(false)\n // 当作非响应式变量使用\n const thumbState = useRef({})\n const cursorDown = useRef(false)\n const cursorLeave = useRef(false)\n const originalOnSelectStart = useRef(document.onselectstart)\n const bar = BAR_MAP[props.vertical ? 'vertical' : 'horizontal']\n\n useEffect(() => {\n const element = scrollbarElement.current\n element.addEventListener('mousemove', mouseMoveScrollbarHandler)\n element.addEventListener('mouseleave', mouseLeaveScrollbarHandler)\n return () => {\n restoreOnselectstart()\n document.removeEventListener('mouseup', mouseUpDocumentHandler)\n element.removeEventListener('mousemove', mouseMoveScrollbarHandler)\n element.removeEventListener('mouseleave', mouseLeaveScrollbarHandler)\n }\n }, [])\n\n function mouseMoveScrollbarHandler() {\n cursorLeave.current = false\n setVisible(true)\n }\n\n function mouseLeaveScrollbarHandler() {\n cursorLeave.current = true\n setVisible(cursorDown.current)\n }\n\n function getOffsetRatio() {\n return (\n instance.current[bar.offset] ** 2 /\n wrapElement.current[bar.scrollSize] /\n props.ratio /\n thumb.current[bar.offset]\n )\n }\n\n function clickTrackHandler(e) {\n if (!thumb.current || !instance.current || !wrapElement.current) return\n // 鼠标点击的坐标距离顶端的距离\n const offset = Math.abs(e.target.getBoundingClientRect()[bar.direction] - e[bar.client])\n const thumbHalf = thumb.current[bar.offset] / 2\n const thumbPositionPercentage =\n ((offset - thumbHalf) * 100 * getOffsetRatio()) / instance.current[bar.offset]\n // 直接给scrollTop赋值,就会调用bar组件的handleScroll函数\n wrapElement.current[bar.scroll] =\n (thumbPositionPercentage * wrapElement.current[bar.scrollSize]) / 100\n }\n\n function clickThumbHandler(e) {\n e.stopPropagation()\n if (e.ctrlKey || [1, 2].includes(e.button)) return\n window.getSelection()?.removeAllRanges()\n startDrag(e)\n\n const el = e.currentTarget\n if (!el) return\n thumbState.current[bar.axis] =\n el[bar.offset] - (e[bar.client] - el.getBoundingClientRect()[bar.direction])\n }\n\n function startDrag(e) {\n e.persist()\n cursorDown.current = true\n document.addEventListener('mousemove', mouseMoveDocumentHandler)\n document.addEventListener('mouseup', mouseUpDocumentHandler)\n originalOnSelectStart.current = document.onselectstart\n document.onselectstart = () => false\n }\n\n function mouseMoveDocumentHandler(e) {\n if (!instance.current || !thumb.current) return\n if (cursorDown.current === false) return\n const prevPage = thumbState.current[bar.axis]\n if (!prevPage) return\n\n const offset = (instance.current.getBoundingClientRect()[bar.direction] - e[bar.client]) * -1\n const thumbClickPosition = thumb.current[bar.offset] - prevPage\n const thumbPositionPercentage =\n ((offset - thumbClickPosition) * 100 * getOffsetRatio()) / instance.current[bar.offset]\n wrapElement.current[bar.scroll] =\n (thumbPositionPercentage * wrapElement.current[bar.scrollSize]) / 100\n }\n\n function mouseUpDocumentHandler() {\n cursorDown.current = false\n thumbState.current[bar.axis] = 0\n document.removeEventListener('mousemove', mouseMoveDocumentHandler)\n document.removeEventListener('mouseup', mouseUpDocumentHandler)\n restoreOnselectstart()\n if (cursorLeave.current) setVisible(false)\n }\n\n function restoreOnselectstart() {\n if (document.onselectstart !== originalOnSelectStart.current)\n document.onselectstart = originalOnSelectStart.current\n }\n\n const thumbStyle = renderThumbStyle({\n size: props.size,\n move: props.move,\n bar: bar,\n })\n\n return (\n <div\n hidden={!(props.always || visible)}\n className={clsx('tntd-scroll-bar-bar', bar.key)}\n ref={instance}\n onMouseDown={clickTrackHandler}\n >\n <div\n className=\"tntd-scroll-bar-thumb\"\n style={thumbStyle}\n ref={thumb}\n onMouseDown={clickThumbHandler}\n />\n </div>\n )\n}\n"]}