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,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"]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _ScrollBar = _interopRequireDefault(require("./ScrollBar"));
8
+ require("./scrollBar.less");
9
+ function _interopRequireDefault(e) {
10
+ return e && e.__esModule ? e : {
11
+ "default": e
12
+ };
13
+ }
14
+ var _default = exports["default"] = _ScrollBar["default"];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scroll-bar/index.js"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,kBAAkB,CAAA;AAEzB,eAAe,SAAS,CAAA","sourcesContent":["import ScrollBar from './ScrollBar'\nimport './scrollBar.less'\n\nexport default ScrollBar\n"]}
@@ -0,0 +1,59 @@
1
+ .tntd-scroll-bar {
2
+ position: relative;
3
+ height: 100%;
4
+ overflow: hidden;
5
+ }
6
+ .tntd-scroll-bar-wrap {
7
+ height: 100%;
8
+ overflow: auto;
9
+ }
10
+ .tntd-scroll-bar-wrap-hidden-default {
11
+ scrollbar-width: none;
12
+ &::-webkit-scrollbar {
13
+ display: none;
14
+ }
15
+ }
16
+ .tntd-scroll-bar-view {
17
+ width: fit-content;
18
+ min-width: 100%;
19
+ }
20
+ .tntd-scroll-bar-bar {
21
+ position: absolute;
22
+ right: 2px;
23
+ bottom: 2px;
24
+ z-index: 1;
25
+ border-radius: 4px;
26
+
27
+ &.vertical {
28
+ top: 2px;
29
+ width: 6px;
30
+
31
+ > div {
32
+ width: 100%;
33
+ }
34
+ }
35
+
36
+ &.horizontal {
37
+ left: 2px;
38
+ height: 6px;
39
+
40
+ > div {
41
+ height: 100%;
42
+ }
43
+ }
44
+ }
45
+ .tntd-scroll-bar-thumb {
46
+ position: relative;
47
+ display: block;
48
+ width: 0;
49
+ height: 0;
50
+ cursor: pointer;
51
+ background-color: #909399;
52
+ border-radius: inherit;
53
+ opacity: 0.3;
54
+ transition: 0.3s background-color;
55
+
56
+ &:hover {
57
+ opacity: 0.5;
58
+ }
59
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.renderThumbStyle = exports.GAP = exports.BAR_MAP = void 0;
7
+ function _typeof(o) {
8
+ "@babel/helpers - typeof";
9
+
10
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
11
+ return typeof o;
12
+ } : function (o) {
13
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
14
+ }, _typeof(o);
15
+ }
16
+ function _defineProperty(e, r, t) {
17
+ return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
18
+ value: t,
19
+ enumerable: !0,
20
+ configurable: !0,
21
+ writable: !0
22
+ }) : e[r] = t, e;
23
+ }
24
+ function _toPropertyKey(t) {
25
+ var i = _toPrimitive(t, "string");
26
+ return "symbol" == _typeof(i) ? i : i + "";
27
+ }
28
+ function _toPrimitive(t, r) {
29
+ if ("object" != _typeof(t) || !t) return t;
30
+ var e = t[Symbol.toPrimitive];
31
+ if (void 0 !== e) {
32
+ var i = e.call(t, r || "default");
33
+ if ("object" != _typeof(i)) return i;
34
+ throw new TypeError("@@toPrimitive must return a primitive value.");
35
+ }
36
+ return ("string" === r ? String : Number)(t);
37
+ }
38
+ var GAP = exports.GAP = 4; // top 2 + bottom 2 of bar instance
39
+ var BAR_MAP = exports.BAR_MAP = {
40
+ vertical: {
41
+ offset: 'offsetHeight',
42
+ scroll: 'scrollTop',
43
+ scrollSize: 'scrollHeight',
44
+ size: 'height',
45
+ key: 'vertical',
46
+ axis: 'Y',
47
+ client: 'clientY',
48
+ direction: 'top'
49
+ },
50
+ horizontal: {
51
+ offset: 'offsetWidth',
52
+ scroll: 'scrollLeft',
53
+ scrollSize: 'scrollWidth',
54
+ size: 'width',
55
+ key: 'horizontal',
56
+ axis: 'X',
57
+ client: 'clientX',
58
+ direction: 'left'
59
+ }
60
+ };
61
+ var renderThumbStyle = exports.renderThumbStyle = function renderThumbStyle(_ref) {
62
+ var move = _ref.move,
63
+ size = _ref.size,
64
+ bar = _ref.bar;
65
+ return _defineProperty(_defineProperty({}, bar.size, size), "transform", "translate".concat(bar.axis, "(").concat(move, "%)"));
66
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/scroll-bar/util.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAA,CAAC,mCAAmC;AAExD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAE;QACR,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,cAAc;QAC1B,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,UAAU;QACf,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,KAAK;KACjB;IACD,UAAU,EAAE;QACV,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,aAAa;QACzB,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,YAAY;QACjB,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,MAAM;KAClB;CACF,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI;IAChB,SAAS,EAAE,YAAY,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI;CAC5C,CAAC,CAAA","sourcesContent":["export const GAP = 4 // top 2 + bottom 2 of bar instance\n\nexport const BAR_MAP = {\n vertical: {\n offset: 'offsetHeight',\n scroll: 'scrollTop',\n scrollSize: 'scrollHeight',\n size: 'height',\n key: 'vertical',\n axis: 'Y',\n client: 'clientY',\n direction: 'top',\n },\n horizontal: {\n offset: 'offsetWidth',\n scroll: 'scrollLeft',\n scrollSize: 'scrollWidth',\n size: 'width',\n key: 'horizontal',\n axis: 'X',\n client: 'clientX',\n direction: 'left',\n },\n}\n\nexport const renderThumbStyle = ({ move, size, bar }) => ({\n [bar.size]: size,\n transform: `translate${bar.axis}(${move}%)`,\n})\n"]}
@@ -57,7 +57,7 @@ function Column(_ref) {
57
57
  }
58
58
  return 180;
59
59
  }, [optionsNum, optionHeight]);
60
- var dropDownVisibleRef = React.useRef(dropdownVisible);
60
+ var initDropRenderRef = React.useRef(dropdownVisible);
61
61
  var _React$useContext = React.useContext(_context["default"]),
62
62
  fieldNames = _React$useContext.fieldNames,
63
63
  changeOnSelect = _React$useContext.changeOnSelect,
@@ -68,12 +68,12 @@ function Column(_ref) {
68
68
  var hoverOpen = expandTrigger === 'hover';
69
69
  // 将drop展示赋值给ref
70
70
  React.useEffect(function () {
71
- dropDownVisibleRef.current = dropdownVisible;
71
+ initDropRenderRef.current = dropdownVisible;
72
72
  }, [dropdownVisible]);
73
73
  /** 单选情况下滚动到相应的位置 */
74
74
  React.useEffect(function () {
75
75
  var timer = null;
76
- if (ref.current && ref.current.scrollTo && !multiple && dropdownVisible && dropDownVisibleRef.current) {
76
+ if (ref.current && ref.current.scrollTo && !multiple && dropdownVisible && initDropRenderRef.current) {
77
77
  var index = options.findIndex(function (it) {
78
78
  return it[fieldNames.value] === activeValue;
79
79
  });
@@ -82,7 +82,6 @@ function Column(_ref) {
82
82
  ref.current.scrollTo((optionHeight || 36) * index);
83
83
  }, 5);
84
84
  }
85
- dropDownVisibleRef.current = false;
86
85
  }
87
86
  return function () {
88
87
  if (timer) {
@@ -159,6 +158,7 @@ function Column(_ref) {
159
158
  };
160
159
  // >>>>> Selection
161
160
  var triggerSelect = function triggerSelect() {
161
+ initDropRenderRef.current = false;
162
162
  if (isSelectable(option)) {
163
163
  onSelect(fullPath, isMergedLeaf);
164
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Column.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/OptionList/Column.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { isLeaf, toPathKey } from '../utils/commonUtil'\nimport CascaderContext from '../context'\nimport Checkbox from './Checkbox'\nimport type { DefaultOptionType, SingleValueType } from '../Cascader'\nimport { SEARCH_MARK } from '../hooks/useSearchOptions'\nimport List, { ListRef } from 'rc-virtual-list'\nimport type { RenderItem } from '../context'\n\nexport const FIX_LABEL = '__cascader_fix_label__'\n\nexport interface ColumnProps {\n prefixCls: string\n multiple?: boolean\n options: DefaultOptionType[]\n /** Current Column opened item key */\n activeValue?: React.Key\n /** The value path before current column */\n prevValuePath: React.Key[]\n onToggleOpen: (open: boolean) => void\n onSelect: (valuePath: SingleValueType, leaf: boolean) => void\n onActive: (valuePath: SingleValueType) => void\n checkedSet: Set<React.Key>\n halfCheckedSet: Set<React.Key>\n loadingKeys: React.Key[]\n isSelectable: (option: DefaultOptionType) => boolean\n renderItem?: (item: RenderItem) => React.ReactNode\n searchValue?: string\n level?: number\n dropdownVisible?: boolean\n optionHeight?: number\n}\n\nexport default function Column({\n prefixCls,\n multiple,\n options,\n activeValue,\n prevValuePath,\n onToggleOpen,\n onSelect,\n onActive,\n checkedSet,\n halfCheckedSet,\n loadingKeys,\n isSelectable,\n renderItem,\n searchValue,\n level,\n dropdownVisible,\n optionHeight = 32,\n isEmpty,\n optionsNum = 7,\n}: ColumnProps) {\n const ref = React.useRef<ListRef>(null)\n const menuPrefixCls = `${prefixCls}-menu ${prefixCls}-menu-${level}`\n const menuItemPrefixCls = `${prefixCls}-menu-item`\n\n const listHeight = React.useMemo(() => {\n if (optionsNum) {\n return Math.ceil((optionHeight || 36) * optionsNum) || 180\n }\n return 180\n }, [optionsNum, optionHeight])\n\n const dropDownVisibleRef = React.useRef(dropdownVisible)\n\n const {\n fieldNames,\n changeOnSelect,\n expandTrigger,\n expandIcon,\n loadingIcon,\n dropdownMenuColumnStyle,\n } = React.useContext(CascaderContext)\n\n const hoverOpen = expandTrigger === 'hover'\n\n // 将drop展示赋值给ref\n React.useEffect(() => {\n dropDownVisibleRef.current = dropdownVisible\n }, [dropdownVisible])\n\n /** 单选情况下滚动到相应的位置 */\n React.useEffect(() => {\n let timer = null\n\n if (\n ref.current &&\n ref.current.scrollTo &&\n !multiple &&\n dropdownVisible &&\n dropDownVisibleRef.current\n ) {\n const index = options.findIndex((it) => it[fieldNames.value] === activeValue)\n\n if (index > 0 && !isNaN(index)) {\n timer = window.setTimeout(() => {\n ref.current.scrollTo((optionHeight || 36) * index)\n }, 5)\n }\n\n dropDownVisibleRef.current = false\n }\n\n return () => {\n if (timer) {\n window.clearTimeout(timer)\n }\n timer = null\n }\n }, [multiple, activeValue, options, fieldNames, dropdownVisible, optionHeight])\n\n // ============================ Option ============================\n const optionInfoList = React.useMemo(\n () =>\n options.map((option) => {\n const { disabled } = option\n const searchOptions = option[SEARCH_MARK]\n const label = option[FIX_LABEL] ?? option[fieldNames.label]\n const value = option[fieldNames.value]\n\n const isMergedLeaf = isLeaf(option, fieldNames)\n\n // Get real value of option. Search option is different way.\n const fullPath = searchOptions\n ? // @ts-ignore\n searchOptions.map((opt) => opt[fieldNames.value])\n : [...prevValuePath, value]\n const fullPathKey = toPathKey(fullPath)\n\n const isLoading = loadingKeys.includes(fullPathKey)\n\n // >>>>> checked\n const checked = checkedSet.has(fullPathKey)\n\n // >>>>> halfChecked\n const halfChecked = halfCheckedSet.has(fullPathKey)\n\n return {\n disabled,\n label,\n value,\n isLeaf: isMergedLeaf,\n isLoading,\n checked,\n halfChecked,\n option,\n fullPath,\n fullPathKey,\n }\n }),\n [options, checkedSet, fieldNames, halfCheckedSet, loadingKeys, prevValuePath]\n )\n // ============================ Render ============================\n return (\n <ul className={menuPrefixCls} role=\"menu\" style={!isEmpty ? { height: listHeight + 'px' } : {}}>\n <List\n className={\n optionInfoList[0].fullPathKey === '__EMPTY__' || !!searchValue\n ? 'rc-virtual-list-full'\n : ''\n }\n data={optionInfoList}\n height={isEmpty ? 'auto' : listHeight}\n itemHeight={optionHeight || 36}\n itemKey=\"fullPathKey\"\n ref={ref}\n >\n {({\n disabled,\n label,\n value,\n isLeaf: isMergedLeaf,\n isLoading,\n checked,\n halfChecked,\n option,\n fullPath,\n fullPathKey,\n }) => {\n // >>>>> Open\n const triggerOpenPath = () => {\n if (!disabled && (!hoverOpen || !isMergedLeaf)) {\n onActive(fullPath)\n }\n }\n\n // >>>>> Selection\n const triggerSelect = () => {\n if (isSelectable(option)) {\n onSelect(fullPath, isMergedLeaf)\n }\n }\n\n // >>>>> Title\n let title: string\n if (typeof option.title === 'string') {\n title = option.title\n } else if (typeof label === 'string') {\n title = label\n }\n return (\n <li\n key={fullPathKey}\n className={classNames(menuItemPrefixCls, {\n [`${menuItemPrefixCls}-expand`]: !isMergedLeaf,\n [`${menuItemPrefixCls}-active`]: activeValue === value,\n [`${menuItemPrefixCls}-disabled`]: disabled,\n [`${menuItemPrefixCls}-loading`]: isLoading,\n })}\n style={dropdownMenuColumnStyle}\n role=\"menuitemcheckbox\"\n // @ts-ignore\n title={title}\n aria-checked={checked}\n data-path-key={fullPathKey}\n onClick={() => {\n triggerOpenPath()\n if (!multiple || isMergedLeaf) {\n triggerSelect()\n }\n }}\n onDoubleClick={() => {\n if (changeOnSelect) {\n onToggleOpen(false)\n }\n }}\n onMouseEnter={() => {\n if (hoverOpen) {\n triggerOpenPath()\n }\n }}\n onMouseDown={(e) => {\n // Prevent selector from blurring\n e.preventDefault()\n }}\n >\n {multiple && (\n <Checkbox\n prefixCls={`${prefixCls}-checkbox`}\n checked={checked}\n halfChecked={halfChecked}\n disabled={disabled}\n onClick={(e: React.MouseEvent<HTMLSpanElement>) => {\n e.stopPropagation()\n triggerSelect()\n }}\n />\n )}\n <div className={`${menuItemPrefixCls}-content`}>\n {optionInfoList[0].fullPathKey !== '__EMPTY__' && renderItem\n ? renderItem(option, level)\n : label}\n </div>\n {!isLoading && expandIcon && !isMergedLeaf && (\n <div className={`${menuItemPrefixCls}-expand-icon`}>{expandIcon}</div>\n )}\n {isLoading && loadingIcon && (\n <div className={`${menuItemPrefixCls}-loading-icon`}>{loadingIcon}</div>\n )}\n </li>\n )\n }}\n </List>\n </ul>\n )\n}\n"]}
1
+ {"version":3,"file":"Column.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/OptionList/Column.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { isLeaf, toPathKey } from '../utils/commonUtil'\nimport CascaderContext from '../context'\nimport Checkbox from './Checkbox'\nimport type { DefaultOptionType, SingleValueType } from '../Cascader'\nimport { SEARCH_MARK } from '../hooks/useSearchOptions'\nimport List, { ListRef } from 'rc-virtual-list'\nimport type { RenderItem } from '../context'\n\nexport const FIX_LABEL = '__cascader_fix_label__'\n\nexport interface ColumnProps {\n prefixCls: string\n multiple?: boolean\n options: DefaultOptionType[]\n /** Current Column opened item key */\n activeValue?: React.Key\n /** The value path before current column */\n prevValuePath: React.Key[]\n onToggleOpen: (open: boolean) => void\n onSelect: (valuePath: SingleValueType, leaf: boolean) => void\n onActive: (valuePath: SingleValueType) => void\n checkedSet: Set<React.Key>\n halfCheckedSet: Set<React.Key>\n loadingKeys: React.Key[]\n isSelectable: (option: DefaultOptionType) => boolean\n renderItem?: (item: RenderItem) => React.ReactNode\n searchValue?: string\n level?: number\n dropdownVisible?: boolean\n optionHeight?: number\n}\n\nexport default function Column({\n prefixCls,\n multiple,\n options,\n activeValue,\n prevValuePath,\n onToggleOpen,\n onSelect,\n onActive,\n checkedSet,\n halfCheckedSet,\n loadingKeys,\n isSelectable,\n renderItem,\n searchValue,\n level,\n dropdownVisible,\n optionHeight = 32,\n isEmpty,\n optionsNum = 7,\n}: ColumnProps) {\n const ref = React.useRef<ListRef>(null)\n const menuPrefixCls = `${prefixCls}-menu ${prefixCls}-menu-${level}`\n const menuItemPrefixCls = `${prefixCls}-menu-item`\n\n const listHeight = React.useMemo(() => {\n if (optionsNum) {\n return Math.ceil((optionHeight || 36) * optionsNum) || 180\n }\n return 180\n }, [optionsNum, optionHeight])\n\n const initDropRenderRef = React.useRef(dropdownVisible)\n\n const {\n fieldNames,\n changeOnSelect,\n expandTrigger,\n expandIcon,\n loadingIcon,\n dropdownMenuColumnStyle,\n } = React.useContext(CascaderContext)\n\n const hoverOpen = expandTrigger === 'hover'\n\n // 将drop展示赋值给ref\n React.useEffect(() => {\n initDropRenderRef.current = dropdownVisible\n }, [dropdownVisible])\n\n /** 单选情况下滚动到相应的位置 */\n React.useEffect(() => {\n let timer = null\n\n if (\n ref.current &&\n ref.current.scrollTo &&\n !multiple &&\n dropdownVisible &&\n initDropRenderRef.current\n ) {\n const index = options.findIndex((it) => it[fieldNames.value] === activeValue)\n\n if (index > 0 && !isNaN(index)) {\n timer = window.setTimeout(() => {\n ref.current.scrollTo((optionHeight || 36) * index)\n }, 5)\n }\n }\n\n return () => {\n if (timer) {\n window.clearTimeout(timer)\n }\n timer = null\n }\n }, [multiple, activeValue, options, fieldNames, dropdownVisible, optionHeight])\n\n // ============================ Option ============================\n const optionInfoList = React.useMemo(\n () =>\n options.map((option) => {\n const { disabled } = option\n const searchOptions = option[SEARCH_MARK]\n const label = option[FIX_LABEL] ?? option[fieldNames.label]\n const value = option[fieldNames.value]\n\n const isMergedLeaf = isLeaf(option, fieldNames)\n\n // Get real value of option. Search option is different way.\n const fullPath = searchOptions\n ? // @ts-ignore\n searchOptions.map((opt) => opt[fieldNames.value])\n : [...prevValuePath, value]\n const fullPathKey = toPathKey(fullPath)\n\n const isLoading = loadingKeys.includes(fullPathKey)\n\n // >>>>> checked\n const checked = checkedSet.has(fullPathKey)\n\n // >>>>> halfChecked\n const halfChecked = halfCheckedSet.has(fullPathKey)\n\n return {\n disabled,\n label,\n value,\n isLeaf: isMergedLeaf,\n isLoading,\n checked,\n halfChecked,\n option,\n fullPath,\n fullPathKey,\n }\n }),\n [options, checkedSet, fieldNames, halfCheckedSet, loadingKeys, prevValuePath]\n )\n // ============================ Render ============================\n return (\n <ul className={menuPrefixCls} role=\"menu\" style={!isEmpty ? { height: listHeight + 'px' } : {}}>\n <List\n className={\n optionInfoList[0].fullPathKey === '__EMPTY__' || !!searchValue\n ? 'rc-virtual-list-full'\n : ''\n }\n data={optionInfoList}\n height={isEmpty ? 'auto' : listHeight}\n itemHeight={optionHeight || 36}\n itemKey=\"fullPathKey\"\n ref={ref}\n >\n {({\n disabled,\n label,\n value,\n isLeaf: isMergedLeaf,\n isLoading,\n checked,\n halfChecked,\n option,\n fullPath,\n fullPathKey,\n }) => {\n // >>>>> Open\n const triggerOpenPath = () => {\n if (!disabled && (!hoverOpen || !isMergedLeaf)) {\n onActive(fullPath)\n }\n }\n\n // >>>>> Selection\n const triggerSelect = () => {\n initDropRenderRef.current = false\n if (isSelectable(option)) {\n onSelect(fullPath, isMergedLeaf)\n }\n }\n\n // >>>>> Title\n let title: string\n if (typeof option.title === 'string') {\n title = option.title\n } else if (typeof label === 'string') {\n title = label\n }\n return (\n <li\n key={fullPathKey}\n className={classNames(menuItemPrefixCls, {\n [`${menuItemPrefixCls}-expand`]: !isMergedLeaf,\n [`${menuItemPrefixCls}-active`]: activeValue === value,\n [`${menuItemPrefixCls}-disabled`]: disabled,\n [`${menuItemPrefixCls}-loading`]: isLoading,\n })}\n style={dropdownMenuColumnStyle}\n role=\"menuitemcheckbox\"\n // @ts-ignore\n title={title}\n aria-checked={checked}\n data-path-key={fullPathKey}\n onClick={() => {\n triggerOpenPath()\n if (!multiple || isMergedLeaf) {\n triggerSelect()\n }\n }}\n onDoubleClick={() => {\n if (changeOnSelect) {\n onToggleOpen(false)\n }\n }}\n onMouseEnter={() => {\n if (hoverOpen) {\n triggerOpenPath()\n }\n }}\n onMouseDown={(e) => {\n // Prevent selector from blurring\n e.preventDefault()\n }}\n >\n {multiple && (\n <Checkbox\n prefixCls={`${prefixCls}-checkbox`}\n checked={checked}\n halfChecked={halfChecked}\n disabled={disabled}\n onClick={(e: React.MouseEvent<HTMLSpanElement>) => {\n e.stopPropagation()\n triggerSelect()\n }}\n />\n )}\n <div className={`${menuItemPrefixCls}-content`}>\n {optionInfoList[0].fullPathKey !== '__EMPTY__' && renderItem\n ? renderItem(option, level)\n : label}\n </div>\n {!isLoading && expandIcon && !isMergedLeaf && (\n <div className={`${menuItemPrefixCls}-expand-icon`}>{expandIcon}</div>\n )}\n {isLoading && loadingIcon && (\n <div className={`${menuItemPrefixCls}-loading-icon`}>{loadingIcon}</div>\n )}\n </li>\n )\n }}\n </List>\n </ul>\n )\n}\n"]}
@@ -0,0 +1,19 @@
1
+ declare var _default: React.ForwardRefExoticComponent<Pick<{
2
+ [x: string]: any;
3
+ visible: any;
4
+ setVisible: any;
5
+ searchText: any;
6
+ children: any;
7
+ value: any;
8
+ regex: any;
9
+ fieldItems: any;
10
+ propItem: any;
11
+ setFieldItem: any;
12
+ onChange: any;
13
+ form: any;
14
+ locale: any;
15
+ clsPrefix: any;
16
+ }, string | number> & React.RefAttributes<any>>;
17
+ export default _default;
18
+ import React from "react";
19
+ //# sourceMappingURL=FieldPopover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldPopover.d.ts","sourceRoot":"","sources":["../../../../src/query-form/Field/Composition/FieldPopover.js"],"names":[],"mappings":""}