linkmore-design 1.0.71 → 1.0.74

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 (95) hide show
  1. package/dist/Approval/index.d.ts +1 -0
  2. package/dist/Approval/type.d.ts +1 -1
  3. package/dist/CardTable/utils.d.ts +1 -1
  4. package/dist/ConfigProvider/demos/basic.d.ts +2 -0
  5. package/dist/ConfigProvider/index.d.ts +2 -0
  6. package/dist/ConfigProvider/style/index.d.ts +1 -0
  7. package/dist/ImageViewer/components/Arrows.d.ts +4 -0
  8. package/dist/ImageViewer/components/Carousel.d.ts +4 -0
  9. package/dist/ImageViewer/components/Operate.d.ts +4 -0
  10. package/dist/ImageViewer/components/Thumb.d.ts +4 -0
  11. package/dist/ImageViewer/fns/index.d.ts +20 -0
  12. package/dist/ImageViewer/wrapeer/Container.d.ts +4 -0
  13. package/dist/ImageViewer/wrapeer/Wrapper.d.ts +4 -0
  14. package/dist/ImageViewer/wrapeer/reducer.d.ts +10 -0
  15. package/dist/Locale/index.d.ts +6 -0
  16. package/dist/Locale/style/index.d.ts +1 -0
  17. package/dist/Row/index.d.ts +1 -1
  18. package/dist/index.d.ts +24 -2
  19. package/dist/index.umd.js +115051 -112961
  20. package/dist/index.umd.min.js +20 -20
  21. package/es/Approval/index.d.ts +1 -0
  22. package/es/CardTable/table/TableContainer.js +6 -8
  23. package/es/ConfigProvider/index.js +15 -0
  24. package/es/ConfigProvider/style/index.css +141 -0
  25. package/es/ConfigProvider/style/index.js +3 -0
  26. package/es/ImageViewer/LmImageViewer.js +10 -1
  27. package/es/ImageViewer/components/Arrows.d.ts +4 -0
  28. package/es/ImageViewer/components/Arrows.js +38 -0
  29. package/es/ImageViewer/components/Carousel.d.ts +4 -0
  30. package/es/ImageViewer/components/Carousel.js +71 -0
  31. package/es/ImageViewer/components/Operate.d.ts +4 -0
  32. package/es/ImageViewer/components/Operate.js +40 -0
  33. package/es/ImageViewer/components/Thumb.d.ts +4 -0
  34. package/es/ImageViewer/components/Thumb.js +37 -0
  35. package/es/ImageViewer/fns/index.d.ts +20 -0
  36. package/es/ImageViewer/fns/index.js +100 -0
  37. package/es/ImageViewer/style/index.css +70 -174
  38. package/es/ImageViewer/wrapeer/Container.d.ts +4 -0
  39. package/es/ImageViewer/wrapeer/Container.js +31 -0
  40. package/es/ImageViewer/wrapeer/Root.js +35 -3
  41. package/es/ImageViewer/wrapeer/Wrapper.d.ts +4 -0
  42. package/es/ImageViewer/wrapeer/Wrapper.js +28 -0
  43. package/es/ImageViewer/wrapeer/reducer.d.ts +10 -0
  44. package/es/ImageViewer/wrapeer/reducer.js +52 -0
  45. package/es/LmFilter/Controls/index.js +6 -5
  46. package/es/LmFilter/customFilter/index.js +1 -1
  47. package/es/LmFilter/customFilter/saveModal.js +1 -1
  48. package/es/LmFilter/customFilter/valueDrawer.js +7 -10
  49. package/es/LmFilter/wrapper/FilterRoot.js +1 -1
  50. package/es/Locale/index.d.ts +6 -0
  51. package/es/Locale/index.js +9 -0
  52. package/es/Locale/style/index.css +141 -0
  53. package/es/Locale/style/index.js +3 -0
  54. package/es/Pagination/index.js +18 -5
  55. package/es/Row/index.d.ts +1 -1
  56. package/es/index.d.ts +24 -2
  57. package/es/index.js +14 -2
  58. package/lib/Approval/index.d.ts +1 -0
  59. package/lib/CardTable/table/TableContainer.js +6 -8
  60. package/lib/ConfigProvider/index.js +15 -0
  61. package/lib/ConfigProvider/style/index.css +141 -0
  62. package/lib/ConfigProvider/style/index.js +3 -0
  63. package/lib/ImageViewer/LmImageViewer.js +10 -1
  64. package/lib/ImageViewer/components/Arrows.d.ts +4 -0
  65. package/lib/ImageViewer/components/Arrows.js +49 -0
  66. package/lib/ImageViewer/components/Carousel.d.ts +4 -0
  67. package/lib/ImageViewer/components/Carousel.js +82 -0
  68. package/lib/ImageViewer/components/Operate.d.ts +4 -0
  69. package/lib/ImageViewer/components/Operate.js +51 -0
  70. package/lib/ImageViewer/components/Thumb.d.ts +4 -0
  71. package/lib/ImageViewer/components/Thumb.js +50 -0
  72. package/lib/ImageViewer/fns/index.d.ts +20 -0
  73. package/lib/ImageViewer/fns/index.js +108 -0
  74. package/lib/ImageViewer/style/index.css +70 -174
  75. package/lib/ImageViewer/wrapeer/Container.d.ts +4 -0
  76. package/lib/ImageViewer/wrapeer/Container.js +45 -0
  77. package/lib/ImageViewer/wrapeer/Root.js +40 -2
  78. package/lib/ImageViewer/wrapeer/Wrapper.d.ts +4 -0
  79. package/lib/ImageViewer/wrapeer/Wrapper.js +39 -0
  80. package/lib/ImageViewer/wrapeer/reducer.d.ts +10 -0
  81. package/lib/ImageViewer/wrapeer/reducer.js +64 -0
  82. package/lib/LmFilter/Controls/index.js +6 -5
  83. package/lib/LmFilter/customFilter/index.js +1 -1
  84. package/lib/LmFilter/customFilter/saveModal.js +1 -1
  85. package/lib/LmFilter/customFilter/valueDrawer.js +7 -10
  86. package/lib/LmFilter/wrapper/FilterRoot.js +1 -1
  87. package/lib/Locale/index.d.ts +6 -0
  88. package/lib/Locale/index.js +22 -0
  89. package/lib/Locale/style/index.css +141 -0
  90. package/lib/Locale/style/index.js +3 -0
  91. package/lib/Pagination/index.js +20 -5
  92. package/lib/Row/index.d.ts +1 -1
  93. package/lib/index.d.ts +24 -2
  94. package/lib/index.js +99 -3
  95. package/package.json +1 -1
@@ -2,3 +2,4 @@ import React from 'react';
2
2
  import { IApprovalProps } from './type';
3
3
  declare const LMApproval: React.FC<IApprovalProps>;
4
4
  export default LMApproval;
5
+ export type { ApprovalType, StatusType, IApprovalItemProps, IApprovalProps } from './type';
@@ -27,21 +27,20 @@ var LmCardTableContainer = /*#__PURE__*/_react.default.memo(function (_ref) {
27
27
  type = table.type;
28
28
  var tableContainerRef = (0, _react.useRef)(null); // 行数据计算
29
29
 
30
- var getRows = function getRows(columnCount) {
30
+ var getRows = (0, _react.useCallback)(function (columnCount) {
31
31
  var arr = [];
32
32
  var len = Math.ceil(dataSource.length / columnCount);
33
33
 
34
- for (var i = 0; i < len; i++) {
34
+ for (var i = 0; i < len; i += 1) {
35
35
  var startIndex = columnCount * i;
36
36
  var items = dataSource.slice(startIndex, startIndex + columnCount);
37
37
  arr.push(items);
38
38
  }
39
39
 
40
40
  return arr;
41
- }; // 获取容器盒子高宽
41
+ }, [dataSource]); // 获取容器盒子高宽
42
42
 
43
-
44
- var getResize = function getResize() {
43
+ var getResize = (0, _react.useCallback)(function () {
45
44
  var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
46
45
  blockSize = _ref2.blockSize,
47
46
  inlineSize = _ref2.inlineSize;
@@ -68,8 +67,7 @@ var LmCardTableContainer = /*#__PURE__*/_react.default.memo(function (_ref) {
68
67
  type: 'changeRows',
69
68
  rows: rows
70
69
  });
71
- }; // 获取表格高度
72
-
70
+ }, [getRows]); // 获取表格高度
73
71
 
74
72
  useIsomorphicLayoutEffect(function () {
75
73
  // 频繁变动可考虑增加防抖
@@ -86,7 +84,7 @@ var LmCardTableContainer = /*#__PURE__*/_react.default.memo(function (_ref) {
86
84
  return function () {
87
85
  return resizeObserver.disconnect();
88
86
  };
89
- }, [type]);
87
+ }, [type, getResize]);
90
88
  return /*#__PURE__*/_react.default.createElement("div", {
91
89
  ref: tableContainerRef,
92
90
  className: "lm_card_table_container"
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ require("antd/es/config-provider/style");
11
+
12
+ var _configProvider = _interopRequireDefault(require("antd/es/config-provider"));
13
+
14
+ var _default = _configProvider.default;
15
+ exports.default = _default;
@@ -0,0 +1,141 @@
1
+ .lm-radio {
2
+ font-size: 12px;
3
+ line-height: 20px;
4
+ color: var(--font-color);
5
+ }
6
+ .lm-radio > span:last-child {
7
+ padding: 0;
8
+ margin: 0 8px;
9
+ max-width: 96px;
10
+ overflow: hidden;
11
+ white-space: nowrap;
12
+ }
13
+ .lm-radio .ant-radio .ant-radio-inner {
14
+ border-color: var(--stroke-color);
15
+ }
16
+ .lm-radio .ant-radio:hover .ant-radio-inner {
17
+ border-color: var(--primary-color);
18
+ }
19
+ .lm-radio .ant-radio-disabled.ant-radio-checked .ant-radio-inner:after {
20
+ background-color: var(--tip-text-color);
21
+ }
22
+ .lm-radio .ant-radio-disabled .ant-radio-inner {
23
+ background-color: var(--background-color);
24
+ border-color: var(--stroke-color) !important;
25
+ }
26
+ .lm-radio .ant-radio-disabled + span {
27
+ color: var(--disabled-font-color);
28
+ }
29
+ .lm-radio-group .ant-radio-button-wrapper {
30
+ font-size: 12px;
31
+ height: 32px;
32
+ padding: 0px 12px;
33
+ color: var(--font-color);
34
+ vertical-align: middle;
35
+ }
36
+ .lm-radio-group .ant-radio-button-wrapper .anticon {
37
+ font-size: 16px;
38
+ vertical-align: middle;
39
+ line-height: 1;
40
+ }
41
+ .lm-radio-group .ant-radio-button-wrapper:hover {
42
+ color: var(--primary-color);
43
+ }
44
+ .lm-radio-group .ant-radio-button-wrapper > span:last-child {
45
+ display: inline-block;
46
+ font-size: 12px;
47
+ max-width: 96px;
48
+ overflow: hidden;
49
+ white-space: nowrap;
50
+ }
51
+ .lm-radio-group .ant-radio-button-wrapper-checked:not([class*=' ant-radio-button-wrapper-disabled']) .ant-radio-button-wrapper:first-child {
52
+ border-right-color: var(--primary-hover-color);
53
+ }
54
+ .lm-radio-group .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {
55
+ color: var(--primary-color);
56
+ border-color: var(--primary-color);
57
+ }
58
+ .lm-radio-group .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child {
59
+ border-color: var(--primary-color);
60
+ }
61
+ .lm-radio-group .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover {
62
+ color: var(--primary-hover-color);
63
+ border-color: var(--primary-hover-color);
64
+ }
65
+ .lm-radio-group.ant-radio-group-large .ant-radio-button-wrapper {
66
+ line-height: 38px;
67
+ height: 40px;
68
+ }
69
+ .lm-radio-group.ant-radio-group-large .ant-radio-button-wrapper > span:last-child {
70
+ line-height: 38px;
71
+ }
72
+ .lm-radio-group.ant-radio-group-small .ant-radio-button-wrapper {
73
+ line-height: 22px;
74
+ height: 24px;
75
+ padding: 0px 8px;
76
+ }
77
+ .lm-radio-group.ant-radio-group-small .ant-radio-button-wrapper > span:last-child {
78
+ line-height: 22px;
79
+ }
80
+ .lm-radio-group .ant-radio-wrapper {
81
+ font-size: 12px;
82
+ line-height: 20px;
83
+ color: var(--font-color);
84
+ }
85
+ .lm-radio-group .ant-radio-wrapper > span:last-child {
86
+ padding: 0;
87
+ margin: 0 8px;
88
+ max-width: 96px;
89
+ overflow: hidden;
90
+ white-space: nowrap;
91
+ }
92
+ .lm-radio-group .ant-radio-wrapper .ant-radio .ant-radio-inner {
93
+ border-color: var(--stroke-color);
94
+ }
95
+ .lm-radio-group .ant-radio-wrapper .ant-radio:hover .ant-radio-inner {
96
+ border-color: var(--primary-color);
97
+ }
98
+ .lm-radio-group .ant-radio-wrapper .ant-radio-disabled.ant-radio-checked .ant-radio-inner:after {
99
+ background-color: var(--tip-text-color);
100
+ }
101
+ .lm-radio-group .ant-radio-wrapper .ant-radio-disabled .ant-radio-inner {
102
+ background-color: var(--background-color);
103
+ border-color: var(--stroke-color) !important;
104
+ }
105
+ .lm-radio-group .ant-radio-wrapper .ant-radio-disabled + span {
106
+ color: var(--disabled-font-color);
107
+ }
108
+ .lm-radio-group .ant-radio-button-wrapper-disabled {
109
+ color: var(--disabled-font-color);
110
+ background-color: var(--disabled-bg-color);
111
+ border-color: var(--stroke-color);
112
+ }
113
+ .lm-radio-group .ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked {
114
+ color: #b8b8b8 !important;
115
+ background-color: var(--background-color-hover);
116
+ border-color: var(--stroke-color);
117
+ }
118
+ .lm-radio-group .ant-radio-button-wrapper-disabled:hover {
119
+ color: var(--disabled-font-color);
120
+ }
121
+ .lm-radio-group.lm-radio-group-row {
122
+ display: flex;
123
+ flex-direction: row;
124
+ }
125
+ .lm-radio-group.lm-radio-group-column {
126
+ display: flex;
127
+ flex-direction: column;
128
+ }
129
+ .lm-radio-group.lm-radio-group-column .lm-radio {
130
+ margin-bottom: 12px;
131
+ }
132
+ .lm-radio-group.lm-radio-group-column .lm-radio > span:last-child {
133
+ max-width: 216px;
134
+ overflow: hidden;
135
+ white-space: nowrap;
136
+ padding: 0;
137
+ margin: 0 8px;
138
+ }
139
+ .lm-radio-group.lm-radio-group-column .lm-radio:last-child {
140
+ margin-bottom: 0;
141
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ require("./index.css");
@@ -18,9 +18,18 @@ var LmImageViewer = function LmImageViewer(_a, ref) {
18
18
  var resetProps = __rest(_a, []);
19
19
 
20
20
  var defaultRef = useRef(null);
21
+ var defaultConfig = Object.assign({
22
+ visible: null,
23
+ urlList: [],
24
+ zIndex: 2001,
25
+ initialIndex: 0,
26
+ infinite: false,
27
+ hideOnClickModal: true,
28
+ close: function close() {}
29
+ }, resetProps);
21
30
  return /*#__PURE__*/React.createElement(LmImageViewerRoot, Object.assign({
22
31
  ref: ref || defaultRef
23
- }, resetProps));
32
+ }, defaultConfig));
24
33
  };
25
34
 
26
35
  export default /*#__PURE__*/forwardRef(LmImageViewer);
@@ -0,0 +1,4 @@
1
+ declare const Arrows: ({ instance }: {
2
+ instance: any;
3
+ }) => JSX.Element;
4
+ export default Arrows;
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import { IconFont } from 'linkmore-design';
3
+
4
+ var Arrows = function Arrows(_ref) {
5
+ var instance = _ref.instance;
6
+ var slickNext = instance.slickNext,
7
+ slickPrev = instance.slickPrev;
8
+
9
+ var handlePreNext = function handlePreNext(e, type) {
10
+ e.stopPropagation();
11
+
12
+ if (type === 'next') {
13
+ slickNext();
14
+ }
15
+
16
+ if (type === 'prev') {
17
+ slickPrev();
18
+ }
19
+ };
20
+
21
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
22
+ className: "arrow arrow_left",
23
+ onClick: function onClick(e) {
24
+ return handlePreNext(e, 'prev');
25
+ }
26
+ }, /*#__PURE__*/React.createElement(IconFont, {
27
+ type: "lmweb-left"
28
+ })), /*#__PURE__*/React.createElement("div", {
29
+ className: "arrow arrow_right",
30
+ onClick: function onClick(e) {
31
+ return handlePreNext(e, 'next');
32
+ }
33
+ }, /*#__PURE__*/React.createElement(IconFont, {
34
+ type: "lmweb-right"
35
+ })));
36
+ };
37
+
38
+ export default Arrows;
@@ -0,0 +1,4 @@
1
+ declare const BigImg: ({ instance }: {
2
+ instance: any;
3
+ }) => JSX.Element;
4
+ export default BigImg;
@@ -0,0 +1,71 @@
1
+ import React, { useMemo, useCallback } from 'react';
2
+ import { Carousel } from 'linkmore-design';
3
+
4
+ var ListItem = function ListItem(_ref) {
5
+ var key = _ref.key,
6
+ index = _ref.index,
7
+ item = _ref.item,
8
+ instance = _ref.instance;
9
+ var state = instance.state;
10
+ var transformProps = useMemo(function () {
11
+ if (index !== state.currentIndex) return {};
12
+ var _state$transform = state.transform,
13
+ scale = _state$transform.scale,
14
+ rotateZ = _state$transform.rotateZ;
15
+ return {
16
+ transform: "scale(".concat(scale, ") rotateZ(").concat(rotateZ, "deg)")
17
+ };
18
+ }, [state.currentIndex, state.transform]);
19
+ return /*#__PURE__*/React.createElement("div", {
20
+ className: "preview_item",
21
+ key: key
22
+ }, /*#__PURE__*/React.createElement("img", {
23
+ src: item,
24
+ alt: "",
25
+ style: transformProps
26
+ }));
27
+ };
28
+
29
+ var BigImg = function BigImg(_ref2) {
30
+ var instance = _ref2.instance;
31
+ var urlList = instance.urlList,
32
+ previewRef = instance.previewRef,
33
+ infinite = instance.infinite,
34
+ setTransform = instance.setTransform,
35
+ afterChange = instance.afterChange;
36
+ var onWheel = useCallback(function (e) {
37
+ // e?.preventDefault()
38
+ // e.stopPropagation()
39
+ if ((e === null || e === void 0 ? void 0 : e.deltaY) <= 0) {
40
+ setTransform('zoomIn');
41
+ } else {
42
+ setTransform('zoomOut');
43
+ }
44
+ }, [setTransform]);
45
+ var config = {
46
+ dots: false,
47
+ infinite: infinite,
48
+ // lazyLoad: true, // 懒加载
49
+ adaptiveHeight: false,
50
+ afterChange: afterChange // customPaging: (i) => <img src={urlList[i]} alt="" />,
51
+
52
+ };
53
+ return /*#__PURE__*/React.createElement("div", {
54
+ className: "preview_list",
55
+ onClick: function onClick(e) {
56
+ return e.stopPropagation();
57
+ },
58
+ onWheel: onWheel
59
+ }, /*#__PURE__*/React.createElement(Carousel, Object.assign({
60
+ ref: previewRef
61
+ }, config), urlList.map(function (v, idx) {
62
+ return /*#__PURE__*/React.createElement(ListItem, {
63
+ key: idx || v,
64
+ index: idx,
65
+ item: v,
66
+ instance: instance
67
+ });
68
+ })));
69
+ };
70
+
71
+ export default BigImg;
@@ -0,0 +1,4 @@
1
+ declare const Operate: ({ instance }: {
2
+ instance: any;
3
+ }) => JSX.Element;
4
+ export default Operate;
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import { IconFont } from 'linkmore-design';
3
+
4
+ var Operate = function Operate(_ref) {
5
+ var instance = _ref.instance;
6
+ var setTransform = instance.setTransform;
7
+
8
+ var handleTranform = function handleTranform(e, type) {
9
+ setTransform(type);
10
+ };
11
+
12
+ return /*#__PURE__*/React.createElement("div", {
13
+ className: "image_viewer_action",
14
+ onClick: function onClick(e) {
15
+ return e.stopPropagation();
16
+ }
17
+ }, /*#__PURE__*/React.createElement(IconFont, {
18
+ type: "lmweb-zoomin",
19
+ onClick: function onClick(e) {
20
+ return handleTranform(e, 'zoomIn');
21
+ }
22
+ }), /*#__PURE__*/React.createElement(IconFont, {
23
+ type: "lmweb-a-icon_m_search1",
24
+ onClick: function onClick(e) {
25
+ return handleTranform(e, 'zoomOut');
26
+ }
27
+ }), /*#__PURE__*/React.createElement(IconFont, {
28
+ type: "lmweb-undo",
29
+ onClick: function onClick(e) {
30
+ return handleTranform(e, 'rotateLeft');
31
+ }
32
+ }), /*#__PURE__*/React.createElement(IconFont, {
33
+ type: "lmweb-redo",
34
+ onClick: function onClick(e) {
35
+ return handleTranform(e, 'rotateRight');
36
+ }
37
+ }));
38
+ };
39
+
40
+ export default Operate;
@@ -0,0 +1,4 @@
1
+ declare const Thumb: ({ instance }: {
2
+ instance: any;
3
+ }) => JSX.Element;
4
+ export default Thumb;
@@ -0,0 +1,37 @@
1
+ import React, { useMemo } from 'react';
2
+ import cn from 'classnames';
3
+
4
+ var Thumb = function Thumb(_ref) {
5
+ var instance = _ref.instance;
6
+ var state = instance.state,
7
+ urlList = instance.urlList,
8
+ slickGoTo = instance.slickGoTo;
9
+ var activeIndex = useMemo(function () {
10
+ return state.currentIndex;
11
+ }, [state.currentIndex]);
12
+
13
+ var handleGoTo = function handleGoTo(e, number) {
14
+ e.preventDefault();
15
+ slickGoTo(number);
16
+ };
17
+
18
+ return /*#__PURE__*/React.createElement("div", {
19
+ className: "thumb_list",
20
+ onClick: function onClick(e) {
21
+ return e.stopPropagation();
22
+ }
23
+ }, urlList.map(function (v, idx) {
24
+ return /*#__PURE__*/React.createElement("div", {
25
+ className: cn('thumb_item', activeIndex === idx && 'active'),
26
+ key: idx || v,
27
+ onClick: function onClick(e) {
28
+ return handleGoTo(e, idx);
29
+ }
30
+ }, /*#__PURE__*/React.createElement("img", {
31
+ src: v,
32
+ alt: ""
33
+ }));
34
+ }));
35
+ };
36
+
37
+ export default Thumb;
@@ -0,0 +1,20 @@
1
+ declare const useCoreOptions: ({ state, dispatch, props, previewRef }: {
2
+ state: any;
3
+ dispatch: any;
4
+ props: any;
5
+ previewRef: any;
6
+ }) => {
7
+ CoreMethods: {
8
+ getVisible: () => any;
9
+ onClose: () => void;
10
+ setTransform: (type: any) => void;
11
+ afterChange: (currentIndex: any) => void;
12
+ slickGoTo: (currentIndex: any) => void;
13
+ slickNext: () => void;
14
+ slickPrev: () => void;
15
+ };
16
+ RefMethods: {
17
+ getState: () => any;
18
+ };
19
+ };
20
+ export default useCoreOptions;
@@ -0,0 +1,100 @@
1
+ import { useCallback } from 'react';
2
+
3
+ var useCoreOptions = function useCoreOptions(_ref) {
4
+ var state = _ref.state,
5
+ dispatch = _ref.dispatch,
6
+ props = _ref.props,
7
+ previewRef = _ref.previewRef;
8
+ // 获取显示状态
9
+ var getVisible = useCallback(function () {
10
+ return typeof props.visible === 'boolean' ? props.visible : state.visible;
11
+ }, [props, state.visible]); // 关闭事件
12
+
13
+ var onClose = useCallback(function () {
14
+ var _a;
15
+
16
+ (_a = props.close) === null || _a === void 0 ? void 0 : _a.call(props);
17
+ dispatch({
18
+ type: 'init'
19
+ });
20
+ dispatch({
21
+ type: 'changeVisible',
22
+ visible: false
23
+ });
24
+ }, []);
25
+ var setTransform = useCallback(function (type) {
26
+ var scale = state.transform.scale * 100;
27
+ var rotateZ = state.transform.rotateZ;
28
+
29
+ switch (type) {
30
+ case 'zoomIn':
31
+ scale += 25;
32
+ break;
33
+
34
+ case 'zoomOut':
35
+ scale < 30 ? scale : scale -= 25;
36
+ break;
37
+
38
+ case 'rotateLeft':
39
+ rotateZ -= 90;
40
+ break;
41
+
42
+ case 'rotateRight':
43
+ rotateZ += 90;
44
+ break;
45
+
46
+ default:
47
+ break;
48
+ }
49
+
50
+ dispatch({
51
+ type: 'changeTransform',
52
+ transform: {
53
+ rotateZ: rotateZ,
54
+ scale: scale / 100
55
+ }
56
+ });
57
+ }, [state.transform]); // 切换轮播后的回调
58
+
59
+ var afterChange = useCallback(function (currentIndex) {
60
+ console.log('currentIndex', currentIndex);
61
+ dispatch({
62
+ type: 'changeCurrent',
63
+ current: {
64
+ currentIndex: currentIndex
65
+ }
66
+ });
67
+ }, []); // 转到指定的轮播图, 直接跳转, 不展示动画
68
+
69
+ var slickGoTo = useCallback(function (currentIndex) {
70
+ previewRef.current.goTo(currentIndex, true);
71
+ }, []); // 转到下一张轮播图
72
+
73
+ var slickNext = useCallback(function () {
74
+ previewRef.current.next();
75
+ }, []); // 转到上一张轮播图
76
+
77
+ var slickPrev = useCallback(function () {
78
+ previewRef.current.prev();
79
+ }, []);
80
+ var CoreMethods = {
81
+ getVisible: getVisible,
82
+ onClose: onClose,
83
+ setTransform: setTransform,
84
+ afterChange: afterChange,
85
+ slickGoTo: slickGoTo,
86
+ slickNext: slickNext,
87
+ slickPrev: slickPrev
88
+ };
89
+ var RefMethods = {
90
+ getState: function getState() {
91
+ return state;
92
+ }
93
+ };
94
+ return {
95
+ CoreMethods: CoreMethods,
96
+ RefMethods: RefMethods
97
+ };
98
+ };
99
+
100
+ export default useCoreOptions;