linkmore-design 1.0.73 → 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 (77) hide show
  1. package/dist/ConfigProvider/demos/basic.d.ts +2 -0
  2. package/dist/ConfigProvider/index.d.ts +2 -0
  3. package/dist/ConfigProvider/style/index.d.ts +1 -0
  4. package/dist/ImageViewer/components/Arrows.d.ts +4 -0
  5. package/dist/ImageViewer/components/Carousel.d.ts +4 -0
  6. package/dist/ImageViewer/components/Operate.d.ts +4 -0
  7. package/dist/ImageViewer/components/Thumb.d.ts +4 -0
  8. package/dist/ImageViewer/fns/index.d.ts +20 -0
  9. package/dist/ImageViewer/wrapeer/reducer.d.ts +10 -0
  10. package/dist/Locale/index.d.ts +6 -0
  11. package/dist/Locale/style/index.d.ts +1 -0
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.umd.js +115051 -115027
  14. package/dist/index.umd.min.js +20 -20
  15. package/es/ConfigProvider/index.js +15 -0
  16. package/es/ConfigProvider/style/index.css +141 -0
  17. package/es/ConfigProvider/style/index.js +3 -0
  18. package/es/ImageViewer/LmImageViewer.js +7 -8
  19. package/es/ImageViewer/components/Arrows.d.ts +4 -0
  20. package/es/ImageViewer/components/Arrows.js +38 -0
  21. package/es/ImageViewer/components/Carousel.d.ts +4 -0
  22. package/es/ImageViewer/components/Carousel.js +71 -0
  23. package/es/ImageViewer/components/Operate.d.ts +4 -0
  24. package/es/ImageViewer/components/Operate.js +40 -0
  25. package/es/ImageViewer/components/Thumb.d.ts +4 -0
  26. package/es/ImageViewer/components/Thumb.js +37 -0
  27. package/es/ImageViewer/fns/index.d.ts +20 -0
  28. package/es/ImageViewer/fns/index.js +100 -0
  29. package/es/ImageViewer/style/index.css +104 -2
  30. package/es/ImageViewer/wrapeer/Container.js +22 -4
  31. package/es/ImageViewer/wrapeer/Root.js +30 -3
  32. package/es/ImageViewer/wrapeer/Wrapper.js +16 -2
  33. package/es/ImageViewer/wrapeer/reducer.d.ts +10 -0
  34. package/es/ImageViewer/wrapeer/reducer.js +52 -0
  35. package/es/LmFilter/Controls/index.js +6 -5
  36. package/es/LmFilter/customFilter/index.js +1 -1
  37. package/es/LmFilter/customFilter/saveModal.js +1 -1
  38. package/es/LmFilter/customFilter/valueDrawer.js +7 -10
  39. package/es/Locale/index.d.ts +6 -0
  40. package/es/Locale/index.js +9 -0
  41. package/es/Locale/style/index.css +141 -0
  42. package/es/Locale/style/index.js +3 -0
  43. package/es/Pagination/index.js +18 -5
  44. package/es/index.d.ts +2 -0
  45. package/es/index.js +2 -0
  46. package/lib/ConfigProvider/index.js +15 -0
  47. package/lib/ConfigProvider/style/index.css +141 -0
  48. package/lib/ConfigProvider/style/index.js +3 -0
  49. package/lib/ImageViewer/LmImageViewer.js +7 -8
  50. package/lib/ImageViewer/components/Arrows.d.ts +4 -0
  51. package/lib/ImageViewer/components/Arrows.js +49 -0
  52. package/lib/ImageViewer/components/Carousel.d.ts +4 -0
  53. package/lib/ImageViewer/components/Carousel.js +82 -0
  54. package/lib/ImageViewer/components/Operate.d.ts +4 -0
  55. package/lib/ImageViewer/components/Operate.js +51 -0
  56. package/lib/ImageViewer/components/Thumb.d.ts +4 -0
  57. package/lib/ImageViewer/components/Thumb.js +50 -0
  58. package/lib/ImageViewer/fns/index.d.ts +20 -0
  59. package/lib/ImageViewer/fns/index.js +108 -0
  60. package/lib/ImageViewer/style/index.css +104 -2
  61. package/lib/ImageViewer/wrapeer/Container.js +26 -4
  62. package/lib/ImageViewer/wrapeer/Root.js +34 -4
  63. package/lib/ImageViewer/wrapeer/Wrapper.js +16 -2
  64. package/lib/ImageViewer/wrapeer/reducer.d.ts +10 -0
  65. package/lib/ImageViewer/wrapeer/reducer.js +64 -0
  66. package/lib/LmFilter/Controls/index.js +6 -5
  67. package/lib/LmFilter/customFilter/index.js +1 -1
  68. package/lib/LmFilter/customFilter/saveModal.js +1 -1
  69. package/lib/LmFilter/customFilter/valueDrawer.js +7 -10
  70. package/lib/Locale/index.d.ts +6 -0
  71. package/lib/Locale/index.js +22 -0
  72. package/lib/Locale/style/index.css +141 -0
  73. package/lib/Locale/style/index.js +3 -0
  74. package/lib/Pagination/index.js +20 -5
  75. package/lib/index.d.ts +2 -0
  76. package/lib/index.js +16 -0
  77. package/package.json +1 -1
@@ -0,0 +1,49 @@
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
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _linkmoreDesign = require("linkmore-design");
13
+
14
+ var Arrows = function Arrows(_ref) {
15
+ var instance = _ref.instance;
16
+ var slickNext = instance.slickNext,
17
+ slickPrev = instance.slickPrev;
18
+
19
+ var handlePreNext = function handlePreNext(e, type) {
20
+ e.stopPropagation();
21
+
22
+ if (type === 'next') {
23
+ slickNext();
24
+ }
25
+
26
+ if (type === 'prev') {
27
+ slickPrev();
28
+ }
29
+ };
30
+
31
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
32
+ className: "arrow arrow_left",
33
+ onClick: function onClick(e) {
34
+ return handlePreNext(e, 'prev');
35
+ }
36
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
37
+ type: "lmweb-left"
38
+ })), /*#__PURE__*/_react.default.createElement("div", {
39
+ className: "arrow arrow_right",
40
+ onClick: function onClick(e) {
41
+ return handlePreNext(e, 'next');
42
+ }
43
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
44
+ type: "lmweb-right"
45
+ })));
46
+ };
47
+
48
+ var _default = Arrows;
49
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ declare const BigImg: ({ instance }: {
2
+ instance: any;
3
+ }) => JSX.Element;
4
+ export default BigImg;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _linkmoreDesign = require("linkmore-design");
13
+
14
+ var ListItem = function ListItem(_ref) {
15
+ var key = _ref.key,
16
+ index = _ref.index,
17
+ item = _ref.item,
18
+ instance = _ref.instance;
19
+ var state = instance.state;
20
+ var transformProps = (0, _react.useMemo)(function () {
21
+ if (index !== state.currentIndex) return {};
22
+ var _state$transform = state.transform,
23
+ scale = _state$transform.scale,
24
+ rotateZ = _state$transform.rotateZ;
25
+ return {
26
+ transform: "scale(".concat(scale, ") rotateZ(").concat(rotateZ, "deg)")
27
+ };
28
+ }, [state.currentIndex, state.transform]);
29
+ return /*#__PURE__*/_react.default.createElement("div", {
30
+ className: "preview_item",
31
+ key: key
32
+ }, /*#__PURE__*/_react.default.createElement("img", {
33
+ src: item,
34
+ alt: "",
35
+ style: transformProps
36
+ }));
37
+ };
38
+
39
+ var BigImg = function BigImg(_ref2) {
40
+ var instance = _ref2.instance;
41
+ var urlList = instance.urlList,
42
+ previewRef = instance.previewRef,
43
+ infinite = instance.infinite,
44
+ setTransform = instance.setTransform,
45
+ afterChange = instance.afterChange;
46
+ var onWheel = (0, _react.useCallback)(function (e) {
47
+ // e?.preventDefault()
48
+ // e.stopPropagation()
49
+ if ((e === null || e === void 0 ? void 0 : e.deltaY) <= 0) {
50
+ setTransform('zoomIn');
51
+ } else {
52
+ setTransform('zoomOut');
53
+ }
54
+ }, [setTransform]);
55
+ var config = {
56
+ dots: false,
57
+ infinite: infinite,
58
+ // lazyLoad: true, // 懒加载
59
+ adaptiveHeight: false,
60
+ afterChange: afterChange // customPaging: (i) => <img src={urlList[i]} alt="" />,
61
+
62
+ };
63
+ return /*#__PURE__*/_react.default.createElement("div", {
64
+ className: "preview_list",
65
+ onClick: function onClick(e) {
66
+ return e.stopPropagation();
67
+ },
68
+ onWheel: onWheel
69
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Carousel, Object.assign({
70
+ ref: previewRef
71
+ }, config), urlList.map(function (v, idx) {
72
+ return /*#__PURE__*/_react.default.createElement(ListItem, {
73
+ key: idx || v,
74
+ index: idx,
75
+ item: v,
76
+ instance: instance
77
+ });
78
+ })));
79
+ };
80
+
81
+ var _default = BigImg;
82
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ declare const Operate: ({ instance }: {
2
+ instance: any;
3
+ }) => JSX.Element;
4
+ export default Operate;
@@ -0,0 +1,51 @@
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
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _linkmoreDesign = require("linkmore-design");
13
+
14
+ var Operate = function Operate(_ref) {
15
+ var instance = _ref.instance;
16
+ var setTransform = instance.setTransform;
17
+
18
+ var handleTranform = function handleTranform(e, type) {
19
+ setTransform(type);
20
+ };
21
+
22
+ return /*#__PURE__*/_react.default.createElement("div", {
23
+ className: "image_viewer_action",
24
+ onClick: function onClick(e) {
25
+ return e.stopPropagation();
26
+ }
27
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
28
+ type: "lmweb-zoomin",
29
+ onClick: function onClick(e) {
30
+ return handleTranform(e, 'zoomIn');
31
+ }
32
+ }), /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
33
+ type: "lmweb-a-icon_m_search1",
34
+ onClick: function onClick(e) {
35
+ return handleTranform(e, 'zoomOut');
36
+ }
37
+ }), /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
38
+ type: "lmweb-undo",
39
+ onClick: function onClick(e) {
40
+ return handleTranform(e, 'rotateLeft');
41
+ }
42
+ }), /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
43
+ type: "lmweb-redo",
44
+ onClick: function onClick(e) {
45
+ return handleTranform(e, 'rotateRight');
46
+ }
47
+ }));
48
+ };
49
+
50
+ var _default = Operate;
51
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ declare const Thumb: ({ instance }: {
2
+ instance: any;
3
+ }) => JSX.Element;
4
+ export default Thumb;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
16
+ var Thumb = function Thumb(_ref) {
17
+ var instance = _ref.instance;
18
+ var state = instance.state,
19
+ urlList = instance.urlList,
20
+ slickGoTo = instance.slickGoTo;
21
+ var activeIndex = (0, _react.useMemo)(function () {
22
+ return state.currentIndex;
23
+ }, [state.currentIndex]);
24
+
25
+ var handleGoTo = function handleGoTo(e, number) {
26
+ e.preventDefault();
27
+ slickGoTo(number);
28
+ };
29
+
30
+ return /*#__PURE__*/_react.default.createElement("div", {
31
+ className: "thumb_list",
32
+ onClick: function onClick(e) {
33
+ return e.stopPropagation();
34
+ }
35
+ }, urlList.map(function (v, idx) {
36
+ return /*#__PURE__*/_react.default.createElement("div", {
37
+ className: (0, _classnames.default)('thumb_item', activeIndex === idx && 'active'),
38
+ key: idx || v,
39
+ onClick: function onClick(e) {
40
+ return handleGoTo(e, idx);
41
+ }
42
+ }, /*#__PURE__*/_react.default.createElement("img", {
43
+ src: v,
44
+ alt: ""
45
+ }));
46
+ }));
47
+ };
48
+
49
+ var _default = Thumb;
50
+ exports.default = _default;
@@ -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,108 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var useCoreOptions = function useCoreOptions(_ref) {
11
+ var state = _ref.state,
12
+ dispatch = _ref.dispatch,
13
+ props = _ref.props,
14
+ previewRef = _ref.previewRef;
15
+ // 获取显示状态
16
+ var getVisible = (0, _react.useCallback)(function () {
17
+ return typeof props.visible === 'boolean' ? props.visible : state.visible;
18
+ }, [props, state.visible]); // 关闭事件
19
+
20
+ var onClose = (0, _react.useCallback)(function () {
21
+ var _a;
22
+
23
+ (_a = props.close) === null || _a === void 0 ? void 0 : _a.call(props);
24
+ dispatch({
25
+ type: 'init'
26
+ });
27
+ dispatch({
28
+ type: 'changeVisible',
29
+ visible: false
30
+ });
31
+ }, []);
32
+ var setTransform = (0, _react.useCallback)(function (type) {
33
+ var scale = state.transform.scale * 100;
34
+ var rotateZ = state.transform.rotateZ;
35
+
36
+ switch (type) {
37
+ case 'zoomIn':
38
+ scale += 25;
39
+ break;
40
+
41
+ case 'zoomOut':
42
+ scale < 30 ? scale : scale -= 25;
43
+ break;
44
+
45
+ case 'rotateLeft':
46
+ rotateZ -= 90;
47
+ break;
48
+
49
+ case 'rotateRight':
50
+ rotateZ += 90;
51
+ break;
52
+
53
+ default:
54
+ break;
55
+ }
56
+
57
+ dispatch({
58
+ type: 'changeTransform',
59
+ transform: {
60
+ rotateZ: rotateZ,
61
+ scale: scale / 100
62
+ }
63
+ });
64
+ }, [state.transform]); // 切换轮播后的回调
65
+
66
+ var afterChange = (0, _react.useCallback)(function (currentIndex) {
67
+ console.log('currentIndex', currentIndex);
68
+ dispatch({
69
+ type: 'changeCurrent',
70
+ current: {
71
+ currentIndex: currentIndex
72
+ }
73
+ });
74
+ }, []); // 转到指定的轮播图, 直接跳转, 不展示动画
75
+
76
+ var slickGoTo = (0, _react.useCallback)(function (currentIndex) {
77
+ previewRef.current.goTo(currentIndex, true);
78
+ }, []); // 转到下一张轮播图
79
+
80
+ var slickNext = (0, _react.useCallback)(function () {
81
+ previewRef.current.next();
82
+ }, []); // 转到上一张轮播图
83
+
84
+ var slickPrev = (0, _react.useCallback)(function () {
85
+ previewRef.current.prev();
86
+ }, []);
87
+ var CoreMethods = {
88
+ getVisible: getVisible,
89
+ onClose: onClose,
90
+ setTransform: setTransform,
91
+ afterChange: afterChange,
92
+ slickGoTo: slickGoTo,
93
+ slickNext: slickNext,
94
+ slickPrev: slickPrev
95
+ };
96
+ var RefMethods = {
97
+ getState: function getState() {
98
+ return state;
99
+ }
100
+ };
101
+ return {
102
+ CoreMethods: CoreMethods,
103
+ RefMethods: RefMethods
104
+ };
105
+ };
106
+
107
+ var _default = useCoreOptions;
108
+ exports.default = _default;
@@ -1,5 +1,107 @@
1
- .lm_image_viwer_wrapper {
1
+ .lm_image_viewer_wrapper {
2
2
  position: fixed;
3
3
  inset: 0;
4
- z-index: 1;
4
+ z-index: 1001;
5
+ }
6
+ .lm_image_viewer_wrapper .lm_image_viewer_mask {
7
+ position: absolute;
8
+ inset: 0;
9
+ background-color: rgba(0, 0, 0, 0.5);
10
+ }
11
+ .lm_image_viewer_wrapper .lm_image_viewer_container {
12
+ position: relative;
13
+ z-index: 2;
14
+ display: flex;
15
+ flex-flow: column;
16
+ align-items: center;
17
+ gap: var(--gap);
18
+ height: 100vh;
19
+ padding: 50px 0;
20
+ }
21
+ .lm_image_viewer_wrapper .lm_image_viewer_container .preview_list {
22
+ flex: 1;
23
+ width: 51%;
24
+ max-height: 100%;
25
+ overflow: hidden;
26
+ touch-action: none;
27
+ }
28
+ .lm_image_viewer_wrapper .lm_image_viewer_container .preview_list div {
29
+ height: 100%;
30
+ }
31
+ .lm_image_viewer_wrapper .lm_image_viewer_container .preview_list .preview_item {
32
+ text-align: center;
33
+ border-radius: 2px;
34
+ overflow: hidden;
35
+ }
36
+ .lm_image_viewer_wrapper .lm_image_viewer_container .preview_list .preview_item img {
37
+ display: inline-block;
38
+ width: 100%;
39
+ height: 100%;
40
+ object-fit: contain;
41
+ transition: 0.3s;
42
+ }
43
+ .lm_image_viewer_wrapper .lm_image_viewer_container .thumb_list {
44
+ display: flex;
45
+ width: 51%;
46
+ gap: var(--gap);
47
+ overflow-x: auto;
48
+ }
49
+ .lm_image_viewer_wrapper .lm_image_viewer_container .thumb_list .thumb_item {
50
+ text-align: center;
51
+ border-radius: 2px;
52
+ border: 2px solid transparent;
53
+ transition: 0.3s;
54
+ }
55
+ .lm_image_viewer_wrapper .lm_image_viewer_container .thumb_list .thumb_item img {
56
+ display: inline-block;
57
+ width: 94px;
58
+ height: 94px;
59
+ object-fit: cover;
60
+ }
61
+ .lm_image_viewer_wrapper .lm_image_viewer_container .thumb_list .thumb_item.active {
62
+ border-color: var(--primary-color);
63
+ }
64
+ .lm_image_viewer_wrapper .lm_image_viewer_container .image_viewer_action {
65
+ position: absolute;
66
+ left: 50%;
67
+ transform: translateX(-50%);
68
+ bottom: 50px;
69
+ display: flex;
70
+ align-items: center;
71
+ justify-content: space-between;
72
+ background-color: #fff;
73
+ border-radius: 100px;
74
+ gap: 24px;
75
+ font-size: 24px;
76
+ padding: 8px 12px;
77
+ }
78
+ .lm_image_viewer_wrapper .lm_image_viewer_container .image_viewer_action .anticon {
79
+ transition: 0.3s;
80
+ cursor: pointer;
81
+ }
82
+ .lm_image_viewer_wrapper .lm_image_viewer_container .image_viewer_action .anticon:hover {
83
+ color: var(--primary-color);
84
+ }
85
+ .lm_image_viewer_wrapper .lm_image_viewer_container .arrow {
86
+ position: absolute;
87
+ top: 50%;
88
+ transform: translateY(-50%);
89
+ display: flex;
90
+ align-items: center;
91
+ justify-content: center;
92
+ font-size: 32px;
93
+ height: 48px;
94
+ color: var(--color-contrast);
95
+ background-color: var(--text-color);
96
+ transition: 0.3s;
97
+ cursor: pointer;
98
+ }
99
+ .lm_image_viewer_wrapper .lm_image_viewer_container .arrow.arrow_left {
100
+ left: 40px;
101
+ }
102
+ .lm_image_viewer_wrapper .lm_image_viewer_container .arrow.arrow_right {
103
+ right: 40px;
104
+ }
105
+ .lm_image_viewer_wrapper .lm_image_viewer_container .arrow:hover {
106
+ color: var(--primary-color);
5
107
  }
@@ -9,14 +9,36 @@ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
+ var _Carousel = _interopRequireDefault(require("../components/Carousel"));
13
+
14
+ var _Thumb = _interopRequireDefault(require("../components/Thumb"));
15
+
16
+ var _Operate = _interopRequireDefault(require("../components/Operate"));
17
+
18
+ var _Arrows = _interopRequireDefault(require("../components/Arrows"));
19
+
12
20
  // 根文件 => 参数聚合
13
21
  var LmImageViewerContainer = function LmImageViewerContainer(_ref) {
14
22
  var instance = _ref.instance;
15
- var viisble = instance.viisble;
16
- if (!viisble) return null;
23
+ var onClose = instance.onClose,
24
+ hideOnClickModal = instance.hideOnClickModal;
25
+
26
+ var handleClose = function handleClose() {
27
+ hideOnClickModal && onClose();
28
+ };
29
+
17
30
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
18
- className: "lm_image_viewer_container"
19
- }, "container"));
31
+ className: "lm_image_viewer_container",
32
+ onClick: handleClose
33
+ }, /*#__PURE__*/_react.default.createElement(_Carousel.default, {
34
+ instance: instance
35
+ }), /*#__PURE__*/_react.default.createElement(_Thumb.default, {
36
+ instance: instance
37
+ }), /*#__PURE__*/_react.default.createElement(_Operate.default, {
38
+ instance: instance
39
+ }), /*#__PURE__*/_react.default.createElement(_Arrows.default, {
40
+ instance: instance
41
+ })));
20
42
  };
21
43
 
22
44
  var _default = LmImageViewerContainer;
@@ -1,22 +1,52 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
4
 
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
  exports.default = void 0;
11
11
 
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
12
14
  var _react = _interopRequireWildcard(require("react"));
13
15
 
16
+ var _reducer = _interopRequireWildcard(require("./reducer"));
17
+
18
+ var _fns = _interopRequireDefault(require("../fns"));
19
+
14
20
  var _Wrapper = _interopRequireDefault(require("./Wrapper"));
15
21
 
16
22
  // 根文件 => 参数聚合
17
23
  var LmImageViewerRoot = function LmImageViewerRoot(props, ref) {
18
- // 组件实例
19
- var instance = Object.assign({}, props); // 向外暴露出的方法
24
+ var previewRef = (0, _react.useRef)(null);
25
+ var initialState = (0, _react.useMemo)(function () {
26
+ return (0, _reducer.initialState)(props);
27
+ }, []);
28
+
29
+ var _useReducer = (0, _react.useReducer)(_reducer.default, initialState),
30
+ _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
31
+ state = _useReducer2[0],
32
+ dispatch = _useReducer2[1]; // 获取核心Methods
33
+
34
+
35
+ var _useCoreOptions = (0, _fns.default)({
36
+ state: state,
37
+ dispatch: dispatch,
38
+ props: props,
39
+ previewRef: previewRef
40
+ }),
41
+ CoreMethods = _useCoreOptions.CoreMethods,
42
+ RefMethods = _useCoreOptions.RefMethods; // 组件实例
43
+
44
+
45
+ var instance = Object.assign(Object.assign(Object.assign(Object.assign({}, props), CoreMethods), RefMethods), {
46
+ previewRef: previewRef,
47
+ state: state,
48
+ dispatch: dispatch
49
+ }); // 向外暴露出的方法
20
50
 
21
51
  (0, _react.useImperativeHandle)(ref, function () {
22
52
  return {};
@@ -14,9 +14,23 @@ var _Container = _interopRequireDefault(require("./Container"));
14
14
  // 根文件 => 参数聚合
15
15
  var LmImageViewerWrapper = function LmImageViewerWrapper(_ref) {
16
16
  var instance = _ref.instance;
17
+ var getVisible = instance.getVisible,
18
+ zIndex = instance.zIndex;
19
+
20
+ var handleClose = function handleClose() {
21
+ console.log('handleClose');
22
+ };
23
+
24
+ if (!getVisible()) return null;
17
25
  return /*#__PURE__*/_react.default.createElement("div", {
18
- className: "lm_image_viwer_wrapper"
19
- }, /*#__PURE__*/_react.default.createElement(_Container.default, {
26
+ className: "lm_image_viewer_wrapper",
27
+ style: {
28
+ zIndex: zIndex
29
+ }
30
+ }, /*#__PURE__*/_react.default.createElement("div", {
31
+ className: "lm_image_viewer_mask",
32
+ onClick: handleClose
33
+ }), /*#__PURE__*/_react.default.createElement(_Container.default, {
20
34
  instance: instance
21
35
  }));
22
36
  };
@@ -0,0 +1,10 @@
1
+ export declare const reducer: (state: any, action: any) => any;
2
+ export declare const initialState: (props: any) => {
3
+ currentIndex: any;
4
+ currentUrl: string;
5
+ transform: {
6
+ scale: number;
7
+ rotateZ: number;
8
+ };
9
+ };
10
+ export default reducer;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.reducer = exports.initialState = exports.default = void 0;
7
+ // 初始化状态值
8
+ var defaultState = {
9
+ currentIndex: 0,
10
+ currentUrl: '',
11
+ transform: {
12
+ scale: 1,
13
+ rotateZ: 0 // Z轴旋转方向
14
+
15
+ } // 当前选中的图片变换
16
+
17
+ }; // 状态管理操作
18
+
19
+ var reducer = function reducer(state, action) {
20
+ var transform = action.transform,
21
+ current = action.current,
22
+ visible = action.visible;
23
+
24
+ switch (action.type) {
25
+ case 'changeVisible':
26
+ // 控制显示隐藏
27
+ return Object.assign(Object.assign({}, state), {
28
+ visible: visible
29
+ });
30
+
31
+ case 'changeTransform':
32
+ // 改变转换
33
+ return Object.assign(Object.assign({}, state), {
34
+ transform: Object.assign(Object.assign({}, state.transform), transform)
35
+ });
36
+
37
+ case 'changeCurrent':
38
+ // 改变当前选中的图片
39
+ return Object.assign(Object.assign(Object.assign({}, state), current), {
40
+ transform: defaultState.transform
41
+ });
42
+
43
+ case 'init':
44
+ // 改变当前选中的图片
45
+ return Object.assign(Object.assign({}, state), defaultState);
46
+
47
+ default:
48
+ throw new Error();
49
+ }
50
+ }; // 仅在初始化时触发一次
51
+
52
+
53
+ exports.reducer = reducer;
54
+
55
+ var initialState = function initialState(props) {
56
+ var initialIndex = props.initialIndex;
57
+ return Object.assign(Object.assign({}, defaultState), {
58
+ currentIndex: initialIndex
59
+ });
60
+ };
61
+
62
+ exports.initialState = initialState;
63
+ var _default = reducer;
64
+ exports.default = _default;