@pointcloud/pcloud-components 0.1.20 → 0.1.23

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 (111) hide show
  1. package/README.md +17 -3
  2. package/dist/esm/AdvancedFilter/FormFilter.d.ts +1 -2
  3. package/dist/esm/AdvancedFilter/FormFilter.js +3 -3
  4. package/dist/esm/AdvancedFilter/index.js +3 -3
  5. package/dist/esm/AdvancedFilter/interface.d.ts +3 -3
  6. package/dist/esm/AuthComponent/index.d.ts +1 -2
  7. package/dist/esm/ColorPicker/index.d.ts +10 -11
  8. package/dist/esm/ColorPicker/index.js +5 -5
  9. package/dist/esm/ColorPicker/interface.d.ts +3 -3
  10. package/dist/esm/ConfigProvider/index.d.ts +1 -1
  11. package/dist/esm/ConfigProvider/interface.d.ts +1 -1
  12. package/dist/esm/DCascader/index.js +8 -9
  13. package/dist/esm/DCascader/index.less +24 -24
  14. package/dist/esm/DForm/DItem/itemsRender.d.ts +29 -29
  15. package/dist/esm/DForm/DItem/itemsRender.js +2 -0
  16. package/dist/esm/DForm/helper.js +6 -6
  17. package/dist/esm/DForm/index.d.ts +2 -1
  18. package/dist/esm/DForm/index.js +2 -3
  19. package/dist/esm/DForm/index.less +5 -4
  20. package/dist/esm/DInput/index.js +18 -18
  21. package/dist/esm/DModal/index.d.ts +1 -2
  22. package/dist/esm/DModal/interface.d.ts +2 -2
  23. package/dist/esm/DSelect/index.d.ts +1 -2
  24. package/dist/esm/DSelect/index.js +40 -46
  25. package/dist/esm/DTable/index.js +2 -2
  26. package/dist/esm/DTable/index.less +71 -71
  27. package/dist/esm/DTreeSelect/index.d.ts +1 -11
  28. package/dist/esm/DTreeSelect/index.js +1 -9
  29. package/dist/esm/DTreeSelect/index.less +11 -11
  30. package/dist/esm/DUpload/helper.d.ts +1 -1
  31. package/dist/esm/DUpload/helper.js +1 -1
  32. package/dist/esm/DUpload/index.d.ts +2 -2
  33. package/dist/esm/DUpload/index.js +14 -14
  34. package/dist/esm/DUpload/index.less +19 -19
  35. package/dist/esm/ErrorBoundary/index.d.ts +1 -2
  36. package/dist/esm/ErrorBoundary/index.less +44 -44
  37. package/dist/esm/IPAddress/index.d.ts +23 -0
  38. package/dist/esm/IPAddress/index.js +243 -0
  39. package/dist/esm/IPAddress/index.less +63 -0
  40. package/dist/esm/IconFont/index.d.ts +17 -0
  41. package/dist/esm/IconFont/index.js +27 -0
  42. package/dist/esm/InfiniteScrollList/index.d.ts +1 -1
  43. package/dist/esm/InfiniteScrollList/index.js +50 -44
  44. package/dist/esm/InfiniteScrollList/styles/index.less +22 -22
  45. package/dist/esm/LabelValue/index.d.ts +1 -1
  46. package/dist/esm/LabelValue/index.js +7 -3
  47. package/dist/esm/LabelValue/interface.d.ts +12 -3
  48. package/dist/esm/LabelValue/styles/index.less +23 -23
  49. package/dist/esm/Loading/hooks/useLoading.d.ts +6 -0
  50. package/dist/esm/Loading/hooks/useLoading.js +35 -0
  51. package/dist/esm/Loading/index.d.ts +5 -4
  52. package/dist/esm/Loading/index.js +9 -9
  53. package/dist/esm/Loading/interface.d.ts +12 -4
  54. package/dist/esm/Loading/loading.d.ts +3 -6
  55. package/dist/esm/Loading/loading.js +34 -11
  56. package/dist/esm/Loading/styles/index.less +25 -25
  57. package/dist/esm/ModalForm/index.d.ts +1 -1
  58. package/dist/esm/ModalForm/index.js +1 -1
  59. package/dist/esm/NoData/index.d.ts +1 -2
  60. package/dist/esm/NoData/styles/index.less +24 -24
  61. package/dist/esm/PictureCard/index.d.ts +2 -2
  62. package/dist/esm/PictureCard/index.js +1 -2
  63. package/dist/esm/PictureCard/index.less +28 -28
  64. package/dist/esm/RCropper/handler.d.ts +16 -0
  65. package/dist/esm/RCropper/handler.js +146 -0
  66. package/dist/esm/RCropper/index.d.ts +4 -0
  67. package/dist/esm/RCropper/index.js +183 -0
  68. package/dist/esm/RCropper/interface.d.ts +70 -0
  69. package/dist/esm/RCropper/interface.js +1 -0
  70. package/dist/esm/RCropper/styles/toolbar.less +25 -0
  71. package/dist/esm/RCropper/toolbar.d.ts +5 -0
  72. package/dist/esm/RCropper/toolbar.js +74 -0
  73. package/dist/esm/RndDrag/index.d.ts +5 -0
  74. package/dist/esm/RndDrag/index.js +26 -0
  75. package/dist/esm/ScrollNumber/index.d.ts +1 -2
  76. package/dist/esm/WordCloud/index.d.ts +1 -2
  77. package/dist/esm/commonStyle/index.less +1 -1
  78. package/dist/esm/index.d.ts +9 -1
  79. package/dist/esm/index.js +6 -2
  80. package/dist/umd/pcloud-components.min.css +1 -1
  81. package/dist/umd/pcloud-components.min.js +1 -1
  82. package/package.json +13 -10
  83. package/dist/cjs/AdvancedFilter/FormFilter.d.ts +0 -5
  84. package/dist/cjs/AdvancedFilter/FormFilter.js +0 -158
  85. package/dist/cjs/AdvancedFilter/demos/demo1.d.ts +0 -3
  86. package/dist/cjs/AdvancedFilter/demos/demo1.js +0 -56
  87. package/dist/cjs/AdvancedFilter/demos/demo2.d.ts +0 -3
  88. package/dist/cjs/AdvancedFilter/demos/demo2.js +0 -63
  89. package/dist/cjs/AdvancedFilter/demos/demo3.d.ts +0 -3
  90. package/dist/cjs/AdvancedFilter/demos/demo3.js +0 -113
  91. package/dist/cjs/AdvancedFilter/index.d.ts +0 -5
  92. package/dist/cjs/AdvancedFilter/index.js +0 -114
  93. package/dist/cjs/AdvancedFilter/interface.d.ts +0 -97
  94. package/dist/cjs/AdvancedFilter/interface.js +0 -17
  95. package/dist/cjs/AdvancedFilter/styles/index.less +0 -115
  96. package/dist/cjs/ErrorBoundary/index.d.ts +0 -6
  97. package/dist/cjs/ErrorBoundary/index.js +0 -45
  98. package/dist/cjs/ErrorBoundary/index.less +0 -42
  99. package/dist/cjs/LabelValue/demos/demo1.d.ts +0 -3
  100. package/dist/cjs/LabelValue/demos/demo1.js +0 -35
  101. package/dist/cjs/LabelValue/demos/demo2.d.ts +0 -3
  102. package/dist/cjs/LabelValue/demos/demo2.js +0 -36
  103. package/dist/cjs/LabelValue/demos/demo3.d.ts +0 -3
  104. package/dist/cjs/LabelValue/demos/demo3.js +0 -36
  105. package/dist/cjs/LabelValue/index.d.ts +0 -16
  106. package/dist/cjs/LabelValue/index.js +0 -50
  107. package/dist/cjs/LabelValue/interface.d.ts +0 -29
  108. package/dist/cjs/LabelValue/interface.js +0 -17
  109. package/dist/cjs/LabelValue/styles/index.less +0 -18
  110. package/dist/cjs/index.d.ts +0 -4
  111. package/dist/cjs/index.js +0 -38
@@ -1,23 +1,23 @@
1
- @import '../../commonStyle/index.less';
2
-
3
- .@{prefix}-label-value {
4
- display: inline-flex;
5
-
6
- span {
7
- &:first-child {
8
- max-width: 120px;
9
- padding-right: 4px;
10
- white-space: nowrap;
11
- }
12
-
13
- &:last-child {
14
- flex: 1;
15
-
16
- &.no-wrap {
17
- overflow: hidden;
18
- white-space: nowrap;
19
- text-overflow: ellipsis;
20
- }
21
- }
22
- }
23
- }
1
+ @import '../../commonStyle/index.less';
2
+
3
+ .@{prefix}-label-value {
4
+ display: inline-flex;
5
+
6
+ span {
7
+ &:first-child {
8
+ max-width: 120px;
9
+ padding-right: 4px;
10
+ white-space: nowrap;
11
+ }
12
+
13
+ &:last-child {
14
+ flex: 1;
15
+
16
+ &.no-wrap {
17
+ overflow: hidden;
18
+ white-space: nowrap;
19
+ text-overflow: ellipsis;
20
+ }
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,6 @@
1
+ import type { ILoadingInstance, LoadingInstanceProps } from '../interface';
2
+ export declare const useLoading: (initialState?: boolean) => {
3
+ isLoading: boolean;
4
+ openLoading: (params?: LoadingInstanceProps) => ILoadingInstance;
5
+ closeLoading: () => void;
6
+ };
@@ -0,0 +1,35 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import { useState, useEffect, useRef } from 'react';
3
+ import loading from "../index";
4
+ export var useLoading = function useLoading() {
5
+ var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6
+ var _useState = useState(initialState),
7
+ _useState2 = _slicedToArray(_useState, 2),
8
+ isLoading = _useState2[0],
9
+ setIsLoading = _useState2[1];
10
+ var loadingRef = useRef(null);
11
+ useEffect(function () {
12
+ return function () {
13
+ if (loadingRef.current) {
14
+ loading.close();
15
+ }
16
+ };
17
+ }, []);
18
+ var openLoading = function openLoading(params) {
19
+ setIsLoading(true);
20
+ loadingRef.current = loading.open(params);
21
+ return loadingRef.current;
22
+ };
23
+ var closeLoading = function closeLoading() {
24
+ setIsLoading(false);
25
+ if (loadingRef.current) {
26
+ loading.close();
27
+ loadingRef.current = null;
28
+ }
29
+ };
30
+ return {
31
+ isLoading: isLoading,
32
+ openLoading: openLoading,
33
+ closeLoading: closeLoading
34
+ };
35
+ };
@@ -1,9 +1,10 @@
1
1
  import Loading from './loading';
2
- import { ILoadingProps, LoadingInstanceProps } from './interface';
2
+ import { LoadingInstanceProps, ILoadingInstance } from './interface';
3
+ import { useLoading } from './hooks/useLoading';
3
4
  declare const _default: {
4
- open(params?: LoadingInstanceProps): ILoadingProps;
5
+ open(params?: LoadingInstanceProps): ILoadingInstance;
5
6
  close(): void;
6
- getInstance(): ILoadingProps;
7
+ getInstance(): ILoadingInstance | null;
7
8
  };
8
9
  export default _default;
9
- export { Loading };
10
+ export { Loading, useLoading };
@@ -1,22 +1,22 @@
1
1
  import Loading from "./loading";
2
+ import { useLoading } from "./hooks/useLoading";
2
3
  var loadingInstance = null;
3
- var getLoadingInstance = function getLoadingInstance(params) {
4
- loadingInstance = loadingInstance || Loading.newInstance(params);
5
- return loadingInstance;
6
- };
7
4
  export default {
8
5
  open: function open(params) {
9
- return getLoadingInstance(params);
6
+ if (!loadingInstance) {
7
+ loadingInstance = Loading.newInstance(params);
8
+ }
9
+ return loadingInstance;
10
10
  },
11
11
  close: function close() {
12
12
  if (loadingInstance) {
13
- var _loadingInstance;
14
- (_loadingInstance = loadingInstance) === null || _loadingInstance === void 0 ? void 0 : _loadingInstance.destroy();
15
- loadingInstance = null;
13
+ var currentInstance = loadingInstance;
14
+ loadingInstance = null; // 先清空引用
15
+ currentInstance.destroy(); // 再销毁
16
16
  }
17
17
  },
18
18
  getInstance: function getInstance() {
19
19
  return loadingInstance;
20
20
  }
21
21
  };
22
- export { Loading };
22
+ export { Loading, useLoading };
@@ -1,15 +1,23 @@
1
1
  import { SpinProps } from 'antd';
2
- import React, { ReactInstance } from 'react';
3
- export interface LoadingInstanceProps extends SpinProps {
2
+ import { ReactInstance } from 'react';
3
+ export interface LoadingInstanceProps extends Omit<SpinProps, 'delay'> {
4
4
  /**
5
5
  * @description 加载框容器
6
6
  * @default body
7
7
  */
8
8
  container?: ReactInstance | undefined;
9
+ /**
10
+ * @description 延迟显示加载框毫秒
11
+ * @default 0
12
+ */
13
+ delay?: number;
14
+ }
15
+ export interface ILoadingInstance {
16
+ destroy: () => void;
9
17
  }
10
18
  export interface ILoadingProps {
11
- open: (param: LoadingInstanceProps) => React.ReactDOM;
19
+ open: (_params: LoadingInstanceProps) => ILoadingInstance;
20
+ getInstance: () => ILoadingInstance | null;
12
21
  close: () => void;
13
- getInstance: () => React.ReactDOM;
14
22
  }
15
23
  export declare type LoadingProps = ILoadingProps;
@@ -1,10 +1,7 @@
1
- /// <reference types="react" />
2
- import { LoadingInstanceProps } from './interface';
1
+ import { ILoadingInstance, LoadingInstanceProps } from './interface';
3
2
  import './styles/index.less';
4
- declare function Loading(props: LoadingInstanceProps): JSX.Element;
3
+ declare function Loading(props: LoadingInstanceProps): import("react/jsx-runtime").JSX.Element;
5
4
  declare namespace Loading {
6
- var newInstance: (args: LoadingInstanceProps) => {
7
- destroy(): void;
8
- };
5
+ var newInstance: (args?: LoadingInstanceProps | undefined) => ILoadingInstance;
9
6
  }
10
7
  export default Loading;
@@ -1,46 +1,69 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- var _excluded = ["container"];
5
- import React, { useContext, useEffect } from 'react';
6
- import ReactDOM from 'react-dom';
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
+ var _excluded = ["delay"],
6
+ _excluded2 = ["container"];
7
7
  import { Spin } from 'antd';
8
8
  import classNames from 'classnames';
9
+ import { useContext, useEffect, useRef, useState } from 'react';
10
+ import ReactDOM from 'react-dom';
9
11
  import { ConfigContext } from "../ConfigProvider";
10
12
  import "./styles/index.less";
13
+ import { Fragment as _Fragment } from "react/jsx-runtime";
11
14
  import { jsx as _jsx } from "react/jsx-runtime";
12
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
13
16
  function Loading(props) {
14
- var _props$tip = props.tip,
15
- tip = _props$tip === void 0 ? '数据请求中...' : _props$tip;
17
+ var delay = props.delay,
18
+ other = _objectWithoutProperties(props, _excluded);
16
19
  var _useContext = useContext(ConfigContext),
17
20
  prefixCls = _useContext.prefixCls,
18
21
  getPrefixCls = _useContext.getPrefixCls;
19
22
  var classname = getPrefixCls('loading');
20
23
  var wrapperClass = classNames(_defineProperty({}, "".concat(prefixCls, "-loading"), !!prefixCls), classname);
24
+ var _useState = useState(false),
25
+ _useState2 = _slicedToArray(_useState, 2),
26
+ visible = _useState2[0],
27
+ setVisible = _useState2[1];
28
+ var timer = useRef();
21
29
  useEffect(function () {
22
30
  document.body.style.overflow = 'hidden';
23
31
  return function () {
24
32
  document.body.style.overflow = '';
25
33
  };
26
34
  }, []);
35
+ useEffect(function () {
36
+ timer.current = setTimeout(function () {
37
+ return setVisible(true);
38
+ }, delay || 0);
39
+ return function () {
40
+ clearTimeout(timer.current);
41
+ };
42
+ }, [delay]);
43
+ if (!visible) return /*#__PURE__*/_jsx(_Fragment, {});
27
44
  return /*#__PURE__*/_jsxs("div", {
28
45
  className: wrapperClass,
29
46
  children: [/*#__PURE__*/_jsx("div", {
30
47
  className: "mask"
31
48
  }), /*#__PURE__*/_jsx("div", {
32
49
  className: "loading",
33
- children: /*#__PURE__*/_jsx(Spin, {
34
- tip: tip
35
- })
50
+ children: /*#__PURE__*/_jsx(Spin, _objectSpread(_objectSpread({}, other), {}, {
51
+ children: /*#__PURE__*/_jsx("div", {
52
+ style: {
53
+ opacity: 0
54
+ },
55
+ children: other.tip
56
+ })
57
+ }))
36
58
  })]
37
59
  });
38
60
  }
39
61
  Loading.newInstance = function newNotificationInstance(args) {
40
62
  var _ref = args || {},
41
63
  container = _ref.container,
42
- otherProps = _objectWithoutProperties(_ref, _excluded);
64
+ otherProps = _objectWithoutProperties(_ref, _excluded2);
43
65
  var div = document.createElement('div');
66
+
44
67
  // eslint-disable-next-line react/no-find-dom-node
45
68
  var element = ReactDOM.findDOMNode(container);
46
69
  if (element) {
@@ -54,7 +77,7 @@ Loading.newInstance = function newNotificationInstance(args) {
54
77
  destroy: function destroy() {
55
78
  ReactDOM.unmountComponentAtNode(div);
56
79
  if (element) {
57
- element === null || element === void 0 ? void 0 : element.removeChild(div);
80
+ element === null || element === void 0 || element.removeChild(div);
58
81
  } else {
59
82
  document.body.removeChild(div);
60
83
  }
@@ -1,25 +1,25 @@
1
- @import '../../commonStyle/index.less';
2
-
3
- .@{prefix}-loading {
4
- .mask {
5
- position: fixed;
6
- top: 0;
7
- left: 0;
8
- z-index: 100000;
9
- width: 100%;
10
- height: 100%;
11
- overflow: hidden;
12
- }
13
-
14
- .loading {
15
- position: absolute;
16
- top: 50%;
17
- left: 50%;
18
- z-index: 100001;
19
- padding: 20px;
20
- background: #fff;
21
- border-radius: 10px;
22
- box-shadow: 3px 3px 3px rgba(0, 0, 0, 20%);
23
- transform: translate(-50%, -50%);
24
- }
25
- }
1
+ @import '../../commonStyle/index.less';
2
+
3
+ .@{prefix}-loading {
4
+ .mask {
5
+ position: fixed;
6
+ top: 0;
7
+ left: 0;
8
+ z-index: 100000;
9
+ width: 100%;
10
+ height: 100%;
11
+ overflow: hidden;
12
+ }
13
+
14
+ .loading {
15
+ position: absolute;
16
+ top: 50%;
17
+ left: 50%;
18
+ z-index: 100001;
19
+ padding: 20px;
20
+ background: #fff;
21
+ border-radius: 10px;
22
+ box-shadow: 3px 3px 3px rgba(0, 0, 0, 20%);
23
+ transform: translate(-50%, -50%);
24
+ }
25
+ }
@@ -7,5 +7,5 @@ export declare type ModalFormProps = {
7
7
  formProps: DFormProps;
8
8
  children?: React.ReactNode;
9
9
  };
10
- declare const _default: (props: ModalFormProps) => JSX.Element;
10
+ declare const _default: (props: ModalFormProps) => import("react/jsx-runtime").JSX.Element;
11
11
  export default _default;
@@ -19,7 +19,7 @@ export default (function (props) {
19
19
  } : {};
20
20
  var handleOk = function handleOk() {
21
21
  form.validateFields().then(function (values) {
22
- onOk === null || onOk === void 0 ? void 0 : onOk(values);
22
+ onOk === null || onOk === void 0 || onOk(values);
23
23
  });
24
24
  };
25
25
  return /*#__PURE__*/_jsxs(DModal, _objectSpread(_objectSpread(_objectSpread({
@@ -1,5 +1,4 @@
1
- /// <reference types="react" />
2
1
  import { INoDataProps } from './interface';
3
2
  import './styles/index.less';
4
- declare const NoData: (props: INoDataProps) => JSX.Element;
3
+ declare const NoData: (props: INoDataProps) => import("react/jsx-runtime").JSX.Element;
5
4
  export default NoData;
@@ -1,24 +1,24 @@
1
- @import '../../commonStyle/index.less';
2
-
3
- .@{prefix}-nodata {
4
- position: absolute;
5
- top: 50%;
6
- left: 50%;
7
- transform: translate(-50%, -50%);
8
-
9
- .not-data-image {
10
- display: block;
11
- height: 100px;
12
- }
13
-
14
- .no-data-text {
15
- display: inline-block;
16
- width: 100%;
17
- margin-top: 5px;
18
- color: #000;
19
- font-weight: 400;
20
- font-size: 14px;
21
- text-align: center;
22
- opacity: 0.65;
23
- }
24
- }
1
+ @import '../../commonStyle/index.less';
2
+
3
+ .@{prefix}-nodata {
4
+ position: absolute;
5
+ top: 50%;
6
+ left: 50%;
7
+ transform: translate(-50%, -50%);
8
+
9
+ .not-data-image {
10
+ display: block;
11
+ height: 100px;
12
+ }
13
+
14
+ .no-data-text {
15
+ display: inline-block;
16
+ width: 100%;
17
+ margin-top: 5px;
18
+ color: #000;
19
+ font-weight: 400;
20
+ font-size: 14px;
21
+ text-align: center;
22
+ opacity: 0.65;
23
+ }
24
+ }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ImageProps } from 'antd';
3
3
  import './index.less';
4
- interface IPictureCardProps extends Omit<ImageProps, 'src' | 'width'> {
4
+ interface IPictureCardProps extends Omit<ImageProps, 'src' | 'width' | 'content'> {
5
5
  className?: string;
6
6
  layout?: 'vertical' | 'horizontal';
7
7
  src: ImageProps['src'] | ImageProps['src'][];
@@ -11,6 +11,6 @@ interface IPictureCardProps extends Omit<ImageProps, 'src' | 'width'> {
11
11
  hoverable?: boolean;
12
12
  bordered?: boolean;
13
13
  }
14
- declare const PictureCard: (props: IPictureCardProps) => JSX.Element;
14
+ declare const PictureCard: (props: IPictureCardProps) => import("react/jsx-runtime").JSX.Element;
15
15
  export declare type PictureCardProps = IPictureCardProps;
16
16
  export default PictureCard;
@@ -10,7 +10,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
10
10
  import { Fragment as _Fragment } from "react/jsx-runtime";
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
12
  var PictureCard = function PictureCard(props) {
13
- var _classNames2;
14
13
  var className = props.className,
15
14
  _props$layout = props.layout,
16
15
  layout = _props$layout === void 0 ? 'vertical' : _props$layout,
@@ -28,7 +27,7 @@ var PictureCard = function PictureCard(props) {
28
27
  prefixCls = _useContext.prefixCls,
29
28
  getPrefixCls = _useContext.getPrefixCls;
30
29
  var classname = getPrefixCls('picture-card');
31
- var wrapperClass = classNames(_defineProperty({}, "".concat(prefixCls, "-picture-card"), !!prefixCls), (_classNames2 = {}, _defineProperty(_classNames2, "".concat(classname, "-hoverable"), hoverable), _defineProperty(_classNames2, "".concat(classname, "-bordered"), bordered), _classNames2), classname, className, layout);
30
+ var wrapperClass = classNames(_defineProperty({}, "".concat(prefixCls, "-picture-card"), !!prefixCls), _defineProperty(_defineProperty({}, "".concat(classname, "-hoverable"), hoverable), "".concat(classname, "-bordered"), bordered), classname, className, layout);
32
31
  var _useState = useState(false),
33
32
  _useState2 = _slicedToArray(_useState, 2),
34
33
  visible = _useState2[0],
@@ -1,28 +1,28 @@
1
- @import '../commonStyle/index.less';
2
-
3
- .@{prefix}-picture-card {
4
- display: inline-block;
5
- padding: 10px;
6
- transition: box-shadow 0.3s linear;
7
-
8
- .info {
9
- margin-top: 10px;
10
- }
11
-
12
- &-bordered {
13
- border: 1px solid rgba(0, 0, 0, 6%);
14
- }
15
-
16
- &-hoverable {
17
- &:hover {
18
- cursor: pointer;
19
- border-color: transparent;
20
- box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 16%), 0 3px 6px rgba(0, 0, 0, 12%), 0 5px 12px 4px rgba(0, 0, 0, 9%);
21
- }
22
- }
23
-
24
- &.horizontal {
25
- display: flex;
26
- justify-content: space-around;
27
- }
28
- }
1
+ @import '../commonStyle/index.less';
2
+
3
+ .@{prefix}-picture-card {
4
+ display: inline-block;
5
+ padding: 10px;
6
+ transition: box-shadow 0.3s linear;
7
+
8
+ .info {
9
+ margin-top: 10px;
10
+ }
11
+
12
+ &-bordered {
13
+ border: 1px solid rgba(0, 0, 0, 6%);
14
+ }
15
+
16
+ &-hoverable {
17
+ &:hover {
18
+ cursor: pointer;
19
+ border-color: transparent;
20
+ box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 16%), 0 3px 6px rgba(0, 0, 0, 12%), 0 5px 12px 4px rgba(0, 0, 0, 9%);
21
+ }
22
+ }
23
+
24
+ &.horizontal {
25
+ display: flex;
26
+ justify-content: space-around;
27
+ }
28
+ }
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ import type { RCropperActionHandlers } from './interface';
3
+ import type Cropper from 'cropperjs';
4
+ export declare function createCropperHandlers(cropperInstanceRef: React.RefObject<Cropper | null>, imgTransformRef: React.RefObject<number[] | undefined>, props: {
5
+ onCrop?: (base64: string, file?: File) => void;
6
+ onZoom?: (transform: number[] | undefined) => void;
7
+ onRotate?: (transform: number[] | undefined) => void;
8
+ onFlip?: (transform: number[] | undefined) => void;
9
+ onReset?: (transform: number[] | undefined) => void;
10
+ onCancelCrop?: (info: {
11
+ x: number;
12
+ y: number;
13
+ width: number;
14
+ height: number;
15
+ }) => void;
16
+ }): RCropperActionHandlers;
@@ -0,0 +1,146 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
3
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
4
+ var base64ToFile = function base64ToFile(base64) {
5
+ var _arr$;
6
+ var fileName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'file.png';
7
+ // 分割Base64字符串获取MIME类型和纯数据部分
8
+ var arr = base64.split(',');
9
+ var mime = arr === null || arr === void 0 || (_arr$ = arr[0]) === null || _arr$ === void 0 || (_arr$ = _arr$.match(/:(.*?);/)) === null || _arr$ === void 0 ? void 0 : _arr$[1];
10
+ var bstr = atob(arr[1]);
11
+ var n = bstr.length;
12
+ // 创建Uint8Array并填充数据
13
+ var u8arr = new Uint8Array(n);
14
+ while (n--) {
15
+ u8arr[n] = bstr.charCodeAt(n);
16
+ }
17
+ // 创建并返回File对象
18
+ return new File([u8arr], fileName, {
19
+ type: mime
20
+ });
21
+ };
22
+ export function createCropperHandlers(cropperInstanceRef, imgTransformRef, props) {
23
+ return {
24
+ handleCrop: function handleCrop() {
25
+ return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
26
+ var _props$onCrop, cropper, selection, canvasEl, img, _file;
27
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
28
+ while (1) switch (_context.prev = _context.next) {
29
+ case 0:
30
+ _context.prev = 0;
31
+ cropper = cropperInstanceRef.current;
32
+ if (cropper) {
33
+ _context.next = 4;
34
+ break;
35
+ }
36
+ return _context.abrupt("return");
37
+ case 4:
38
+ selection = cropper.getCropperSelection();
39
+ _context.next = 7;
40
+ return selection === null || selection === void 0 ? void 0 : selection.$toCanvas();
41
+ case 7:
42
+ canvasEl = _context.sent;
43
+ img = canvasEl === null || canvasEl === void 0 ? void 0 : canvasEl.toDataURL();
44
+ _file = base64ToFile(img);
45
+ (_props$onCrop = props.onCrop) === null || _props$onCrop === void 0 || _props$onCrop.call(props, img, _file);
46
+ _context.next = 15;
47
+ break;
48
+ case 13:
49
+ _context.prev = 13;
50
+ _context.t0 = _context["catch"](0);
51
+ case 15:
52
+ case "end":
53
+ return _context.stop();
54
+ }
55
+ }, _callee, null, [[0, 13]]);
56
+ }))();
57
+ },
58
+ handleZoomIn: function handleZoomIn() {
59
+ try {
60
+ var _cropperInstanceRef$c, _props$onZoom;
61
+ var img = (_cropperInstanceRef$c = cropperInstanceRef.current) === null || _cropperInstanceRef$c === void 0 ? void 0 : _cropperInstanceRef$c.getCropperImage();
62
+ img === null || img === void 0 || img.$zoom(0.1);
63
+ (_props$onZoom = props.onZoom) === null || _props$onZoom === void 0 || _props$onZoom.call(props, img === null || img === void 0 ? void 0 : img.$getTransform());
64
+ } catch (_unused2) {}
65
+ },
66
+ handleZoomOut: function handleZoomOut() {
67
+ try {
68
+ var _cropperInstanceRef$c2, _props$onZoom2;
69
+ var img = (_cropperInstanceRef$c2 = cropperInstanceRef.current) === null || _cropperInstanceRef$c2 === void 0 ? void 0 : _cropperInstanceRef$c2.getCropperImage();
70
+ img === null || img === void 0 || img.$zoom(-0.1);
71
+ (_props$onZoom2 = props.onZoom) === null || _props$onZoom2 === void 0 || _props$onZoom2.call(props, img === null || img === void 0 ? void 0 : img.$getTransform());
72
+ } catch (_unused3) {}
73
+ },
74
+ handleRotateLeft: function handleRotateLeft() {
75
+ try {
76
+ var _cropperInstanceRef$c3, _props$onRotate;
77
+ var img = (_cropperInstanceRef$c3 = cropperInstanceRef.current) === null || _cropperInstanceRef$c3 === void 0 ? void 0 : _cropperInstanceRef$c3.getCropperImage();
78
+ img === null || img === void 0 || img.$rotate('-45deg');
79
+ (_props$onRotate = props.onRotate) === null || _props$onRotate === void 0 || _props$onRotate.call(props, img === null || img === void 0 ? void 0 : img.$getTransform());
80
+ } catch (_unused4) {}
81
+ },
82
+ handleRotateRight: function handleRotateRight() {
83
+ try {
84
+ var _cropperInstanceRef$c4, _props$onRotate2;
85
+ var img = (_cropperInstanceRef$c4 = cropperInstanceRef.current) === null || _cropperInstanceRef$c4 === void 0 ? void 0 : _cropperInstanceRef$c4.getCropperImage();
86
+ img === null || img === void 0 || img.$rotate('45deg');
87
+ (_props$onRotate2 = props.onRotate) === null || _props$onRotate2 === void 0 || _props$onRotate2.call(props, img === null || img === void 0 ? void 0 : img.$getTransform());
88
+ } catch (_unused5) {}
89
+ },
90
+ handleFlipX: function handleFlipX() {
91
+ try {
92
+ var _cropperInstanceRef$c5, _props$onFlip;
93
+ var img = (_cropperInstanceRef$c5 = cropperInstanceRef.current) === null || _cropperInstanceRef$c5 === void 0 ? void 0 : _cropperInstanceRef$c5.getCropperImage();
94
+ img === null || img === void 0 || img.$scale(-1, 1);
95
+ (_props$onFlip = props.onFlip) === null || _props$onFlip === void 0 || _props$onFlip.call(props, img === null || img === void 0 ? void 0 : img.$getTransform());
96
+ } catch (_unused6) {}
97
+ },
98
+ handleFlipY: function handleFlipY() {
99
+ try {
100
+ var _cropperInstanceRef$c6, _props$onFlip2;
101
+ var img = (_cropperInstanceRef$c6 = cropperInstanceRef.current) === null || _cropperInstanceRef$c6 === void 0 ? void 0 : _cropperInstanceRef$c6.getCropperImage();
102
+ img === null || img === void 0 || img.$scale(1, -1);
103
+ (_props$onFlip2 = props.onFlip) === null || _props$onFlip2 === void 0 || _props$onFlip2.call(props, img === null || img === void 0 ? void 0 : img.$getTransform());
104
+ } catch (_unused7) {}
105
+ },
106
+ handleReset: function handleReset() {
107
+ try {
108
+ var _cropperInstanceRef$c7;
109
+ var img = (_cropperInstanceRef$c7 = cropperInstanceRef.current) === null || _cropperInstanceRef$c7 === void 0 ? void 0 : _cropperInstanceRef$c7.getCropperImage();
110
+ if (img && imgTransformRef.current) {
111
+ var _props$onReset;
112
+ var _imgTransformRef$curr = _slicedToArray(imgTransformRef.current, 6),
113
+ scaleX = _imgTransformRef$curr[0],
114
+ skewY = _imgTransformRef$curr[1],
115
+ skewX = _imgTransformRef$curr[2],
116
+ scaleY = _imgTransformRef$curr[3],
117
+ translateX = _imgTransformRef$curr[4],
118
+ translateY = _imgTransformRef$curr[5];
119
+ img === null || img === void 0 || img.$setTransform(scaleX, skewY, skewX, scaleY, translateX, translateY);
120
+ (_props$onReset = props.onReset) === null || _props$onReset === void 0 || _props$onReset.call(props, img === null || img === void 0 ? void 0 : img.$getTransform());
121
+ }
122
+ } catch (_unused8) {}
123
+ },
124
+ handleCancelCrop: function handleCancelCrop() {
125
+ try {
126
+ var _cropperInstanceRef$c8, _props$onCancelCrop;
127
+ var selection = (_cropperInstanceRef$c8 = cropperInstanceRef.current) === null || _cropperInstanceRef$c8 === void 0 ? void 0 : _cropperInstanceRef$c8.getCropperSelection();
128
+ var width = selection === null || selection === void 0 ? void 0 : selection.width;
129
+ var height = selection === null || selection === void 0 ? void 0 : selection.height;
130
+ var x = selection === null || selection === void 0 ? void 0 : selection.x;
131
+ var y = selection === null || selection === void 0 ? void 0 : selection.y;
132
+ if (width && height) {
133
+ selection === null || selection === void 0 || selection.$clear();
134
+ } else {
135
+ selection === null || selection === void 0 || selection.$reset();
136
+ }
137
+ (_props$onCancelCrop = props.onCancelCrop) === null || _props$onCancelCrop === void 0 || _props$onCancelCrop.call(props, {
138
+ x: x,
139
+ y: y,
140
+ width: width,
141
+ height: height
142
+ });
143
+ } catch (_unused9) {}
144
+ }
145
+ };
146
+ }
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { RCropperProps } from './interface';
3
+ declare const RCropper: React.ForwardRefExoticComponent<RCropperProps & React.RefAttributes<unknown>>;
4
+ export default RCropper;