@qsxy/element-plus-react 1.0.0-next.21 → 1.0.0-next.22

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 (48) hide show
  1. package/dist/Breadcrumb/BreadcrumbItem.js +7 -4
  2. package/dist/DateTimePicker/DateTimePicker.d.ts +1 -1
  3. package/dist/Menu/Menu.d.ts +4 -0
  4. package/dist/Menu/Menu.js +231 -0
  5. package/dist/Menu/MenuCollapseTransition.d.ts +6 -0
  6. package/dist/Menu/MenuCollapseTransition.js +40 -0
  7. package/dist/Menu/MenuContext.d.ts +16 -0
  8. package/dist/Menu/MenuContext.js +18 -0
  9. package/dist/Menu/MenuItem.d.ts +4 -0
  10. package/dist/Menu/MenuItem.js +76 -0
  11. package/dist/Menu/MenuItemGroup.d.ts +4 -0
  12. package/dist/Menu/MenuItemGroup.js +44 -0
  13. package/dist/Menu/SubMenu.d.ts +4 -0
  14. package/dist/Menu/SubMenu.js +242 -0
  15. package/dist/Menu/SubMenuCollapseTransition.d.ts +6 -0
  16. package/dist/Menu/SubMenuCollapseTransition.js +52 -0
  17. package/dist/Menu/index.d.ts +5 -0
  18. package/dist/Menu/index.js +4 -0
  19. package/dist/Menu/typings.d.ts +121 -0
  20. package/dist/Menu/typings.js +1 -0
  21. package/dist/Menu/useEllipsis.d.ts +6 -0
  22. package/dist/Menu/useEllipsis.js +82 -0
  23. package/dist/Popper/Popper.js +9 -4
  24. package/dist/Popper/popperOptions.d.ts +2 -2
  25. package/dist/Popper/popperOptions.js +41 -2
  26. package/dist/Radio/Radio.js +4 -3
  27. package/dist/Radio/RadioButton.d.ts +1 -1
  28. package/dist/Radio/RadioButton.js +3 -2
  29. package/dist/Radio/typings.d.ts +1 -1
  30. package/dist/Tooltip/Tooltip.js +3 -1
  31. package/dist/Transition/CssTransiton.d.ts +15 -0
  32. package/dist/Transition/CssTransiton.js +29 -0
  33. package/dist/Transition/Transition.d.ts +2 -0
  34. package/dist/Transition/Transition.js +7 -2
  35. package/dist/hooks/useCssTransiton.d.ts +27 -0
  36. package/dist/hooks/useCssTransiton.js +87 -0
  37. package/dist/hooks/useResizeObserver.d.ts +42 -0
  38. package/dist/hooks/useResizeObserver.js +42 -0
  39. package/dist/index.css +1 -1
  40. package/dist/index.d.ts +2 -0
  41. package/dist/index.js +1 -0
  42. package/dist/types/common.d.ts +2 -2
  43. package/package.json +4 -3
  44. package/theme-chalk/common/transition.scss +142 -0
  45. package/theme-chalk/index.scss +3 -0
  46. package/theme-chalk/menu-item-group.scss +0 -0
  47. package/theme-chalk/menu-item.scss +0 -0
  48. package/theme-chalk/menu.scss +352 -0
@@ -131,8 +131,9 @@ var InternalRadio = function InternalRadio(props, ref) {
131
131
  }, /*#__PURE__*/React.createElement("input", _extends({
132
132
  key: name
133
133
  }, htmlInputProps, {
134
- name: name,
135
- value: value,
134
+ name: name
135
+ // value={value}
136
+ ,
136
137
  type: "radio",
137
138
  ref: inputRef,
138
139
  className: e(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["hidden"]))),
@@ -149,7 +150,7 @@ var InternalRadio = function InternalRadio(props, ref) {
149
150
  })), /*#__PURE__*/React.createElement("span", {
150
151
  className: e(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["label"])))
151
152
  }, children));
152
- }, [b, checked, children, className, disabled, e, handleChange, htmlInputProps, is, m, name, readOnly, size, tooltipEvents, value]);
153
+ }, [b, checked, children, className, disabled, e, handleChange, htmlInputProps, is, m, name, readOnly, size, tooltipEvents]);
153
154
  if (plaintext) {
154
155
  return checked ? /*#__PURE__*/React.createElement("div", _extends({}, tooltipEvents, {
155
156
  ref: containerRef,
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { RadioProps, RadioRef } from './typings';
3
- declare const RadioButton: React.ForwardRefExoticComponent<RadioProps<string | number | readonly string[]> & React.RefAttributes<RadioRef>>;
3
+ declare const RadioButton: React.ForwardRefExoticComponent<RadioProps<import("./typings").ValueType> & React.RefAttributes<RadioRef>>;
4
4
  export default RadioButton;
@@ -116,8 +116,9 @@ var RadioButton = /*#__PURE__*/forwardRef(function (props, ref) {
116
116
  }), /*#__PURE__*/React.createElement("input", _extends({
117
117
  key: name
118
118
  }, htmlInputProps, {
119
- name: name,
120
- value: value,
119
+ name: name
120
+ // value={value}
121
+ ,
121
122
  type: "radio",
122
123
  ref: inputRef,
123
124
  className: e(_templateObject || (_templateObject = _taggedTemplateLiteral(["original-radio"]))),
@@ -1,6 +1,6 @@
1
1
  import React, { RefObject } from 'react';
2
2
  import { BaseProps, FormControlBaseProps, NativeProps } from '../types/common';
3
- export type ValueType = React.AllHTMLAttributes<HTMLInputElement>['value'];
3
+ export type ValueType = string | number | boolean;
4
4
  export type RadioRef = {
5
5
  ref: RefObject<HTMLSpanElement>;
6
6
  input: HTMLInputElement;
@@ -108,7 +108,9 @@ var Tooltip = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref) {
108
108
  },
109
109
  onOpen: handleMouseEnter,
110
110
  onClose: handleMouseLeave,
111
- hide: handleMouseLeave
111
+ hide: function hide() {
112
+ setVisible(false);
113
+ }
112
114
  };
113
115
  });
114
116
  return /*#__PURE__*/React.createElement(React.Fragment, null, Children.map(filterChildren, function (child) {
@@ -0,0 +1,15 @@
1
+ import React, { FC } from 'react';
2
+ import { BaseProps, NativeProps } from '../types/common';
3
+ export interface CssTransitonProps extends BaseProps<React.ReactElement>, NativeProps {
4
+ }
5
+ export declare enum STATUS {
6
+ UNMOUNTED = 0,
7
+ BEFORE_ENTER = 1,
8
+ ENTER = 2,
9
+ AFTER_ENTER = 3,
10
+ BEFORE_LEAVE = 4,
11
+ LEAVE = 5,
12
+ AFTER_LEAVE = 6
13
+ }
14
+ declare const CssTransiton: FC<CssTransitonProps>;
15
+ export default CssTransiton;
@@ -0,0 +1,29 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ 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."); }
3
+ 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); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ 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; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { useComposeRef } from 'rc-util';
8
+ import React from 'react';
9
+ export var STATUS = /*#__PURE__*/function (STATUS) {
10
+ STATUS[STATUS["UNMOUNTED"] = 0] = "UNMOUNTED";
11
+ STATUS[STATUS["BEFORE_ENTER"] = 1] = "BEFORE_ENTER";
12
+ STATUS[STATUS["ENTER"] = 2] = "ENTER";
13
+ STATUS[STATUS["AFTER_ENTER"] = 3] = "AFTER_ENTER";
14
+ STATUS[STATUS["BEFORE_LEAVE"] = 4] = "BEFORE_LEAVE";
15
+ STATUS[STATUS["LEAVE"] = 5] = "LEAVE";
16
+ STATUS[STATUS["AFTER_LEAVE"] = 6] = "AFTER_LEAVE";
17
+ return STATUS;
18
+ }({});
19
+ var CssTransiton = function CssTransiton(props) {
20
+ var _props$children$props;
21
+ var _React$useState = React.useState(STATUS.UNMOUNTED),
22
+ _React$useState2 = _slicedToArray(_React$useState, 2),
23
+ status = _React$useState2[0],
24
+ setStatus = _React$useState2[1];
25
+ var nodeRef = React.useRef(null);
26
+ var mergedRef = useComposeRef(nodeRef, (_props$children$props = props.children.props) === null || _props$children$props === void 0 ? void 0 : _props$children$props.ref);
27
+ return /*#__PURE__*/React.cloneElement(props.children);
28
+ };
29
+ export default CssTransiton;
@@ -19,6 +19,8 @@ export interface TransitionProps extends AnimationEventProps {
19
19
  /** Additional classes */
20
20
  className?: string;
21
21
  name?: string;
22
+ disabled?: boolean;
23
+ cssTransition?: boolean;
22
24
  display?: string;
23
25
  /** Show the component; triggers the enter or exit animation */
24
26
  visible?: boolean;
@@ -1,4 +1,4 @@
1
- var _excluded = ["children", "className", "name"];
1
+ var _excluded = ["children", "className", "name", "disabled", "cssTransition"];
2
2
  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); }
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -247,7 +247,12 @@ var Transition = /*#__PURE__*/function (_Component) {
247
247
  children = _this$props5.children,
248
248
  className = _this$props5.className,
249
249
  name = _this$props5.name,
250
+ disabled = _this$props5.disabled,
251
+ cssTransition = _this$props5.cssTransition,
250
252
  rest = _objectWithoutProperties(_this$props5, _excluded);
253
+ if (disabled) {
254
+ return children;
255
+ }
251
256
  var childProps = omit(rest, ['animation', 'className', 'visible', 'unmountOnExit', 'transitionAppear', 'duration', 'beforeEnter', 'onEnter', 'afterEnter', 'beforeLeave', 'onLeave', 'afterLeave', 'nodeRef']);
252
257
  var transitionClassName;
253
258
  if (name) {
@@ -277,7 +282,7 @@ var Transition = /*#__PURE__*/function (_Component) {
277
282
  // @ts-ignore
278
283
  className: classNames(className, (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.className, transitionClassName),
279
284
  style: _objectSpread(_objectSpread({}, ((_child$props2 = child.props) === null || _child$props2 === void 0 ? void 0 : _child$props2.style) || {}), {}, {
280
- display: _this5.state.status > 1 ? (_this5$props$display = _this5.props.display) !== null && _this5$props$display !== void 0 ? _this5$props$display : 'block' : 'none'
285
+ display: _this5.state.status > 1 || cssTransition ? (_this5$props$display = _this5.props.display) !== null && _this5$props$display !== void 0 ? _this5$props$display : 'block' : 'none'
281
286
  })
282
287
  }));
283
288
  });
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ export interface CssTransitonProps {
3
+ nodeRef: React.RefObject<HTMLElement>;
4
+ visible: boolean;
5
+ disabled?: boolean;
6
+ duration?: number;
7
+ beforeLeave?: (el: HTMLElement) => void;
8
+ onLeave?: (el: HTMLElement) => void;
9
+ afterLeave?: (el: HTMLElement) => void;
10
+ beforeEnter?: (el: HTMLElement) => void;
11
+ onEnter?: (el: HTMLElement, done?: () => void) => void;
12
+ afterEnter?: (el: HTMLElement) => void;
13
+ done?: () => void;
14
+ }
15
+ export declare enum STATUS {
16
+ UNMOUNTED = 0,
17
+ BEFORE_LEAVE = 1,
18
+ LEAVE = 2,
19
+ AFTER_LEAVE = 3,
20
+ BEFORE_ENTER = 4,
21
+ ENTER = 5,
22
+ AFTER_ENTER = 6
23
+ }
24
+ declare const useCssTransiton: (props: CssTransitonProps) => {
25
+ mounted: boolean;
26
+ };
27
+ export default useCssTransiton;
@@ -0,0 +1,87 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ 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."); }
3
+ 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); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ 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; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { addStyle } from 'dom-lib';
8
+ import { useCallback, useEffect, useState } from 'react';
9
+ export var STATUS = /*#__PURE__*/function (STATUS) {
10
+ STATUS[STATUS["UNMOUNTED"] = 0] = "UNMOUNTED";
11
+ STATUS[STATUS["BEFORE_LEAVE"] = 1] = "BEFORE_LEAVE";
12
+ STATUS[STATUS["LEAVE"] = 2] = "LEAVE";
13
+ STATUS[STATUS["AFTER_LEAVE"] = 3] = "AFTER_LEAVE";
14
+ STATUS[STATUS["BEFORE_ENTER"] = 4] = "BEFORE_ENTER";
15
+ STATUS[STATUS["ENTER"] = 5] = "ENTER";
16
+ STATUS[STATUS["AFTER_ENTER"] = 6] = "AFTER_ENTER";
17
+ return STATUS;
18
+ }({});
19
+ var useCssTransiton = function useCssTransiton(props) {
20
+ var nodeRef = props.nodeRef,
21
+ visible = props.visible,
22
+ disabled = props.disabled,
23
+ _props$duration = props.duration,
24
+ duration = _props$duration === void 0 ? 250 : _props$duration,
25
+ beforeLeave = props.beforeLeave,
26
+ onLeave = props.onLeave,
27
+ afterLeave = props.afterLeave,
28
+ beforeEnter = props.beforeEnter,
29
+ onEnter = props.onEnter,
30
+ afterEnter = props.afterEnter,
31
+ done = props.done;
32
+ var _useState = useState(STATUS.UNMOUNTED),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ status = _useState2[0],
35
+ setStatus = _useState2[1];
36
+ var _useState3 = useState(false),
37
+ _useState4 = _slicedToArray(_useState3, 2),
38
+ mounted = _useState4[0],
39
+ setMounted = _useState4[1];
40
+ var startCssTransition = useCallback(function () {
41
+ setStatus(STATUS.BEFORE_LEAVE);
42
+ }, []);
43
+ useEffect(function () {
44
+ if (!disabled) {
45
+ if (mounted) {
46
+ startCssTransition();
47
+ } else {
48
+ setMounted(true);
49
+ done === null || done === void 0 || done();
50
+ }
51
+ } else {
52
+ done === null || done === void 0 || done();
53
+ }
54
+ }, [visible]);
55
+ useEffect(function () {
56
+ if (status === STATUS.BEFORE_LEAVE) {
57
+ beforeLeave === null || beforeLeave === void 0 || beforeLeave(nodeRef.current);
58
+ setStatus(STATUS.LEAVE);
59
+ } else if (status === STATUS.LEAVE) {
60
+ onLeave === null || onLeave === void 0 || onLeave(nodeRef.current);
61
+ setStatus(STATUS.AFTER_LEAVE);
62
+ } else if (status === STATUS.AFTER_LEAVE) {
63
+ setTimeout(function () {
64
+ afterLeave === null || afterLeave === void 0 || afterLeave(nodeRef.current);
65
+ setStatus(STATUS.BEFORE_ENTER);
66
+ addStyle(nodeRef.current, {
67
+ display: 'none'
68
+ });
69
+ }, duration);
70
+ } else if (status === STATUS.BEFORE_ENTER) {
71
+ beforeEnter === null || beforeEnter === void 0 || beforeEnter(nodeRef.current);
72
+ setStatus(STATUS.ENTER);
73
+ } else if (status === STATUS.ENTER) {
74
+ addStyle(nodeRef.current, {
75
+ display: ''
76
+ });
77
+ onEnter === null || onEnter === void 0 || onEnter(nodeRef.current, done);
78
+ setStatus(STATUS.AFTER_ENTER);
79
+ } else if (status === STATUS.AFTER_ENTER) {
80
+ afterEnter === null || afterEnter === void 0 || afterEnter(nodeRef.current);
81
+ }
82
+ }, [status]);
83
+ return {
84
+ mounted: mounted
85
+ };
86
+ };
87
+ export default useCssTransiton;
@@ -0,0 +1,42 @@
1
+ import { RefObject } from 'react';
2
+ export interface ResizeObserverSize {
3
+ readonly inlineSize: number;
4
+ readonly blockSize: number;
5
+ }
6
+ export interface ResizeObserverEntry {
7
+ readonly target: Element;
8
+ readonly contentRect: DOMRectReadOnly;
9
+ readonly borderBoxSize: ReadonlyArray<ResizeObserverSize>;
10
+ readonly contentBoxSize: ReadonlyArray<ResizeObserverSize>;
11
+ readonly devicePixelContentBoxSize: ReadonlyArray<ResizeObserverSize>;
12
+ }
13
+ export type ResizeObserverCallback = (entries: ReadonlyArray<ResizeObserverEntry>, observer: ResizeObserver) => void;
14
+ export interface UseResizeObserverOptions {
15
+ /**
16
+ * Sets which box model the observer will observe changes to. Possible values
17
+ * are `content-box` (the default), `border-box` and `device-pixel-content-box`.
18
+ *
19
+ * @default 'content-box'
20
+ */
21
+ box?: ResizeObserverBoxOptions;
22
+ window?: Window;
23
+ }
24
+ declare class ResizeObserver {
25
+ constructor(callback: ResizeObserverCallback);
26
+ disconnect(): void;
27
+ observe(target: Element, options?: UseResizeObserverOptions): void;
28
+ unobserve(target: Element): void;
29
+ }
30
+ /**
31
+ * Reports changes to the dimensions of an Element's content or the border-box
32
+ *
33
+ * @param target
34
+ * @param callback
35
+ * @param options
36
+ */
37
+ export declare function useResizeObserver(target: RefObject<HTMLElement>, callback: ResizeObserverCallback, options?: UseResizeObserverOptions): {
38
+ isSupported: boolean;
39
+ stop: () => void;
40
+ };
41
+ export type UseResizeObserverReturn = ReturnType<typeof useResizeObserver>;
42
+ export {};
@@ -0,0 +1,42 @@
1
+ function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure " + obj); }
2
+ import { useEffect, useMemo } from 'react';
3
+ /**
4
+ * Reports changes to the dimensions of an Element's content or the border-box
5
+ *
6
+ * @param target
7
+ * @param callback
8
+ * @param options
9
+ */
10
+ export function useResizeObserver(target, callback) {
11
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
12
+ var observerOptions = Object.assign({}, (_objectDestructuringEmpty(options), options));
13
+ var observer;
14
+ var isSupported = useMemo(function () {
15
+ return window && 'ResizeObserver' in window;
16
+ }, []);
17
+ var cleanup = function cleanup() {
18
+ if (observer) {
19
+ observer.disconnect();
20
+ observer = undefined;
21
+ }
22
+ };
23
+ var stop = function stop() {
24
+ cleanup();
25
+ };
26
+ useEffect(function () {
27
+ cleanup();
28
+ if (isSupported && window) {
29
+ observer = new ResizeObserver(callback);
30
+ if (target.current) {
31
+ observer.observe(target.current, observerOptions);
32
+ }
33
+ }
34
+ return function () {
35
+ cleanup();
36
+ };
37
+ }, []);
38
+ return {
39
+ isSupported: isSupported,
40
+ stop: stop
41
+ };
42
+ }