tntd 3.0.41 → 3.0.42

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 (86) hide show
  1. package/es/query-form/Field/Composition/FieldPopover.js +457 -0
  2. package/es/query-form/Field/Composition/FieldPopover.js.map +1 -0
  3. package/es/query-form/Field/Composition/FieldPopover.less +35 -0
  4. package/es/query-form/Field/Composition/Select.js +253 -0
  5. package/es/query-form/Field/Composition/Select.js.map +1 -0
  6. package/es/query-form/Field/Composition/SelectInput.js +111 -0
  7. package/es/query-form/Field/Composition/SelectInput.js.map +1 -0
  8. package/es/query-form/Field/Composition/ValueTag.js +239 -0
  9. package/es/query-form/Field/Composition/ValueTag.js.map +1 -0
  10. package/es/query-form/Field/Composition/index.js +441 -0
  11. package/es/query-form/Field/Composition/index.js.map +1 -0
  12. package/es/query-form/Field/Composition/index.less +145 -0
  13. package/es/query-form/Field/Composition/utils.js +173 -0
  14. package/es/query-form/Field/Composition/utils.js.map +1 -0
  15. package/es/query-form-v2/index.less +133 -0
  16. package/es/scroll-bar/Bar.js +168 -0
  17. package/es/scroll-bar/Bar.js.map +1 -0
  18. package/es/scroll-bar/Context.js +17 -0
  19. package/es/scroll-bar/Context.js.map +1 -0
  20. package/es/scroll-bar/ScrollBar.js +132 -0
  21. package/es/scroll-bar/ScrollBar.js.map +1 -0
  22. package/es/scroll-bar/Thumb.js +202 -0
  23. package/es/scroll-bar/Thumb.js.map +1 -0
  24. package/es/scroll-bar/index.js +14 -0
  25. package/es/scroll-bar/index.js.map +1 -0
  26. package/es/scroll-bar/scrollBar.less +59 -0
  27. package/es/scroll-bar/util.js +66 -0
  28. package/es/scroll-bar/util.js.map +1 -0
  29. package/es/tntd-cascader/rc-cascader/OptionList/Column.js +4 -4
  30. package/es/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -1
  31. package/lib/query-form/Field/Composition/FieldPopover.d.ts +19 -0
  32. package/lib/query-form/Field/Composition/FieldPopover.d.ts.map +1 -0
  33. package/lib/query-form/Field/Composition/FieldPopover.js +457 -0
  34. package/lib/query-form/Field/Composition/FieldPopover.js.map +1 -0
  35. package/lib/query-form/Field/Composition/FieldPopover.less +35 -0
  36. package/lib/query-form/Field/Composition/Select.d.ts +4 -0
  37. package/lib/query-form/Field/Composition/Select.d.ts.map +1 -0
  38. package/lib/query-form/Field/Composition/Select.js +253 -0
  39. package/lib/query-form/Field/Composition/Select.js.map +1 -0
  40. package/lib/query-form/Field/Composition/SelectInput.d.ts +3 -0
  41. package/lib/query-form/Field/Composition/SelectInput.d.ts.map +1 -0
  42. package/lib/query-form/Field/Composition/SelectInput.js +111 -0
  43. package/lib/query-form/Field/Composition/SelectInput.js.map +1 -0
  44. package/lib/query-form/Field/Composition/ValueTag.d.ts +13 -0
  45. package/lib/query-form/Field/Composition/ValueTag.d.ts.map +1 -0
  46. package/lib/query-form/Field/Composition/ValueTag.js +239 -0
  47. package/lib/query-form/Field/Composition/ValueTag.js.map +1 -0
  48. package/lib/query-form/Field/Composition/index.d.ts +15 -0
  49. package/lib/query-form/Field/Composition/index.d.ts.map +1 -0
  50. package/lib/query-form/Field/Composition/index.js +441 -0
  51. package/lib/query-form/Field/Composition/index.js.map +1 -0
  52. package/lib/query-form/Field/Composition/index.less +145 -0
  53. package/lib/query-form/Field/Composition/utils.d.ts +21 -0
  54. package/lib/query-form/Field/Composition/utils.d.ts.map +1 -0
  55. package/lib/query-form/Field/Composition/utils.js +173 -0
  56. package/lib/query-form/Field/Composition/utils.js.map +1 -0
  57. package/lib/query-form-v2/index.less +133 -0
  58. package/lib/scroll-bar/Bar.d.ts +4 -0
  59. package/lib/scroll-bar/Bar.d.ts.map +1 -0
  60. package/lib/scroll-bar/Bar.js +168 -0
  61. package/lib/scroll-bar/Bar.js.map +1 -0
  62. package/lib/scroll-bar/Context.d.ts +7 -0
  63. package/lib/scroll-bar/Context.d.ts.map +1 -0
  64. package/lib/scroll-bar/Context.js +17 -0
  65. package/lib/scroll-bar/Context.js.map +1 -0
  66. package/lib/scroll-bar/ScrollBar.d.ts +4 -0
  67. package/lib/scroll-bar/ScrollBar.d.ts.map +1 -0
  68. package/lib/scroll-bar/ScrollBar.js +132 -0
  69. package/lib/scroll-bar/ScrollBar.js.map +1 -0
  70. package/lib/scroll-bar/Thumb.d.ts +3 -0
  71. package/lib/scroll-bar/Thumb.d.ts.map +1 -0
  72. package/lib/scroll-bar/Thumb.js +202 -0
  73. package/lib/scroll-bar/Thumb.js.map +1 -0
  74. package/lib/scroll-bar/index.d.ts +3 -0
  75. package/lib/scroll-bar/index.d.ts.map +1 -0
  76. package/lib/scroll-bar/index.js +14 -0
  77. package/lib/scroll-bar/index.js.map +1 -0
  78. package/lib/scroll-bar/scrollBar.less +59 -0
  79. package/lib/scroll-bar/util.d.ts +40 -0
  80. package/lib/scroll-bar/util.d.ts.map +1 -0
  81. package/lib/scroll-bar/util.js +66 -0
  82. package/lib/scroll-bar/util.js.map +1 -0
  83. package/lib/tntd-cascader/rc-cascader/OptionList/Column.d.ts.map +1 -1
  84. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js +4 -4
  85. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -1
  86. package/package.json +1 -1
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.formatLabel = formatLabel;
7
+ exports.getLabel = getLabel;
8
+ exports.getLabelByValue = getLabelByValue;
9
+ exports.highlightSubstring = highlightSubstring;
10
+ exports.isInput = void 0;
11
+ exports.parseArrayToObject = parseArrayToObject;
12
+ exports.parseObjectToArray = parseObjectToArray;
13
+ var _flatten2 = _interopRequireDefault(require("lodash/flatten"));
14
+ var _isString2 = _interopRequireDefault(require("lodash/isString"));
15
+ var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
16
+ var _react = _interopRequireDefault(require("react"));
17
+ var _moment = _interopRequireDefault(require("moment"));
18
+ function _interopRequireDefault(e) {
19
+ return e && e.__esModule ? e : {
20
+ "default": e
21
+ };
22
+ }
23
+ function highlightSubstring(str, substring) {
24
+ var highlighted = "<span class=\"tnt-highlight\">".concat(substring, "</span>");
25
+ return str.replace(new RegExp(substring, 'g'), highlighted);
26
+ }
27
+ function getLabelByValue(_ref) {
28
+ var value = _ref.value,
29
+ options = _ref.options,
30
+ _ref$fieldNames = _ref.fieldNames,
31
+ fieldNames = _ref$fieldNames === void 0 ? {
32
+ label: 'label',
33
+ value: 'value'
34
+ } : _ref$fieldNames;
35
+ var getLabel = function getLabel(value) {
36
+ var target = options === null || options === void 0 ? void 0 : options.find(function (item) {
37
+ var valueKey = fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value;
38
+ var itemValue = item instanceof Object ? item[valueKey] : item;
39
+ return itemValue === value;
40
+ });
41
+ if (target) {
42
+ return target instanceof Object ? target === null || target === void 0 ? void 0 : target[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.label] : target;
43
+ } else {
44
+ return value;
45
+ }
46
+ };
47
+ if ((0, _isArray2["default"])(value)) {
48
+ return value.map(getLabel).join(' | ');
49
+ } else {
50
+ return getLabel(value);
51
+ }
52
+ }
53
+ function formatLabel(reactDom) {
54
+ return (0, _flatten2["default"])(_react["default"].Children.map(reactDom.props.children, function (child) {
55
+ if (_react["default"].isValidElement(child)) {
56
+ return formatLabel(child);
57
+ } else if ((0, _isString2["default"])(child)) {
58
+ return child;
59
+ }
60
+ return '';
61
+ })).join('');
62
+ }
63
+ function parseObjectToArray(value, data) {
64
+ var _a, _b;
65
+ return (_b = (_a = Object.keys(value || {})) === null || _a === void 0 ? void 0 : _a.map(function (key) {
66
+ var target = data === null || data === void 0 ? void 0 : data.find(function (item) {
67
+ var _a, _b;
68
+ return ((_a = item.props) === null || _a === void 0 ? void 0 : _a.name) === key || ((_b = item.props) === null || _b === void 0 ? void 0 : _b.pName) === key;
69
+ });
70
+ if (!target) return null;
71
+ var dataItem = (target === null || target === void 0 ? void 0 : target.props) || {};
72
+ var _ref2 = dataItem || {},
73
+ _ref2$type = _ref2.type,
74
+ type = _ref2$type === void 0 ? 'input' : _ref2$type,
75
+ component = _ref2.component,
76
+ setLabel = _ref2.setLabel;
77
+ if (!type && component && !setLabel) {
78
+ console.error('自定义组件需要传入setLabel()方法');
79
+ }
80
+ return {
81
+ key: key,
82
+ value: value[key]
83
+ };
84
+ })) === null || _b === void 0 ? void 0 : _b.filter(function (item) {
85
+ return !!item;
86
+ });
87
+ }
88
+ function parseArrayToObject(value) {
89
+ return value === null || value === void 0 ? void 0 : value.reduce(function (acc, v) {
90
+ acc[v.key] = v.value;
91
+ return acc;
92
+ }, {});
93
+ }
94
+ function getLabel(_ref3, data, locale) {
95
+ var key = _ref3.key,
96
+ value = _ref3.value;
97
+ var _a, _b, _c, _d;
98
+ var otherTarget = data === null || data === void 0 ? void 0 : data.find(function (item) {
99
+ var _a;
100
+ return ((_a = item.props) === null || _a === void 0 ? void 0 : _a.pName) === key;
101
+ });
102
+ if (otherTarget) {
103
+ // otherInput
104
+ var selectKey = (_a = Object.keys(value || {})) === null || _a === void 0 ? void 0 : _a[0];
105
+ if (!selectKey) {
106
+ // 17. inputSelect组件,初始值{},展示undefined:undefined
107
+ return false;
108
+ }
109
+ var otherTargetObj = data.find(function (item) {
110
+ return item.props.pName === key && item.props.cName === selectKey;
111
+ });
112
+ if (!otherTargetObj) {
113
+ return false;
114
+ }
115
+ return otherTargetObj.props.title + ':' + (value[selectKey] || '');
116
+ }
117
+ var target = data === null || data === void 0 ? void 0 : data.find(function (item) {
118
+ var _a;
119
+ return ((_a = item.props) === null || _a === void 0 ? void 0 : _a.name) === key;
120
+ });
121
+ if (!target) return null;
122
+ var dataItem = (target === null || target === void 0 ? void 0 : target.props) || {};
123
+ var _ref4 = dataItem || {},
124
+ _ref4$type = _ref4.type,
125
+ type = _ref4$type === void 0 ? 'input' : _ref4$type,
126
+ setLabel = _ref4.setLabel,
127
+ fieldProps = _ref4.props,
128
+ propsTitle = _ref4.propsTitle,
129
+ title = _ref4.title,
130
+ name = _ref4.name;
131
+ var _propsTitle = propsTitle || title || name;
132
+ var _ref5 = fieldProps || {},
133
+ options = _ref5.options,
134
+ format = _ref5.format;
135
+ var labelValue = value;
136
+ if (setLabel) {
137
+ // setLabel: 对于自定义组件,无法控制label的显示,可以通过setLabel方法控制
138
+ labelValue = setLabel(value);
139
+ } else if (options) {
140
+ if (type === 'selectInput') {
141
+ var _selectKey = (_b = Object.keys(value || {})) === null || _b === void 0 ? void 0 : _b[0];
142
+ if (!_selectKey) {
143
+ // 17. inputSelect组件,初始值{},展示undefined:undefined
144
+ return false;
145
+ }
146
+ var inputValue = value[_selectKey];
147
+ var selectLabel = (_c = options === null || options === void 0 ? void 0 : options.find(function (v) {
148
+ return v.value === _selectKey;
149
+ })) === null || _c === void 0 ? void 0 : _c.label;
150
+ return selectLabel + ':' + inputValue;
151
+ }
152
+ labelValue = getLabelByValue({
153
+ value: value,
154
+ options: options,
155
+ fieldNames: ((_d = dataItem === null || dataItem === void 0 ? void 0 : dataItem.props) === null || _d === void 0 ? void 0 : _d.fieldNames) || {
156
+ label: 'label',
157
+ value: 'value'
158
+ }
159
+ });
160
+ } else if (type === 'checkbox') {
161
+ labelValue = value ? locale.yes : locale.no;
162
+ } else if (type === 'dateRange' && format) {
163
+ if (value === null || value === void 0 ? void 0 : value.length) {
164
+ labelValue = [(0, _moment["default"])(value === null || value === void 0 ? void 0 : value[0]).format(format), (0, _moment["default"])(value === null || value === void 0 ? void 0 : value[1]).format(format)].join('~');
165
+ }
166
+ } else if (type === 'date' && format) {
167
+ labelValue = value ? (0, _moment["default"])(value).format(format) : undefined;
168
+ }
169
+ return _propsTitle + ':' + (labelValue === undefined ? '' : labelValue);
170
+ }
171
+ var isInput = exports.isInput = function isInput(type) {
172
+ return ['input', 'string', 'search', 'aloneSearch', 'number', 'inputNumber', 'otherInput'].includes(type);
173
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/query-form/Field/Composition/utils.js"],"names":[],"mappings":"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","sourcesContent":["import React from 'react'\nimport { isArray, isString, flatten } from 'lodash'\nimport moment from 'moment'\n\nexport function highlightSubstring(str, substring) {\n const highlighted = `<span class=\"tnt-highlight\">${substring}</span>`\n return str.replace(new RegExp(substring, 'g'), highlighted)\n}\n\nexport function getLabelByValue({\n value,\n options,\n fieldNames = {\n label: 'label',\n value: 'value',\n },\n}) {\n const getLabel = (value) => {\n const target = options?.find((item) => {\n const valueKey = fieldNames?.value\n const itemValue = item instanceof Object ? item[valueKey] : item\n return itemValue === value\n })\n if (target) {\n return target instanceof Object ? target?.[fieldNames?.label] : target\n } else {\n return value\n }\n }\n if (isArray(value)) {\n return value.map(getLabel).join(' | ')\n } else {\n return getLabel(value)\n }\n}\n\nexport function formatLabel(reactDom) {\n return flatten(\n React.Children.map(reactDom.props.children, (child) => {\n if (React.isValidElement(child)) {\n return formatLabel(child)\n } else if (isString(child)) {\n return child\n }\n return ''\n })\n ).join('')\n}\n\nexport function parseObjectToArray(value, data) {\n return Object.keys(value || {})\n ?.map((key) => {\n const target = data?.find((item) => item.props?.name === key || item.props?.pName === key)\n if (!target) return null\n const dataItem = target?.props || {}\n const { type = 'input', component, setLabel } = dataItem || {}\n if (!type && component && !setLabel) {\n console.error('自定义组件需要传入setLabel()方法')\n }\n return {\n key,\n value: value[key],\n }\n })\n ?.filter((item) => !!item)\n}\n\nexport function parseArrayToObject(value) {\n return value?.reduce((acc, v) => {\n acc[v.key] = v.value\n return acc\n }, {})\n}\n\nexport function getLabel({ key, value }, data, locale) {\n const otherTarget = data?.find((item) => item.props?.pName === key)\n if (otherTarget) {\n // otherInput\n const selectKey = Object.keys(value || {})?.[0]\n if (!selectKey) {\n // 17. inputSelect组件,初始值{},展示undefined:undefined\n return false\n }\n const otherTargetObj = data.find(\n (item) => item.props.pName === key && item.props.cName === selectKey\n )\n if (!otherTargetObj) {\n return false\n }\n return otherTargetObj.props.title + ':' + (value[selectKey] || '')\n }\n\n const target = data?.find((item) => item.props?.name === key)\n if (!target) return null\n const dataItem = target?.props || {}\n const { type = 'input', setLabel, props: fieldProps, propsTitle, title, name } = dataItem || {}\n const _propsTitle = propsTitle || title || name\n const { options, format } = fieldProps || {}\n let labelValue = value\n if (setLabel) {\n // setLabel: 对于自定义组件,无法控制label的显示,可以通过setLabel方法控制\n labelValue = setLabel(value)\n } else if (options) {\n if (type === 'selectInput') {\n const selectKey = Object.keys(value || {})?.[0]\n if (!selectKey) {\n // 17. inputSelect组件,初始值{},展示undefined:undefined\n return false\n }\n const inputValue = value[selectKey]\n const selectLabel = options?.find((v) => v.value === selectKey)?.label\n return selectLabel + ':' + inputValue\n }\n labelValue = getLabelByValue({\n value,\n options,\n fieldNames: dataItem?.props?.fieldNames || {\n label: 'label',\n value: 'value',\n },\n })\n } else if (type === 'checkbox') {\n labelValue = value ? locale.yes : locale.no\n } else if (type === 'dateRange' && format) {\n if (value?.length) {\n labelValue = [moment(value?.[0]).format(format), moment(value?.[1]).format(format)].join('~')\n }\n } else if (type === 'date' && format) {\n labelValue = value ? moment(value).format(format) : undefined\n }\n return _propsTitle + ':' + (labelValue === undefined ? '' : labelValue)\n}\n\nexport const isInput = (type) =>\n ['input', 'string', 'search', 'aloneSearch', 'number', 'inputNumber', 'otherInput'].includes(type)\n"]}
@@ -0,0 +1,133 @@
1
+ .tnt-queryform {
2
+ display: flex;
3
+
4
+ &-extra {
5
+ line-height: 32px;
6
+ margin-left: 12px;
7
+ & > * {
8
+ margin-left: 8px;
9
+ }
10
+ }
11
+
12
+ &-actions {
13
+ align-items: center;
14
+ display: inline-block;
15
+ height: 32px;
16
+ line-height: 32px;
17
+
18
+ & > *:not(.expand-link) {
19
+ margin-right: 10px;
20
+ }
21
+ & > .expand-link {
22
+ padding: 0;
23
+ margin-right: 0;
24
+ }
25
+ & > .ant-badge {
26
+ .tnt-icon {
27
+ margin-right: 8px;
28
+ }
29
+ }
30
+ }
31
+
32
+ .ant-form {
33
+ display: inline-block;
34
+ margin-bottom: 12px;
35
+ display: flex;
36
+ flex: 1;
37
+ &.ant-form-inline {
38
+ flex-wrap: unset;
39
+ }
40
+
41
+ & > div:nth-child(1) {
42
+ height: 32px;
43
+ overflow: hidden;
44
+ .ant-form-item-label {
45
+ label {
46
+ // bottom: 4px;
47
+ }
48
+ }
49
+ }
50
+
51
+ &.expanded {
52
+ & > div:nth-child(1) {
53
+ height: auto !important;
54
+ }
55
+ }
56
+
57
+ &.showMore {
58
+ & > div:nth-child(1) {
59
+ .ant-form-item {
60
+ margin-bottom: 12px;
61
+ }
62
+ }
63
+ }
64
+
65
+ & > div:nth-child(2) {
66
+ display: flex;
67
+ }
68
+
69
+ &.ant-form-inline .ant-form-item {
70
+ margin-right: 10px;
71
+ display: inline-block;
72
+ }
73
+
74
+ .ant-form-item-control {
75
+ // min-width: 160px;
76
+ line-height: unset;
77
+ .ant-calendar-picker-input {
78
+ padding: 0 11px;
79
+ }
80
+ .ant-form-item-children {
81
+ & > .ant-input,
82
+ & > .ant-input-affix-wrapper {
83
+ width: 160px;
84
+ // width: 200px;
85
+ }
86
+ }
87
+ }
88
+ }
89
+
90
+ &-drawer {
91
+ margin-top: 50px;
92
+ &.large-size {
93
+ margin-top: 60px;
94
+ }
95
+
96
+ &.ant-drawer.ant-drawer-open {
97
+ .ant-drawer-mask {
98
+ opacity: 0;
99
+ background: unset;
100
+ }
101
+ }
102
+ .ant-drawer-body {
103
+ .ant-form-item {
104
+ display: block;
105
+ margin-right: 0;
106
+ margin-bottom: 20px;
107
+ width: 100%;
108
+ }
109
+ .ant-form-item-label {
110
+ display: block;
111
+ text-align: left;
112
+ line-height: 22px;
113
+ margin-bottom: 10px;
114
+ }
115
+ .ant-form-item-control-wrapper,
116
+ .ant-form-item-control,
117
+ .ant-calendar-picker,
118
+ .ant-input {
119
+ min-width: 100%;
120
+ width: 100%;
121
+ }
122
+
123
+ & > .ant-btn {
124
+ display: block;
125
+ width: 100%;
126
+ margin-bottom: 10px;
127
+ &.ant-btn-primary {
128
+ margin-top: 20px;
129
+ }
130
+ }
131
+ }
132
+ }
133
+ }
@@ -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":""}