tntd 3.0.50 → 3.0.52
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.
- package/es/_util/hooks/useScrollLock.js +68 -0
- package/es/_util/hooks/useScrollLock.js.map +1 -0
- package/es/anchor/anchor.js +137 -0
- package/es/anchor/anchor.js.map +1 -0
- package/es/anchor/anchor.less +114 -0
- package/es/anchor/index.js +7 -9
- package/es/anchor/index.js.map +1 -1
- package/es/array-input/icon.js +32 -0
- package/es/array-input/icon.js.map +1 -0
- package/es/array-input/index.js +19 -7
- package/es/array-input/index.js.map +1 -1
- package/es/array-input/index.less +123 -1
- package/es/checkbox/checkbox-group.js +12 -0
- package/es/checkbox/checkbox-group.js.map +1 -0
- package/es/drawer/drawer.less +20 -0
- package/es/ellipsis/index.js +11 -1
- package/es/ellipsis/index.js.map +1 -1
- package/es/form/style/mixin.less +5 -1
- package/es/grid/RowContext.js +9 -0
- package/es/grid/RowContext.js.map +1 -0
- package/es/grid/col.js +100 -0
- package/es/grid/col.js.map +1 -0
- package/es/grid/hooks/useBreakpoint.js +28 -0
- package/es/grid/hooks/useBreakpoint.js.map +1 -0
- package/es/grid/row.js +183 -0
- package/es/grid/row.js.map +1 -0
- package/es/grid/style/rtl.less +69 -0
- package/es/page-loading/index.less +4 -4
- package/es/page-loading/loading.gif +0 -0
- package/es/radio/radio-group.js +12 -0
- package/es/radio/radio-group.js.map +1 -0
- package/es/table/total-shower.js +16 -0
- package/es/table/total-shower.js.map +1 -0
- package/es/tntd-form/style/mixin.less +3 -3
- package/es/tntd-form/style/status.less +2 -2
- package/es/tntd-rc-select/style/index.less +20 -2
- package/es/tooltip/tooltip.js +19 -5
- package/es/tooltip/tooltip.js.map +1 -1
- package/es/utils/simple-template.js +19 -0
- package/es/utils/simple-template.js.map +1 -0
- package/lib/_util/hooks/useScrollLock.d.ts +9 -0
- package/lib/_util/hooks/useScrollLock.d.ts.map +1 -0
- package/lib/_util/hooks/useScrollLock.js +114 -0
- package/lib/_util/hooks/useScrollLock.js.map +1 -0
- package/lib/anchor/anchor.d.ts +15 -0
- package/lib/anchor/anchor.d.ts.map +1 -0
- package/lib/anchor/anchor.js +214 -0
- package/lib/anchor/anchor.js.map +1 -0
- package/lib/anchor/anchor.less +114 -0
- package/lib/anchor/index.d.ts +3 -2
- package/lib/anchor/index.d.ts.map +1 -1
- package/lib/anchor/index.js +7 -40
- package/lib/anchor/index.js.map +1 -1
- package/lib/array-input/icon.d.ts +3 -0
- package/lib/array-input/icon.d.ts.map +1 -0
- package/lib/array-input/icon.js +36 -0
- package/lib/array-input/icon.js.map +1 -0
- package/lib/array-input/index.d.ts.map +1 -1
- package/lib/array-input/index.js +19 -7
- package/lib/array-input/index.js.map +1 -1
- package/lib/array-input/index.less +123 -1
- package/lib/checkbox/checkbox-group.d.ts +8 -0
- package/lib/checkbox/checkbox-group.d.ts.map +1 -0
- package/lib/checkbox/checkbox-group.js +16 -0
- package/lib/checkbox/checkbox-group.js.map +1 -0
- package/lib/drawer/drawer.less +20 -0
- package/lib/ellipsis/index.d.ts.map +1 -1
- package/lib/ellipsis/index.js +11 -1
- package/lib/ellipsis/index.js.map +1 -1
- package/lib/form/style/mixin.less +5 -1
- package/lib/grid/RowContext.d.ts +9 -0
- package/lib/grid/RowContext.d.ts.map +1 -0
- package/lib/grid/RowContext.js +9 -0
- package/lib/grid/RowContext.js.map +1 -0
- package/lib/grid/col.d.ts +29 -0
- package/lib/grid/col.d.ts.map +1 -0
- package/lib/grid/col.js +154 -0
- package/lib/grid/col.js.map +1 -0
- package/lib/grid/hooks/useBreakpoint.d.ts +4 -0
- package/lib/grid/hooks/useBreakpoint.d.ts.map +1 -0
- package/lib/grid/hooks/useBreakpoint.js +32 -0
- package/lib/grid/hooks/useBreakpoint.js.map +1 -0
- package/lib/grid/row.d.ts +21 -0
- package/lib/grid/row.d.ts.map +1 -0
- package/lib/grid/row.js +279 -0
- package/lib/grid/row.js.map +1 -0
- package/lib/grid/style/rtl.less +69 -0
- package/lib/notification/assets/svg-error-tip.d.ts +1 -1
- package/lib/notification/assets/svg-success-tip.d.ts +1 -1
- package/lib/page-loading/index.less +4 -4
- package/lib/page-loading/loading.gif +0 -0
- package/lib/radio/radio-group.d.ts +8 -0
- package/lib/radio/radio-group.d.ts.map +1 -0
- package/lib/radio/radio-group.js +16 -0
- package/lib/radio/radio-group.js.map +1 -0
- package/lib/segmented/index.d.ts +1 -1
- package/lib/svg-components/illustration-403.d.ts +1 -1
- package/lib/svg-components/illustration-404.d.ts +1 -1
- package/lib/svg-components/illustration-500.d.ts +1 -1
- package/lib/svg-components/illustration-empty.d.ts +1 -1
- package/lib/svg-components/illustration-failure.d.ts +1 -1
- package/lib/svg-components/illustration-no-access.d.ts +1 -1
- package/lib/svg-components/illustration-no-chart.d.ts +1 -1
- package/lib/svg-components/illustration-no-result.d.ts +1 -1
- package/lib/svg-components/illustration-offline.d.ts +1 -1
- package/lib/svg-components/illustration-success.d.ts +1 -1
- package/lib/table/assets/image-loading-background.d.ts +1 -1
- package/lib/table/assets/image-loading.d.ts +1 -1
- package/lib/table/total-shower.d.ts +9 -0
- package/lib/table/total-shower.d.ts.map +1 -0
- package/lib/table/total-shower.js +20 -0
- package/lib/table/total-shower.js.map +1 -0
- package/lib/tntd-form/style/mixin.less +3 -3
- package/lib/tntd-form/style/status.less +2 -2
- package/lib/tntd-rc-select/style/index.less +20 -2
- package/lib/tooltip/tooltip.d.ts +1 -0
- package/lib/tooltip/tooltip.d.ts.map +1 -1
- package/lib/tooltip/tooltip.js +23 -9
- package/lib/tooltip/tooltip.js.map +1 -1
- package/lib/utils/simple-template.d.ts +9 -0
- package/lib/utils/simple-template.d.ts.map +1 -0
- package/lib/utils/simple-template.js +19 -0
- package/lib/utils/simple-template.js.map +1 -0
- package/package.json +2 -2
- package/es/query-form/Field/Composition/FieldPopover.js +0 -457
- package/es/query-form/Field/Composition/FieldPopover.js.map +0 -1
- package/es/query-form/Field/Composition/FieldPopover.less +0 -35
- package/es/query-form/Field/Composition/Select.js +0 -253
- package/es/query-form/Field/Composition/Select.js.map +0 -1
- package/es/query-form/Field/Composition/SelectInput.js +0 -111
- package/es/query-form/Field/Composition/SelectInput.js.map +0 -1
- package/es/query-form/Field/Composition/ValueTag.js +0 -239
- package/es/query-form/Field/Composition/ValueTag.js.map +0 -1
- package/es/query-form/Field/Composition/index.js +0 -441
- package/es/query-form/Field/Composition/index.js.map +0 -1
- package/es/query-form/Field/Composition/index.less +0 -145
- package/es/query-form/Field/Composition/utils.js +0 -173
- package/es/query-form/Field/Composition/utils.js.map +0 -1
- package/es/query-form-v2/index.less +0 -133
- package/es/scroll-bar/Bar.js +0 -168
- package/es/scroll-bar/Bar.js.map +0 -1
- package/es/scroll-bar/Context.js +0 -17
- package/es/scroll-bar/Context.js.map +0 -1
- package/es/scroll-bar/ScrollBar.js +0 -132
- package/es/scroll-bar/ScrollBar.js.map +0 -1
- package/es/scroll-bar/Thumb.js +0 -202
- package/es/scroll-bar/Thumb.js.map +0 -1
- package/es/scroll-bar/index.js +0 -14
- package/es/scroll-bar/index.js.map +0 -1
- package/es/scroll-bar/scrollBar.less +0 -59
- package/es/scroll-bar/util.js +0 -66
- package/es/scroll-bar/util.js.map +0 -1
- package/lib/query-form/Field/Composition/FieldPopover.d.ts +0 -19
- package/lib/query-form/Field/Composition/FieldPopover.d.ts.map +0 -1
- package/lib/query-form/Field/Composition/FieldPopover.js +0 -457
- package/lib/query-form/Field/Composition/FieldPopover.js.map +0 -1
- package/lib/query-form/Field/Composition/FieldPopover.less +0 -35
- package/lib/query-form/Field/Composition/Select.d.ts +0 -4
- package/lib/query-form/Field/Composition/Select.d.ts.map +0 -1
- package/lib/query-form/Field/Composition/Select.js +0 -253
- package/lib/query-form/Field/Composition/Select.js.map +0 -1
- package/lib/query-form/Field/Composition/SelectInput.d.ts +0 -3
- package/lib/query-form/Field/Composition/SelectInput.d.ts.map +0 -1
- package/lib/query-form/Field/Composition/SelectInput.js +0 -111
- package/lib/query-form/Field/Composition/SelectInput.js.map +0 -1
- package/lib/query-form/Field/Composition/ValueTag.d.ts +0 -13
- package/lib/query-form/Field/Composition/ValueTag.d.ts.map +0 -1
- package/lib/query-form/Field/Composition/ValueTag.js +0 -239
- package/lib/query-form/Field/Composition/ValueTag.js.map +0 -1
- package/lib/query-form/Field/Composition/index.d.ts +0 -15
- package/lib/query-form/Field/Composition/index.d.ts.map +0 -1
- package/lib/query-form/Field/Composition/index.js +0 -441
- package/lib/query-form/Field/Composition/index.js.map +0 -1
- package/lib/query-form/Field/Composition/index.less +0 -145
- package/lib/query-form/Field/Composition/utils.d.ts +0 -21
- package/lib/query-form/Field/Composition/utils.d.ts.map +0 -1
- package/lib/query-form/Field/Composition/utils.js +0 -173
- package/lib/query-form/Field/Composition/utils.js.map +0 -1
- package/lib/query-form-v2/index.less +0 -133
- package/lib/scroll-bar/Bar.d.ts +0 -4
- package/lib/scroll-bar/Bar.d.ts.map +0 -1
- package/lib/scroll-bar/Bar.js +0 -168
- package/lib/scroll-bar/Bar.js.map +0 -1
- package/lib/scroll-bar/Context.d.ts +0 -7
- package/lib/scroll-bar/Context.d.ts.map +0 -1
- package/lib/scroll-bar/Context.js +0 -17
- package/lib/scroll-bar/Context.js.map +0 -1
- package/lib/scroll-bar/ScrollBar.d.ts +0 -4
- package/lib/scroll-bar/ScrollBar.d.ts.map +0 -1
- package/lib/scroll-bar/ScrollBar.js +0 -132
- package/lib/scroll-bar/ScrollBar.js.map +0 -1
- package/lib/scroll-bar/Thumb.d.ts +0 -3
- package/lib/scroll-bar/Thumb.d.ts.map +0 -1
- package/lib/scroll-bar/Thumb.js +0 -202
- package/lib/scroll-bar/Thumb.js.map +0 -1
- package/lib/scroll-bar/index.d.ts +0 -3
- package/lib/scroll-bar/index.d.ts.map +0 -1
- package/lib/scroll-bar/index.js +0 -14
- package/lib/scroll-bar/index.js.map +0 -1
- package/lib/scroll-bar/scrollBar.less +0 -59
- package/lib/scroll-bar/util.d.ts +0 -40
- package/lib/scroll-bar/util.d.ts.map +0 -1
- package/lib/scroll-bar/util.js +0 -66
- package/lib/scroll-bar/util.js.map +0 -1
package/es/grid/row.js
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _context = require("../_util/context");
|
|
10
|
+
var _useFlexGapSupport = _interopRequireDefault(require("../_util/hooks/useFlexGapSupport"));
|
|
11
|
+
var _responsiveObserve = _interopRequireWildcard(require("../_util/responsiveObserve"));
|
|
12
|
+
var _type = require("../_util/type");
|
|
13
|
+
var _RowContext = _interopRequireDefault(require("./RowContext"));
|
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
17
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
19
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
20
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
21
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
22
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); 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; } }
|
|
24
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
25
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
26
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
27
|
+
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
28
|
+
var t = {};
|
|
29
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
30
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
31
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
32
|
+
}
|
|
33
|
+
return t;
|
|
34
|
+
};
|
|
35
|
+
var RowAligns = (0, _type.tuple)('top', 'middle', 'bottom', 'stretch');
|
|
36
|
+
var RowJustify = (0, _type.tuple)('start', 'end', 'center', 'space-around', 'space-between', 'space-evenly');
|
|
37
|
+
function useMergePropByScreen(oriProp, screen) {
|
|
38
|
+
var _React$useState = React.useState(typeof oriProp === 'string' ? oriProp : ''),
|
|
39
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
40
|
+
prop = _React$useState2[0],
|
|
41
|
+
setProp = _React$useState2[1];
|
|
42
|
+
var clacMergeAlignOrJustify = function clacMergeAlignOrJustify() {
|
|
43
|
+
if (typeof oriProp === 'string') {
|
|
44
|
+
setProp(oriProp);
|
|
45
|
+
}
|
|
46
|
+
if (_typeof(oriProp) !== 'object') {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
for (var i = 0; i < _responsiveObserve.responsiveArray.length; i++) {
|
|
50
|
+
var breakpoint = _responsiveObserve.responsiveArray[i];
|
|
51
|
+
// if do not match, do nothing
|
|
52
|
+
if (!screen[breakpoint]) continue;
|
|
53
|
+
var curVal = oriProp[breakpoint];
|
|
54
|
+
if (curVal !== undefined) {
|
|
55
|
+
setProp(curVal);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
React.useEffect(function () {
|
|
61
|
+
clacMergeAlignOrJustify();
|
|
62
|
+
}, [JSON.stringify(oriProp), screen]);
|
|
63
|
+
return prop;
|
|
64
|
+
}
|
|
65
|
+
var Row = React.forwardRef(function (props, ref) {
|
|
66
|
+
var _props$prefixCls = props.prefixCls,
|
|
67
|
+
customizePrefixCls = _props$prefixCls === void 0 ? 'tnt-row' : _props$prefixCls,
|
|
68
|
+
justify = props.justify,
|
|
69
|
+
align = props.align,
|
|
70
|
+
className = props.className,
|
|
71
|
+
style = props.style,
|
|
72
|
+
children = props.children,
|
|
73
|
+
_props$gutter = props.gutter,
|
|
74
|
+
gutter = _props$gutter === void 0 ? 0 : _props$gutter,
|
|
75
|
+
wrap = props.wrap,
|
|
76
|
+
others = __rest(props, ["prefixCls", "justify", "align", "className", "style", "children", "gutter", "wrap"]);
|
|
77
|
+
var _React$useContext = React.useContext(_context.ConfigContext),
|
|
78
|
+
getPrefixCls = _React$useContext.getPrefixCls,
|
|
79
|
+
direction = _React$useContext.direction;
|
|
80
|
+
var _React$useState3 = React.useState({
|
|
81
|
+
xs: true,
|
|
82
|
+
sm: true,
|
|
83
|
+
md: true,
|
|
84
|
+
lg: true,
|
|
85
|
+
xl: true,
|
|
86
|
+
xxl: true
|
|
87
|
+
}),
|
|
88
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
89
|
+
screens = _React$useState4[0],
|
|
90
|
+
setScreens = _React$useState4[1];
|
|
91
|
+
// to save screens info when responsiveObserve callback had been call
|
|
92
|
+
var _React$useState5 = React.useState({
|
|
93
|
+
xs: false,
|
|
94
|
+
sm: false,
|
|
95
|
+
md: false,
|
|
96
|
+
lg: false,
|
|
97
|
+
xl: false,
|
|
98
|
+
xxl: false
|
|
99
|
+
}),
|
|
100
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
101
|
+
curScreens = _React$useState6[0],
|
|
102
|
+
setCurScreens = _React$useState6[1];
|
|
103
|
+
// ================================== calc reponsive data ==================================
|
|
104
|
+
var mergeAlign = useMergePropByScreen(align, curScreens);
|
|
105
|
+
var mergeJustify = useMergePropByScreen(justify, curScreens);
|
|
106
|
+
var supportFlexGap = (0, _useFlexGapSupport["default"])();
|
|
107
|
+
var gutterRef = React.useRef(gutter);
|
|
108
|
+
// ================================== Effect ==================================
|
|
109
|
+
React.useEffect(function () {
|
|
110
|
+
var token = _responsiveObserve["default"].subscribe(function (screen) {
|
|
111
|
+
setCurScreens(screen);
|
|
112
|
+
var currentGutter = gutterRef.current || 0;
|
|
113
|
+
if (!Array.isArray(currentGutter) && _typeof(currentGutter) === 'object' || Array.isArray(currentGutter) && (_typeof(currentGutter[0]) === 'object' || _typeof(currentGutter[1]) === 'object')) {
|
|
114
|
+
setScreens(screen);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
return function () {
|
|
118
|
+
return _responsiveObserve["default"].unsubscribe(token);
|
|
119
|
+
};
|
|
120
|
+
}, []);
|
|
121
|
+
// ================================== Render ==================================
|
|
122
|
+
var getGutter = function getGutter() {
|
|
123
|
+
var results = [undefined, undefined];
|
|
124
|
+
var normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined];
|
|
125
|
+
normalizedGutter.forEach(function (g, index) {
|
|
126
|
+
if (_typeof(g) === 'object') {
|
|
127
|
+
for (var i = 0; i < _responsiveObserve.responsiveArray.length; i++) {
|
|
128
|
+
var breakpoint = _responsiveObserve.responsiveArray[i];
|
|
129
|
+
if (screens[breakpoint] && g[breakpoint] !== undefined) {
|
|
130
|
+
results[index] = g[breakpoint];
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
} else {
|
|
135
|
+
results[index] = g;
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
return results;
|
|
139
|
+
};
|
|
140
|
+
var prefixCls = getPrefixCls('row', customizePrefixCls);
|
|
141
|
+
var gutters = getGutter();
|
|
142
|
+
var classes = (0, _classnames["default"])(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(prefixCls, "-no-wrap"), wrap === false), "".concat(prefixCls, "-").concat(mergeJustify), mergeJustify), "".concat(prefixCls, "-").concat(mergeAlign), mergeAlign), "".concat(prefixCls, "-rtl"), direction === 'rtl'), className);
|
|
143
|
+
// Add gutter related style
|
|
144
|
+
var rowStyle = {};
|
|
145
|
+
var horizontalGutter = gutters[0] != null && gutters[0] > 0 ? gutters[0] / -2 : undefined;
|
|
146
|
+
var verticalGutter = gutters[1] != null && gutters[1] > 0 ? gutters[1] / -2 : undefined;
|
|
147
|
+
if (horizontalGutter) {
|
|
148
|
+
rowStyle.marginLeft = horizontalGutter;
|
|
149
|
+
rowStyle.marginRight = horizontalGutter;
|
|
150
|
+
}
|
|
151
|
+
if (supportFlexGap) {
|
|
152
|
+
// Set gap direct if flex gap support
|
|
153
|
+
;
|
|
154
|
+
var _gutters = _slicedToArray(gutters, 2);
|
|
155
|
+
rowStyle.rowGap = _gutters[1];
|
|
156
|
+
} else if (verticalGutter) {
|
|
157
|
+
rowStyle.marginTop = verticalGutter;
|
|
158
|
+
rowStyle.marginBottom = verticalGutter;
|
|
159
|
+
}
|
|
160
|
+
// "gutters" is a new array in each rendering phase, it'll make 'React.useMemo' effectless.
|
|
161
|
+
// So we deconstruct "gutters" variable here.
|
|
162
|
+
var _gutters2 = _slicedToArray(gutters, 2),
|
|
163
|
+
gutterH = _gutters2[0],
|
|
164
|
+
gutterV = _gutters2[1];
|
|
165
|
+
var rowContext = React.useMemo(function () {
|
|
166
|
+
return {
|
|
167
|
+
gutter: [gutterH, gutterV],
|
|
168
|
+
wrap: wrap,
|
|
169
|
+
supportFlexGap: supportFlexGap
|
|
170
|
+
};
|
|
171
|
+
}, [gutterH, gutterV, wrap, supportFlexGap]);
|
|
172
|
+
return React.createElement(_RowContext["default"].Provider, {
|
|
173
|
+
value: rowContext
|
|
174
|
+
}, React.createElement("div", Object.assign({}, others, {
|
|
175
|
+
className: classes,
|
|
176
|
+
style: Object.assign(Object.assign({}, rowStyle), style),
|
|
177
|
+
ref: ref
|
|
178
|
+
}), children));
|
|
179
|
+
});
|
|
180
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
181
|
+
Row.displayName = 'Row';
|
|
182
|
+
}
|
|
183
|
+
var _default = exports["default"] = Row;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row.js","sourceRoot":"","sources":["../../src/grid/row.tsx"],"names":[],"mappings":"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","sourcesContent":["import classNames from 'classnames'\nimport * as React from 'react'\nimport { ConfigContext } from '../_util/context'\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport'\nimport type { Breakpoint, ScreenMap } from '../_util/responsiveObserve'\nimport ResponsiveObserve, { responsiveArray } from '../_util/responsiveObserve'\nimport { tuple } from '../_util/type'\nimport RowContext from './RowContext'\n\nconst RowAligns = tuple('top', 'middle', 'bottom', 'stretch')\nconst RowJustify = tuple('start', 'end', 'center', 'space-around', 'space-between', 'space-evenly')\n\ntype Responsive = 'xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs'\ntype ResponsiveLike<T> = {\n [key in Responsive]?: T\n}\n\ntype Gap = number | undefined\nexport type Gutter = number | undefined | Partial<Record<Breakpoint, number>>\n\ntype ResponsiveAligns = ResponsiveLike<typeof RowAligns[number]>\ntype ResponsiveJustify = ResponsiveLike<typeof RowJustify[number]>\nexport interface RowProps extends React.HTMLAttributes<HTMLDivElement> {\n gutter?: Gutter | [Gutter, Gutter]\n align?: typeof RowAligns[number] | ResponsiveAligns\n justify?: typeof RowJustify[number] | ResponsiveJustify\n prefixCls?: string\n wrap?: boolean\n}\n\nfunction useMergePropByScreen(oriProp: RowProps['align'] | RowProps['justify'], screen: ScreenMap) {\n const [prop, setProp] = React.useState(typeof oriProp === 'string' ? oriProp : '')\n\n const clacMergeAlignOrJustify = () => {\n if (typeof oriProp === 'string') {\n setProp(oriProp)\n }\n if (typeof oriProp !== 'object') {\n return\n }\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint: Breakpoint = responsiveArray[i]\n // if do not match, do nothing\n if (!screen[breakpoint]) continue\n const curVal = oriProp[breakpoint]\n if (curVal !== undefined) {\n setProp(curVal)\n return\n }\n }\n }\n\n React.useEffect(() => {\n clacMergeAlignOrJustify()\n }, [JSON.stringify(oriProp), screen])\n\n return prop\n}\n\nconst Row = React.forwardRef<HTMLDivElement, RowProps>((props, ref) => {\n const {\n prefixCls: customizePrefixCls = 'tnt-row',\n justify,\n align,\n className,\n style,\n children,\n gutter = 0,\n wrap,\n ...others\n } = props\n\n const { getPrefixCls, direction } = React.useContext(ConfigContext)\n\n const [screens, setScreens] = React.useState<ScreenMap>({\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n xxl: true,\n })\n // to save screens info when responsiveObserve callback had been call\n const [curScreens, setCurScreens] = React.useState<ScreenMap>({\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false,\n })\n\n // ================================== calc reponsive data ==================================\n const mergeAlign = useMergePropByScreen(align, curScreens)\n\n const mergeJustify = useMergePropByScreen(justify, curScreens)\n\n const supportFlexGap = useFlexGapSupport()\n\n const gutterRef = React.useRef<Gutter | [Gutter, Gutter]>(gutter)\n\n // ================================== Effect ==================================\n React.useEffect(() => {\n const token = ResponsiveObserve.subscribe((screen) => {\n setCurScreens(screen)\n const currentGutter = gutterRef.current || 0\n if (\n (!Array.isArray(currentGutter) && typeof currentGutter === 'object') ||\n (Array.isArray(currentGutter) &&\n (typeof currentGutter[0] === 'object' || typeof currentGutter[1] === 'object'))\n ) {\n setScreens(screen)\n }\n })\n return () => ResponsiveObserve.unsubscribe(token)\n }, [])\n\n // ================================== Render ==================================\n const getGutter = (): [Gap, Gap] => {\n const results: [Gap, Gap] = [undefined, undefined]\n const normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined]\n normalizedGutter.forEach((g, index) => {\n if (typeof g === 'object') {\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint: Breakpoint = responsiveArray[i]\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint] as number\n break\n }\n }\n } else {\n results[index] = g\n }\n })\n return results\n }\n\n const prefixCls = getPrefixCls('row', customizePrefixCls)\n const gutters = getGutter()\n const classes = classNames(\n prefixCls,\n {\n [`${prefixCls}-no-wrap`]: wrap === false,\n [`${prefixCls}-${mergeJustify}`]: mergeJustify,\n [`${prefixCls}-${mergeAlign}`]: mergeAlign,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n },\n className\n )\n\n // Add gutter related style\n const rowStyle: React.CSSProperties = {}\n const horizontalGutter = gutters[0] != null && gutters[0] > 0 ? gutters[0] / -2 : undefined\n const verticalGutter = gutters[1] != null && gutters[1] > 0 ? gutters[1] / -2 : undefined\n\n if (horizontalGutter) {\n rowStyle.marginLeft = horizontalGutter\n rowStyle.marginRight = horizontalGutter\n }\n\n if (supportFlexGap) {\n // Set gap direct if flex gap support\n ;[, rowStyle.rowGap] = gutters\n } else if (verticalGutter) {\n rowStyle.marginTop = verticalGutter\n rowStyle.marginBottom = verticalGutter\n }\n\n // \"gutters\" is a new array in each rendering phase, it'll make 'React.useMemo' effectless.\n // So we deconstruct \"gutters\" variable here.\n const [gutterH, gutterV] = gutters\n const rowContext = React.useMemo(\n () => ({ gutter: [gutterH, gutterV] as [number, number], wrap, supportFlexGap }),\n [gutterH, gutterV, wrap, supportFlexGap]\n )\n\n return (\n <RowContext.Provider value={rowContext}>\n <div {...others} className={classes} style={{ ...rowStyle, ...style }} ref={ref}>\n {children}\n </div>\n </RowContext.Provider>\n )\n})\n\nif (process.env.NODE_ENV !== 'production') {\n Row.displayName = 'Row'\n}\n\nexport default Row\n"]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// @import '../../style/themes/index';
|
|
2
|
+
// @import '../../style/mixins/index';
|
|
3
|
+
@import './mixin';
|
|
4
|
+
|
|
5
|
+
.@{row-prefix-cls} {
|
|
6
|
+
&-rtl {
|
|
7
|
+
direction: rtl;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// mixin
|
|
12
|
+
.loop-grid-columns(@index, @class) when (@index > 0) {
|
|
13
|
+
.@{col-prefix-cls}@{class}-push-@{index} {
|
|
14
|
+
// reset property in RTL direction
|
|
15
|
+
&.@{col-prefix-cls}-rtl {
|
|
16
|
+
right: percentage((@index / @grid-columns));
|
|
17
|
+
left: auto;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.@{col-prefix-cls}@{class}-pull-@{index} {
|
|
22
|
+
// reset property in RTL direction
|
|
23
|
+
&.@{col-prefix-cls}-rtl {
|
|
24
|
+
right: auto;
|
|
25
|
+
left: percentage((@index / @grid-columns));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.@{col-prefix-cls}@{class}-offset-@{index} {
|
|
30
|
+
// reset property in RTL direction
|
|
31
|
+
&.@{col-prefix-cls}-rtl {
|
|
32
|
+
margin-right: percentage((@index / @grid-columns));
|
|
33
|
+
margin-left: 0;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.loop-grid-columns(@index, @class) when (@index = 0) {
|
|
39
|
+
.@{col-prefix-cls}-push-@{index} {
|
|
40
|
+
// reset property in RTL direction
|
|
41
|
+
&.@{col-prefix-cls}-rtl {
|
|
42
|
+
right: auto;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.@{col-prefix-cls}-pull-@{index} {
|
|
47
|
+
&.@{col-prefix-cls}-rtl {
|
|
48
|
+
left: auto;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.@{col-prefix-cls}@{class}-push-@{index} {
|
|
53
|
+
&.@{col-prefix-cls}-rtl {
|
|
54
|
+
right: auto;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.@{col-prefix-cls}@{class}-pull-@{index} {
|
|
59
|
+
&.@{col-prefix-cls}-rtl {
|
|
60
|
+
left: auto;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.@{col-prefix-cls}@{class}-offset-@{index} {
|
|
65
|
+
&.@{col-prefix-cls}-rtl {
|
|
66
|
+
margin-right: 0;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
position: absolute;
|
|
11
11
|
top: 45%;
|
|
12
12
|
left: 50%;
|
|
13
|
-
width:
|
|
14
|
-
height:
|
|
13
|
+
width: 51px;
|
|
14
|
+
height: 64px;
|
|
15
15
|
background-size: 100% 100%;
|
|
16
16
|
transform: translate(-50%, -50%);
|
|
17
17
|
background-repeat: no-repeat;
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
span {
|
|
22
22
|
position: absolute;
|
|
23
23
|
left: 50%;
|
|
24
|
-
bottom:
|
|
24
|
+
bottom: -17px;
|
|
25
25
|
transform: translate(-50%, 0);
|
|
26
26
|
width: 100%;
|
|
27
27
|
font-size: 12px;
|
|
@@ -35,4 +35,4 @@
|
|
|
35
35
|
color: #fff;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
}
|
|
38
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
require("react");
|
|
8
|
+
var _radio = _interopRequireDefault(require("antd/es/radio"));
|
|
9
|
+
var _connect = require("../connect");
|
|
10
|
+
var _previewText = _interopRequireDefault(require("../preview-text"));
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
var _default = exports["default"] = (0, _connect.connectReadonlyComponent)(_radio["default"].Group, _previewText["default"].Select);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../src/radio/radio-group.tsx"],"names":[],"mappings":"AAAA,OAAkB,OAAO,CAAA;AAEzB,OAAO,KAAK,MAAM,eAAe,CAAA;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,WAAW,MAAM,iBAAiB,CAAA;AAMzC,eAAe,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA","sourcesContent":["import React from 'react'\nimport type { RadioGroupProps as AntdRadioGroupProps } from 'antd/es/radio'\nimport Radio from 'antd/es/radio'\nimport { connectReadonlyComponent } from '../connect'\nimport PreviewText from '../preview-text'\n\nexport type RadioGroupProps = AntdRadioGroupProps & {\n readonly?: boolean\n}\n\nexport default connectReadonlyComponent(Radio.Group, PreviewText.Select)\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TotalShower = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _utils = require("../utils");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
var TotalShower = exports.TotalShower = function TotalShower(_ref) {
|
|
11
|
+
var total = _ref.total,
|
|
12
|
+
locale = _ref.locale;
|
|
13
|
+
return _react["default"].createElement(_react["default"].Fragment, null, (0, _utils.simpleTemplate)(locale.total, {
|
|
14
|
+
total: total
|
|
15
|
+
}));
|
|
16
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"total-shower.js","sourceRoot":"","sources":["../../src/table/total-shower.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,KAAK,EACL,MAAM,GAMP,EAAE,EAAE;IACH,OAAO,0CAAG,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAI,CAAA;AACvD,CAAC,CAAA","sourcesContent":["import React from 'react'\n\nimport type { TableProps as AntdTableProps } from 'antd/es/table'\nimport { simpleTemplate } from '../utils'\n\nexport const TotalShower = ({\n total,\n locale,\n}: {\n total: number\n locale: AntdTableProps<unknown>['locale'] & {\n total?: string\n }\n}) => {\n return <>{simpleTemplate(locale.total, { total })}</>\n}\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// @import '../../input/style/mixin';
|
|
2
2
|
|
|
3
|
-
.form-control-validation(
|
|
4
|
-
@text-color: @input-color;
|
|
3
|
+
.form-control-validation(@text-color: @input-color;
|
|
5
4
|
@border-color: @input-border-color;
|
|
6
5
|
@background-color: @input-bg;
|
|
7
6
|
@hoverBorderColor: @primary-color-hover;
|
|
8
7
|
@outlineColor: @primary-color-outline;
|
|
8
|
+
|
|
9
9
|
) {
|
|
10
10
|
.@{ant-prefix}-form-item-split {
|
|
11
11
|
color: @text-color;
|
|
@@ -87,4 +87,4 @@
|
|
|
87
87
|
line-height: @line-height-base;
|
|
88
88
|
list-style: none;
|
|
89
89
|
font-feature-settings: @font-feature-settings-base;
|
|
90
|
-
}
|
|
90
|
+
}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
&-has-feedback {
|
|
28
|
+
|
|
28
29
|
// ======================== Switch =========================
|
|
29
30
|
.@{ant-prefix}-switch {
|
|
30
31
|
margin: 2px 0 4px;
|
|
@@ -41,5 +42,4 @@
|
|
|
41
42
|
.form-control-validation(@error-color; @error-color; @form-error-input-bg; @error-color-hover; @error-color-outline);
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
|
-
}
|
|
45
|
-
|
|
45
|
+
}
|
|
@@ -1338,7 +1338,7 @@
|
|
|
1338
1338
|
.tntd-rc-select:not(.tntd-rc-select-customize-input) .tntd-rc-select-selector {
|
|
1339
1339
|
position: relative;
|
|
1340
1340
|
background-color: #fff;
|
|
1341
|
-
border: 1px solid
|
|
1341
|
+
border: 1px solid #e1e6ee;
|
|
1342
1342
|
border-radius: 2px;
|
|
1343
1343
|
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
1344
1344
|
}
|
|
@@ -1446,7 +1446,7 @@
|
|
|
1446
1446
|
align-items: center;
|
|
1447
1447
|
height: 12px;
|
|
1448
1448
|
margin-top: -6px;
|
|
1449
|
-
color: rgba(
|
|
1449
|
+
color: rgba(23, 35, 61, 0.3);
|
|
1450
1450
|
font-size: 12px;
|
|
1451
1451
|
line-height: 1;
|
|
1452
1452
|
text-align: center;
|
|
@@ -1775,3 +1775,21 @@
|
|
|
1775
1775
|
}
|
|
1776
1776
|
}
|
|
1777
1777
|
}
|
|
1778
|
+
|
|
1779
|
+
.has-error{
|
|
1780
|
+
.tntd-rc-select:not(.tntd-rc-select-customize-input) .tntd-rc-select-selector {
|
|
1781
|
+
border-color: @red-6;
|
|
1782
|
+
box-shadow: none ;
|
|
1783
|
+
}
|
|
1784
|
+
|
|
1785
|
+
.tntd-rc-select-focused:not(.tntd-rc-select-disabled).tntd-rc-select:not(
|
|
1786
|
+
.tntd-rc-select-customize-input
|
|
1787
|
+
) .tntd-rc-select-selector {
|
|
1788
|
+
border-color: @red-6;
|
|
1789
|
+
box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2);
|
|
1790
|
+
}
|
|
1791
|
+
}
|
|
1792
|
+
|
|
1793
|
+
.tntd-rc-select-arrow{
|
|
1794
|
+
color: #17233d;
|
|
1795
|
+
}
|
package/es/tooltip/tooltip.js
CHANGED
|
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
var _exportNames = {};
|
|
8
8
|
exports["default"] = void 0;
|
|
9
|
-
var _react =
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _configProvider = require("../config-provider");
|
|
11
|
+
var _useScrollLock = _interopRequireDefault(require("../_util/hooks/useScrollLock"));
|
|
11
12
|
var _tooltip = _interopRequireWildcard(require("antd/es/tooltip"));
|
|
12
13
|
Object.keys(_tooltip).forEach(function (key) {
|
|
13
14
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -21,9 +22,9 @@ Object.keys(_tooltip).forEach(function (key) {
|
|
|
21
22
|
});
|
|
22
23
|
});
|
|
23
24
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
25
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
24
26
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
25
27
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
26
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
27
28
|
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
28
29
|
var t = {};
|
|
29
30
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
@@ -41,13 +42,26 @@ var Tooltip = function Tooltip(props) {
|
|
|
41
42
|
theme = _props$theme === void 0 ? '' : _props$theme,
|
|
42
43
|
_props$hiddenArrow = props.hiddenArrow,
|
|
43
44
|
hiddenArrow = _props$hiddenArrow === void 0 ? false : _props$hiddenArrow,
|
|
44
|
-
|
|
45
|
+
enableScrollObserver = props.enableScrollObserver,
|
|
46
|
+
restProps = __rest(props, ["overlayClassName", "theme", "hiddenArrow", "enableScrollObserver"]);
|
|
47
|
+
var isScrolling = (0, _useScrollLock["default"])({
|
|
48
|
+
enableScrollObserver: enableScrollObserver
|
|
49
|
+
});
|
|
50
|
+
var MOUSE_ENTER_DELAY_WHILE_SCROLLING = 9999;
|
|
51
|
+
var DEFAULT_MOUSE_ENTER_DELAY = 0.1;
|
|
52
|
+
var visibleInfo = (0, _react.useMemo)(function () {
|
|
53
|
+
return isScrolling ? {
|
|
54
|
+
visible: false
|
|
55
|
+
} : {};
|
|
56
|
+
}, [isScrolling]);
|
|
45
57
|
return _react["default"].createElement(_configProvider.ConfigConsumer, null, function (_ref) {
|
|
46
58
|
var getPrefixCls = _ref.getPrefixCls;
|
|
47
59
|
var prefixCls = getPrefixCls('tooltip');
|
|
48
60
|
return _react["default"].createElement(_tooltip["default"], Object.assign({
|
|
49
|
-
overlayClassName: (0, _classnames["default"])(prefixCls, 'tnt-tooltip', themeMap(prefixCls, theme), hiddenArrow ? prefixCls
|
|
50
|
-
}, restProps
|
|
61
|
+
overlayClassName: (0, _classnames["default"])(prefixCls, 'tnt-tooltip', themeMap(prefixCls, theme), hiddenArrow ? "".concat(prefixCls, "-arrow-hidden") : '', overlayClassName)
|
|
62
|
+
}, restProps, {
|
|
63
|
+
mouseEnterDelay: isScrolling ? MOUSE_ENTER_DELAY_WHILE_SCROLLING : restProps.mouseEnterDelay || DEFAULT_MOUSE_ENTER_DELAY
|
|
64
|
+
}, visibleInfo));
|
|
51
65
|
});
|
|
52
66
|
};
|
|
53
67
|
var _default = exports["default"] = Tooltip;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/tooltip/tooltip.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/tooltip/tooltip.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,aAAa,MAAM,8BAA8B,CAAA;AACxD,OAAO,WAAW,MAAM,iBAAiB,CAAA;AACzC,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC,cAAc,iBAAiB,CAAA;AAC/B,MAAM,QAAQ,GAAG,CAAC,SAAiB,EAAE,UAAkB,EAAE,EAAE;IACzD,OAAO,GAAG,SAAS,IAAI,UAAU,EAAE,CAAA;AACrC,CAAC,CAAA;AAED,MAAM,OAAO,GAET,CAAC,KAAK,EAAE,EAAE;IACZ,MAAM,EACJ,gBAAgB,EAChB,KAAK,GAAG,EAAE,EACV,WAAW,GAAG,KAAK,EACnB,oBAAoB,KAElB,KAAK,EADJ,SAAS,UACV,KAAK,EANH,oEAML,CAAQ,CAAA;IAET,MAAM,WAAW,GAAG,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAA;IAE3D,MAAM,iCAAiC,GAAG,IAAI,CAAA;IAC9C,MAAM,yBAAyB,GAAG,GAAG,CAAA;IAErC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9C,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,OAAO,CACL,oBAAC,cAAc,QACZ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;QACpB,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;QAEzC,OAAO,CACL,oBAAC,WAAW,kBACV,gBAAgB,EAAE,UAAU,CAC1B,SAAS,EACT,aAAa,EACb,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,EAC1B,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,EAC9C,gBAAgB,CACjB,IACG,SAAS,IACb,eAAe,EACb,WAAW;gBACT,CAAC,CAAC,iCAAiC;gBACnC,CAAC,CAAC,SAAS,CAAC,eAAe,IAAI,yBAAyB,IAExD,WAAW,EACf,CACH,CAAA;IACH,CAAC,CACc,CAClB,CAAA;AACH,CAAC,CAAA;AAED,eAAe,OAAO,CAAA","sourcesContent":["import React, { useMemo } from 'react'\nimport type { TooltipProps } from 'antd/es/tooltip'\nimport { ConfigConsumer } from '../config-provider'\nimport useScrollLock from '../_util/hooks/useScrollLock'\nimport AntdTooltip from 'antd/es/tooltip'\nimport classNames from 'classnames'\n\nexport * from 'antd/es/tooltip'\nconst themeMap = (prefixCls: string, themeColor: string) => {\n return `${prefixCls}-${themeColor}`\n}\n\nconst Tooltip: React.FC<\n TooltipProps & { theme?: string; hiddenArrow?: boolean; enableScrollObserver?: boolean }\n> = (props) => {\n const {\n overlayClassName,\n theme = '',\n hiddenArrow = false,\n enableScrollObserver,\n ...restProps\n } = props\n\n const isScrolling = useScrollLock({ enableScrollObserver })\n\n const MOUSE_ENTER_DELAY_WHILE_SCROLLING = 9999\n const DEFAULT_MOUSE_ENTER_DELAY = 0.1\n\n const visibleInfo = useMemo(() => {\n return isScrolling ? { visible: false } : {}\n }, [isScrolling])\n\n return (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n const prefixCls = getPrefixCls('tooltip')\n\n return (\n <AntdTooltip\n overlayClassName={classNames(\n prefixCls,\n 'tnt-tooltip',\n themeMap(prefixCls, theme),\n hiddenArrow ? `${prefixCls}-arrow-hidden` : '',\n overlayClassName\n )}\n {...restProps}\n mouseEnterDelay={\n isScrolling\n ? MOUSE_ENTER_DELAY_WHILE_SCROLLING\n : restProps.mouseEnterDelay || DEFAULT_MOUSE_ENTER_DELAY\n } // 滚动期间延迟触发\n {...visibleInfo} // 滚动时隐藏 tooltip\n />\n )\n }}\n </ConfigConsumer>\n )\n}\n\nexport default Tooltip\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.simpleTemplate = simpleTemplate;
|
|
7
|
+
/**
|
|
8
|
+
* 简单的模板替换
|
|
9
|
+
*
|
|
10
|
+
* @param template
|
|
11
|
+
* @param data
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
function simpleTemplate(template) {
|
|
15
|
+
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
16
|
+
return template === null || template === void 0 ? void 0 : template.replace(/\${(.*?)}/g, function (match, key) {
|
|
17
|
+
return data[key.trim()].toString();
|
|
18
|
+
});
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-template.js","sourceRoot":"","sources":["../../src/utils/simple-template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAiB,EAAE,OAAwC,EAAE;IAC1F,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;AACrF,CAAC","sourcesContent":["/**\n * 简单的模板替换\n *\n * @param template\n * @param data\n * @returns\n */\nexport function simpleTemplate(template?: string, data: Record<string, string | number> = {}) {\n return template?.replace(/\\${(.*?)}/g, (match, key) => data[key.trim()].toString())\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface ScrollControlConfig {
|
|
2
|
+
debounceTime?: number;
|
|
3
|
+
throttleTime?: number;
|
|
4
|
+
scrollContainer?: HTMLElement | Window | null;
|
|
5
|
+
enableScrollObserver?: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const _default: (config?: ScrollControlConfig | undefined) => boolean;
|
|
8
|
+
export default _default;
|
|
9
|
+
//# sourceMappingURL=useScrollLock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollLock.d.ts","sourceRoot":"","sources":["../../../src/_util/hooks/useScrollLock.ts"],"names":[],"mappings":"AAIA,UAAU,mBAAmB;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAA;IAC7C,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;;AAGD,wBA8CC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
|
|
8
|
+
var _throttle2 = _interopRequireDefault(require("lodash/throttle"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
function _interopRequireDefault(e) {
|
|
11
|
+
return e && e.__esModule ? e : {
|
|
12
|
+
"default": e
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function _slicedToArray(r, e) {
|
|
16
|
+
return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
|
|
17
|
+
}
|
|
18
|
+
function _nonIterableRest() {
|
|
19
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
20
|
+
}
|
|
21
|
+
function _unsupportedIterableToArray(r, a) {
|
|
22
|
+
if (r) {
|
|
23
|
+
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
24
|
+
var t = {}.toString.call(r).slice(8, -1);
|
|
25
|
+
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;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function _arrayLikeToArray(r, a) {
|
|
29
|
+
(null == a || a > r.length) && (a = r.length);
|
|
30
|
+
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
31
|
+
return n;
|
|
32
|
+
}
|
|
33
|
+
function _iterableToArrayLimit(r, l) {
|
|
34
|
+
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
35
|
+
if (null != t) {
|
|
36
|
+
var e,
|
|
37
|
+
n,
|
|
38
|
+
i,
|
|
39
|
+
u,
|
|
40
|
+
a = [],
|
|
41
|
+
f = !0,
|
|
42
|
+
o = !1;
|
|
43
|
+
try {
|
|
44
|
+
if (i = (t = t.call(r)).next, 0 === l) {
|
|
45
|
+
if (Object(t) !== t) return;
|
|
46
|
+
f = !1;
|
|
47
|
+
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
|
48
|
+
} catch (r) {
|
|
49
|
+
o = !0, n = r;
|
|
50
|
+
} finally {
|
|
51
|
+
try {
|
|
52
|
+
if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
|
|
53
|
+
} finally {
|
|
54
|
+
if (o) throw n;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return a;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function _arrayWithHoles(r) {
|
|
61
|
+
if (Array.isArray(r)) return r;
|
|
62
|
+
}
|
|
63
|
+
// ==================== 优化版 Hook ====================
|
|
64
|
+
var _default = exports["default"] = function _default(config) {
|
|
65
|
+
var _ref = config || {},
|
|
66
|
+
_ref$enableScrollObse = _ref.enableScrollObserver,
|
|
67
|
+
enableScrollObserver = _ref$enableScrollObse === void 0 ? true : _ref$enableScrollObse,
|
|
68
|
+
_ref$debounceTime = _ref.debounceTime,
|
|
69
|
+
debounceTime = _ref$debounceTime === void 0 ? 100 : _ref$debounceTime,
|
|
70
|
+
_ref$throttleTime = _ref.throttleTime,
|
|
71
|
+
throttleTime = _ref$throttleTime === void 0 ? 50 : _ref$throttleTime,
|
|
72
|
+
_ref$scrollContainer = _ref.scrollContainer,
|
|
73
|
+
scrollContainer = _ref$scrollContainer === void 0 ? window : _ref$scrollContainer;
|
|
74
|
+
var _useState = (0, _react.useState)(false),
|
|
75
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
76
|
+
isScrolling = _useState2[0],
|
|
77
|
+
setIsScrolling = _useState2[1];
|
|
78
|
+
var throttledHandlerRef = (0, _react.useRef)();
|
|
79
|
+
var debouncedEndRef = (0, _react.useRef)();
|
|
80
|
+
// ==================== 核心逻辑 ====================
|
|
81
|
+
var handleScroll = (0, _react.useCallback)(function () {
|
|
82
|
+
var _a;
|
|
83
|
+
// 标记开始滚动
|
|
84
|
+
setIsScrolling(true);
|
|
85
|
+
// 启动防抖结束检测
|
|
86
|
+
(_a = debouncedEndRef.current) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
87
|
+
debouncedEndRef.current = (0, _debounce2["default"])(function () {
|
|
88
|
+
return setIsScrolling(false);
|
|
89
|
+
}, debounceTime);
|
|
90
|
+
debouncedEndRef.current();
|
|
91
|
+
}, [debounceTime]);
|
|
92
|
+
// ==================== 事件监听 ====================
|
|
93
|
+
(0, _react.useEffect)(function () {
|
|
94
|
+
var container = scrollContainer || window;
|
|
95
|
+
if (!container || !enableScrollObserver) return;
|
|
96
|
+
// 使用 lodash 节流包装处理函数
|
|
97
|
+
throttledHandlerRef.current = (0, _throttle2["default"])(handleScroll, throttleTime, {
|
|
98
|
+
leading: true,
|
|
99
|
+
trailing: true
|
|
100
|
+
});
|
|
101
|
+
var options = {
|
|
102
|
+
passive: true
|
|
103
|
+
};
|
|
104
|
+
container.addEventListener('scroll', throttledHandlerRef.current, options);
|
|
105
|
+
return function () {
|
|
106
|
+
var _a, _b;
|
|
107
|
+
// 清理事件和定时器
|
|
108
|
+
container.removeEventListener('scroll', throttledHandlerRef.current, options);
|
|
109
|
+
(_a = throttledHandlerRef.current) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
110
|
+
(_b = debouncedEndRef.current) === null || _b === void 0 ? void 0 : _b.cancel();
|
|
111
|
+
};
|
|
112
|
+
}, [handleScroll, scrollContainer, enableScrollObserver, throttleTime]);
|
|
113
|
+
return isScrolling;
|
|
114
|
+
};
|