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,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,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,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC;IAClC,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,IAAI;CAClB,CAAC,CAAA;AAEF,eAAe,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,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":";;;;;;;;;;;AAAA,OAAO,IAAI,MAAM,YAAY,CAAA;AAC7B,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC5D,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,OAAO,MAAM,WAAW,CAAA;AAE/B,eAAe,UAAU,CAAC,CAAC,EAAoC,EAAE,GAAG,EAAE,EAAE;QAA7C,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE,OAAY,EAAP,KAAK,cAAlC,uBAAoC,CAAF;IAC3D,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAA;IACjC,IAAI,WAAW,GAAG,MAAM,EAAE,CAAA;IAC1B,WAAW,GAAG,GAAG,IAAI,WAAW,CAAA;IAChC,MAAM,SAAS,GAAG,MAAM,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAA;IAEvB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAA;QACnC,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAA;QACnC,+CAA+C;QAC/C,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAC5B,qBAAqB,CAAC,GAAG,EAAE;;YACzB,MAAM,EAAE,CAAA;YACR,MAAA,MAAM,CAAC,OAAO,0CAAE,YAAY,EAAE,CAAA;QAChC,CAAC,CAAC,CAAA;QACJ,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,gBAAgB,CAAC,CAAA;QACrD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACzB,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC3B,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAC3B,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC/B,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,SAAS,CAAC,GAAG,EAAE;;QACb,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACjB,MAAM,EAAE,CAAA;YACR,MAAA,MAAM,CAAC,OAAO,0CAAE,YAAY,EAAE,CAAA;SAC/B;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAElB,SAAS,MAAM;;QACb,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,EAAE,CAAA;IAC1B,CAAC;IAED,SAAS,YAAY,CAAC,CAAC;;QACrB,MAAA,MAAM,CAAC,OAAO,0CAAE,YAAY,EAAE,CAAA;QAC9B,MAAA,KAAK,CAAC,QAAQ,sDAAG,CAAC,CAAC,CAAA;IACrB,CAAC;IAED,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACtE,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,EAAE;QACjD,qCAAqC,EAAE,CAAC,KAAK,CAAC,MAAM;KACrD,CAAC,CAAA;IAEF,OAAO,CACL,oBAAC,OAAO,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE;QACxD,6BACE,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,EACnD,GAAG,EAAE,gBAAgB;YAErB,6BAAK,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY;gBACvF,6BAAK,SAAS,EAAC,sBAAsB,EAAC,GAAG,EAAE,SAAS,IACjD,QAAQ,CACL,CACF;YACL,CAAC,KAAK,CAAC,MAAM,IAAI,oBAAC,GAAG,IAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,GAAI,CAC1E,CACW,CACpB,CAAA;AACH,CAAC,CAAC,CAAA","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"]}