@oceanbase/ui 0.4.16 → 0.4.18

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.
@@ -5,6 +5,10 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
5
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
6
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
7
  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); }
8
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
9
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
11
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
12
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9
13
  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."); }
10
14
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -13,7 +17,7 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
13
17
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
18
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
15
19
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
16
- import React, { useEffect, useRef, useState, useImperativeHandle } from 'react';
20
+ import React, { useEffect, useState, useImperativeHandle, useRef } from 'react';
17
21
  import { Button, DatePicker, Divider, Dropdown, Radio, Space, Tooltip, theme } from '@oceanbase/design';
18
22
  import { LeftOutlined, RightOutlined, ZoomOutOutlined, SyncOutlined } from '@oceanbase/icons';
19
23
  import dayjs from 'dayjs';
@@ -26,6 +30,7 @@ import { CUSTOMIZE, DATE_TIME_FORMAT, NEAR_1_MINUTES, NEAR_30_MINUTES, NEAR_1_HO
26
30
  import InternalPickerPanel from "./PickerPanel";
27
31
  import zhCN from "./locale/zh-CN";
28
32
  import "./index.less";
33
+ import { useClickAway } from 'ahooks';
29
34
  import { jsx as _jsx } from "react/jsx-runtime";
30
35
  import { jsxs as _jsxs } from "react/jsx-runtime";
31
36
  var prefix = getPrefix('date-ranger');
@@ -111,10 +116,9 @@ var Ranger = /*#__PURE__*/React.forwardRef(function (props, ref) {
111
116
  _useState10 = _slicedToArray(_useState9, 2),
112
117
  backRadioFocused = _useState10[0],
113
118
  setBackRadioFocused = _useState10[1];
114
- var refState = useRef({
115
- tooltipOpen: tooltipOpen
116
- });
117
- refState.current.tooltipOpen = tooltipOpen;
119
+ var rangeRef = useRef(null);
120
+ var popRef = useRef(null);
121
+ var labelRef = useRef(null);
118
122
 
119
123
  // 没有 selects 时,回退到普通 RangePicker, 当前时间选项为自定义时,应该显示 RangePicker
120
124
  var _useState11 = useState(rangeName !== CUSTOMIZE),
@@ -126,6 +130,9 @@ var Ranger = /*#__PURE__*/React.forwardRef(function (props, ref) {
126
130
  if (Array.isArray(m2) && !Array.isArray(m1)) return false;
127
131
  return value[0] === innerValue[0] || value[1] === innerValue[1];
128
132
  };
133
+ useClickAway(function () {
134
+ closeTooltip();
135
+ }, [].concat(_toConsumableArray(!simpleMode || !isPlay ? [rangeRef] : []), [popRef, labelRef]));
129
136
  useEffect(function () {
130
137
  if (isNil(value) && isNil(innerValue)) return;
131
138
  // FIXME: 当前存在值的时候赋空值给组件,不好处理先 workaround 绕过,后面再想一个整体的方案
@@ -265,17 +272,16 @@ var Ranger = /*#__PURE__*/React.forwardRef(function (props, ref) {
265
272
  getPopupContainer: getPopupContainer
266
273
  // 关闭后进行销毁,才可以将 Tooltip 进行同步关闭
267
274
  ,
268
- destroyOnHidden: true
269
- // 存在缓存,会锁死里面的值
270
- ,
275
+ destroyOnHidden: true,
271
276
  onOpenChange: function onOpenChange(o) {
272
- if (o === false && refState.current.tooltipOpen) {
277
+ if (o === false && tooltipOpen) {
273
278
  return;
274
279
  }
275
280
  setOpen(o);
276
281
  },
277
282
  popupRender: function popupRender(originNode) {
278
283
  return /*#__PURE__*/_jsxs("div", {
284
+ ref: popRef,
279
285
  className: classNames("".concat(prefix, "-dropdown-picker"), overlayClassName),
280
286
  style: overlayStyle,
281
287
  children: [originNode, /*#__PURE__*/_jsx(Divider, {
@@ -314,11 +320,6 @@ var Ranger = /*#__PURE__*/React.forwardRef(function (props, ref) {
314
320
  onClick: function onClick(_ref4) {
315
321
  var key = _ref4.key,
316
322
  domEvent = _ref4.domEvent;
317
- if (key === CUSTOMIZE) {
318
- refState.current.tooltipOpen = true;
319
- } else {
320
- refState.current.tooltipOpen = false;
321
- }
322
323
  var selected = selects.find(function (_item) {
323
324
  return _item.name === key;
324
325
  });
@@ -348,7 +349,12 @@ var Ranger = /*#__PURE__*/React.forwardRef(function (props, ref) {
348
349
  })
349
350
  },
350
351
  children: /*#__PURE__*/_jsxs(Space, {
352
+ ref: labelRef,
351
353
  size: 0,
354
+ onClick: function onClick() {
355
+ setOpen(true);
356
+ setTooltipOpen(true);
357
+ },
352
358
  children: [/*#__PURE__*/_jsx("span", {
353
359
  className: "".concat(prefix, "-label"),
354
360
  style: {
@@ -361,8 +367,10 @@ var Ranger = /*#__PURE__*/React.forwardRef(function (props, ref) {
361
367
  })]
362
368
  })
363
369
  }), (!simpleMode || !isPlay) && /*#__PURE__*/_jsx("span", {
370
+ ref: rangeRef,
364
371
  onClick: function onClick() {
365
372
  setOpen(true);
373
+ setTooltipOpen(true);
366
374
  },
367
375
  children: /*#__PURE__*/_jsx(DatePicker.RangePicker, _objectSpread(_objectSpread({
368
376
  className: classNames("".concat(prefix, "-picker")),
@@ -24,6 +24,7 @@ export declare const TODAY: RangeOption;
24
24
  export declare const YESTERDAY: RangeOption;
25
25
  export declare const LAST_1_DAY: RangeOption;
26
26
  export declare const LAST_3_DAYS: RangeOption;
27
+ export declare const LAST_7_DAYS: RangeOption;
27
28
  export declare const THIS_WEEK: RangeOption;
28
29
  export declare const LAST_WEEK: RangeOption;
29
30
  export declare const THIS_MONTH: RangeOption;
@@ -159,6 +159,16 @@ export var LAST_3_DAYS = {
159
159
  return [current.clone().subtract(3, 'days'), current.clone()];
160
160
  }
161
161
  };
162
+ export var LAST_7_DAYS = {
163
+ label: '近 7 天',
164
+ enLabel: 'Last 7 Days',
165
+ rangeLabel: '7d',
166
+ name: 'LAST_7_DAYS',
167
+ range: function range() {
168
+ var current = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : moment();
169
+ return [current.clone().subtract(7, 'days'), current.clone()];
170
+ }
171
+ };
162
172
  export var THIS_WEEK = {
163
173
  label: '近一周',
164
174
  enLabel: 'Nearly a week',
@@ -14,6 +14,7 @@ declare const DateRanger: import("react").ForwardRefExoticComponent<import("./Ra
14
14
  TODAY: import("./typing").RangeOption;
15
15
  LAST_1_DAY: import("./typing").RangeOption;
16
16
  LAST_3_DAYS: import("./typing").RangeOption;
17
+ LAST_7_DAYS: import("./typing").RangeOption;
17
18
  YESTERDAY: import("./typing").RangeOption;
18
19
  THIS_WEEK: import("./typing").RangeOption;
19
20
  LAST_WEEK: import("./typing").RangeOption;
@@ -1,4 +1,4 @@
1
- import { LAST_1_DAY, LAST_3_DAYS, LAST_MONTH, LAST_WEEK, LAST_YEAR, NEAR_10_MINUTES, NEAR_12_HOURS, NEAR_1_HOURS, NEAR_1_MINUTES, NEAR_20_MINUTES, NEAR_2_HOURS, NEAR_30_MINUTES, NEAR_3_HOURS, NEAR_5_MINUTES, NEAR_6_HOURS, NEXT_YEAR, THIS_MONTH, THIS_WEEK, THIS_YEAR, TODAY, YESTERDAY } from "./constant";
1
+ import { LAST_1_DAY, LAST_3_DAYS, LAST_7_DAYS, LAST_MONTH, LAST_WEEK, LAST_YEAR, NEAR_10_MINUTES, NEAR_12_HOURS, NEAR_1_HOURS, NEAR_1_MINUTES, NEAR_20_MINUTES, NEAR_2_HOURS, NEAR_30_MINUTES, NEAR_3_HOURS, NEAR_5_MINUTES, NEAR_6_HOURS, NEXT_YEAR, THIS_MONTH, THIS_WEEK, THIS_YEAR, TODAY, YESTERDAY } from "./constant";
2
2
  import InternalDateRanger from "./Ranger";
3
3
  export * from "./Ranger";
4
4
  var DateRanger = Object.assign(InternalDateRanger, {
@@ -15,6 +15,7 @@ var DateRanger = Object.assign(InternalDateRanger, {
15
15
  TODAY: TODAY,
16
16
  LAST_1_DAY: LAST_1_DAY,
17
17
  LAST_3_DAYS: LAST_3_DAYS,
18
+ LAST_7_DAYS: LAST_7_DAYS,
18
19
  YESTERDAY: YESTERDAY,
19
20
  THIS_WEEK: THIS_WEEK,
20
21
  LAST_WEEK: LAST_WEEK,
@@ -4,6 +4,7 @@ declare const _default: {
4
4
  passwordPlaceholder: string;
5
5
  passwordMessage: string;
6
6
  loginText: string;
7
+ otherLoginText: string;
7
8
  isLoadingWarn: string;
8
9
  usernameLabel: string;
9
10
  switchLoginLabel: string;
@@ -4,6 +4,7 @@ export default {
4
4
  passwordPlaceholder: 'Please input password',
5
5
  passwordMessage: 'Password is required',
6
6
  loginText: 'Login',
7
+ otherLoginText: 'Third-party Login',
7
8
  isLoadingWarn: 'In progress',
8
9
  usernameLabel: 'Username',
9
10
  switchLoginLabel: 'Already have an account',
@@ -45,6 +45,7 @@ var import_constant = require("./constant");
45
45
  var import_PickerPanel = __toESM(require("./PickerPanel"));
46
46
  var import_zh_CN = __toESM(require("./locale/zh-CN"));
47
47
  var import_index = require("./index.less");
48
+ var import_ahooks = require("ahooks");
48
49
  var prefix = (0, import_util.getPrefix)("date-ranger");
49
50
  var Ranger = import_react.default.forwardRef((props, ref) => {
50
51
  var _a;
@@ -105,10 +106,9 @@ var Ranger = import_react.default.forwardRef((props, ref) => {
105
106
  const [open, setOpen] = (0, import_react.useState)(false);
106
107
  const [tooltipOpen, setTooltipOpen] = (0, import_react.useState)(false);
107
108
  const [backRadioFocused, setBackRadioFocused] = (0, import_react.useState)(false);
108
- const refState = (0, import_react.useRef)({
109
- tooltipOpen
110
- });
111
- refState.current.tooltipOpen = tooltipOpen;
109
+ const rangeRef = (0, import_react.useRef)(null);
110
+ const popRef = (0, import_react.useRef)(null);
111
+ const labelRef = (0, import_react.useRef)(null);
112
112
  const [isPlay, setIsPlay] = (0, import_react.useState)(rangeName !== import_constant.CUSTOMIZE);
113
113
  const compare = (m1, m2) => {
114
114
  if (Array.isArray(m1) && !Array.isArray(m2))
@@ -117,6 +117,14 @@ var Ranger = import_react.default.forwardRef((props, ref) => {
117
117
  return false;
118
118
  return value[0] === innerValue[0] || value[1] === innerValue[1];
119
119
  };
120
+ (0, import_ahooks.useClickAway)(() => {
121
+ closeTooltip();
122
+ }, [
123
+ // 有range输入框时才将其ref引用加入依赖(即极简模式不加入)
124
+ ...!simpleMode || !isPlay ? [rangeRef] : [],
125
+ popRef,
126
+ labelRef
127
+ ]);
120
128
  (0, import_react.useEffect)(() => {
121
129
  if ((0, import_lodash.isNil)(value) && (0, import_lodash.isNil)(innerValue))
122
130
  return;
@@ -255,7 +263,7 @@ var Ranger = import_react.default.forwardRef((props, ref) => {
255
263
  getPopupContainer,
256
264
  destroyOnHidden: true,
257
265
  onOpenChange: (o) => {
258
- if (o === false && refState.current.tooltipOpen) {
266
+ if (o === false && tooltipOpen) {
259
267
  return;
260
268
  }
261
269
  setOpen(o);
@@ -264,6 +272,7 @@ var Ranger = import_react.default.forwardRef((props, ref) => {
264
272
  return /* @__PURE__ */ import_react.default.createElement(
265
273
  "div",
266
274
  {
275
+ ref: popRef,
267
276
  className: (0, import_classnames.default)(`${prefix}-dropdown-picker`, overlayClassName),
268
277
  style: overlayStyle
269
278
  },
@@ -300,11 +309,6 @@ var Ranger = import_react.default.forwardRef((props, ref) => {
300
309
  selectable: true,
301
310
  defaultSelectedKeys: [rangeName],
302
311
  onClick: ({ key, domEvent }) => {
303
- if (key === import_constant.CUSTOMIZE) {
304
- refState.current.tooltipOpen = true;
305
- } else {
306
- refState.current.tooltipOpen = false;
307
- }
308
312
  const selected = selects.find((_item) => _item.name === key);
309
313
  if (selected == null ? void 0 : selected.range) {
310
314
  handleNameChange(key);
@@ -322,22 +326,36 @@ var Ranger = import_react.default.forwardRef((props, ref) => {
322
326
  })
323
327
  }
324
328
  },
325
- /* @__PURE__ */ import_react.default.createElement(import_design.Space, { size: 0 }, /* @__PURE__ */ import_react.default.createElement(
326
- "span",
329
+ /* @__PURE__ */ import_react.default.createElement(
330
+ import_design.Space,
327
331
  {
328
- className: `${prefix}-label`,
329
- style: {
330
- marginLeft: 8
332
+ ref: labelRef,
333
+ size: 0,
334
+ onClick: () => {
335
+ setOpen(true);
336
+ setTooltipOpen(true);
331
337
  }
332
338
  },
333
- rangeLabel
334
- ), simpleMode && isPlay && /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefix}-play` }, label))
339
+ /* @__PURE__ */ import_react.default.createElement(
340
+ "span",
341
+ {
342
+ className: `${prefix}-label`,
343
+ style: {
344
+ marginLeft: 8
345
+ }
346
+ },
347
+ rangeLabel
348
+ ),
349
+ simpleMode && isPlay && /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefix}-play` }, label)
350
+ )
335
351
  ),
336
352
  (!simpleMode || !isPlay) && /* @__PURE__ */ import_react.default.createElement(
337
353
  "span",
338
354
  {
355
+ ref: rangeRef,
339
356
  onClick: () => {
340
357
  setOpen(true);
358
+ setTooltipOpen(true);
341
359
  }
342
360
  },
343
361
  /* @__PURE__ */ import_react.default.createElement(
@@ -24,6 +24,7 @@ export declare const TODAY: RangeOption;
24
24
  export declare const YESTERDAY: RangeOption;
25
25
  export declare const LAST_1_DAY: RangeOption;
26
26
  export declare const LAST_3_DAYS: RangeOption;
27
+ export declare const LAST_7_DAYS: RangeOption;
27
28
  export declare const THIS_WEEK: RangeOption;
28
29
  export declare const LAST_WEEK: RangeOption;
29
30
  export declare const THIS_MONTH: RangeOption;
@@ -38,6 +38,7 @@ __export(constant_exports, {
38
38
  DATE_TIME_SECOND_FORMAT_CN: () => DATE_TIME_SECOND_FORMAT_CN,
39
39
  LAST_1_DAY: () => LAST_1_DAY,
40
40
  LAST_3_DAYS: () => LAST_3_DAYS,
41
+ LAST_7_DAYS: () => LAST_7_DAYS,
41
42
  LAST_MONTH: () => LAST_MONTH,
42
43
  LAST_WEEK: () => LAST_WEEK,
43
44
  LAST_YEAR: () => LAST_YEAR,
@@ -223,6 +224,16 @@ var LAST_3_DAYS = {
223
224
  current.clone()
224
225
  ]
225
226
  };
227
+ var LAST_7_DAYS = {
228
+ label: "近 7 天",
229
+ enLabel: "Last 7 Days",
230
+ rangeLabel: "7d",
231
+ name: "LAST_7_DAYS",
232
+ range: (current = (0, import_moment.default)()) => [
233
+ current.clone().subtract(7, "days"),
234
+ current.clone()
235
+ ]
236
+ };
226
237
  var THIS_WEEK = {
227
238
  label: "近一周",
228
239
  enLabel: "Nearly a week",
@@ -327,6 +338,7 @@ var NEAR_TIME_LIST = [
327
338
  DATE_TIME_SECOND_FORMAT_CN,
328
339
  LAST_1_DAY,
329
340
  LAST_3_DAYS,
341
+ LAST_7_DAYS,
330
342
  LAST_MONTH,
331
343
  LAST_WEEK,
332
344
  LAST_YEAR,
@@ -14,6 +14,7 @@ declare const DateRanger: import("react").ForwardRefExoticComponent<import("./Ra
14
14
  TODAY: import("./typing").RangeOption;
15
15
  LAST_1_DAY: import("./typing").RangeOption;
16
16
  LAST_3_DAYS: import("./typing").RangeOption;
17
+ LAST_7_DAYS: import("./typing").RangeOption;
17
18
  YESTERDAY: import("./typing").RangeOption;
18
19
  THIS_WEEK: import("./typing").RangeOption;
19
20
  LAST_WEEK: import("./typing").RangeOption;
@@ -50,6 +50,7 @@ var DateRanger = Object.assign(import_Ranger.default, {
50
50
  TODAY: import_constant.TODAY,
51
51
  LAST_1_DAY: import_constant.LAST_1_DAY,
52
52
  LAST_3_DAYS: import_constant.LAST_3_DAYS,
53
+ LAST_7_DAYS: import_constant.LAST_7_DAYS,
53
54
  YESTERDAY: import_constant.YESTERDAY,
54
55
  THIS_WEEK: import_constant.THIS_WEEK,
55
56
  LAST_WEEK: import_constant.LAST_WEEK,
@@ -4,6 +4,7 @@ declare const _default: {
4
4
  passwordPlaceholder: string;
5
5
  passwordMessage: string;
6
6
  loginText: string;
7
+ otherLoginText: string;
7
8
  isLoadingWarn: string;
8
9
  usernameLabel: string;
9
10
  switchLoginLabel: string;
@@ -28,6 +28,7 @@ var en_US_default = {
28
28
  passwordPlaceholder: "Please input password",
29
29
  passwordMessage: "Password is required",
30
30
  loginText: "Login",
31
+ otherLoginText: "Third-party Login",
31
32
  isLoadingWarn: "In progress",
32
33
  usernameLabel: "Username",
33
34
  switchLoginLabel: "Already have an account",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oceanbase/ui",
3
- "version": "0.4.16",
3
+ "version": "0.4.18",
4
4
  "description": "The UI library based on OceanBase Design",
5
5
  "keywords": [
6
6
  "oceanbase",
@@ -39,10 +39,10 @@
39
39
  "build": "NODE_OPTIONS=--max_old_space_size=4096 father build"
40
40
  },
41
41
  "dependencies": {
42
- "@ant-design/cssinjs": "^1.23.0",
43
- "@ant-design/pro-components": "^2.8.9",
42
+ "@ant-design/cssinjs": "^1.24.0",
43
+ "@ant-design/pro-components": "^2.8.10",
44
44
  "@antv/g6": "3.4.10",
45
- "@oceanbase/design": "^0.4.13",
45
+ "@oceanbase/design": "^0.4.15",
46
46
  "@oceanbase/icons": "^0.4.7",
47
47
  "@oceanbase/util": "^0.4.4",
48
48
  "ahooks": "^2.10.14",
@@ -64,12 +64,12 @@
64
64
  "screenfull": "^6.0.2"
65
65
  },
66
66
  "devDependencies": {
67
- "@ant-design/pro-form": "^2.31.9",
68
- "@ant-design/pro-layout": "^7.22.6"
67
+ "@ant-design/pro-form": "^2.32.0",
68
+ "@ant-design/pro-layout": "^7.22.7"
69
69
  },
70
70
  "peerDependencies": {
71
71
  "react": ">=16.9.0",
72
72
  "react-dom": ">=16.9.0"
73
73
  },
74
- "gitHead": "2d9213d7c374b9dc207ebd40663f1c50828e72b7"
74
+ "gitHead": "b88518b0f25b30d616d829813ba50eff7830499a"
75
75
  }