@douyinfe/semi-ui 2.19.2-alpha.0 → 2.20.0-beta.1

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 (139) hide show
  1. package/dist/css/semi.css +243 -968
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +3449 -452
  4. package/dist/umd/semi-ui.js.map +1 -1
  5. package/dist/umd/semi-ui.min.js +1 -1
  6. package/dist/umd/semi-ui.min.js.map +1 -1
  7. package/lib/cjs/button/Button.d.ts +1 -1
  8. package/lib/cjs/button/index.d.ts +1 -1
  9. package/lib/cjs/carousel/CarouselIndicator.d.ts +1 -1
  10. package/lib/cjs/carousel/index.d.ts +1 -1
  11. package/lib/cjs/datePicker/dateInput.d.ts +1 -1
  12. package/lib/cjs/datePicker/datePicker.d.ts +1 -1
  13. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -1
  14. package/lib/cjs/image/image.d.ts +48 -0
  15. package/lib/cjs/image/image.js +248 -0
  16. package/lib/cjs/image/index.d.ts +6 -0
  17. package/lib/cjs/image/index.js +29 -0
  18. package/lib/cjs/image/interface.d.ts +178 -0
  19. package/lib/cjs/image/interface.js +5 -0
  20. package/lib/cjs/image/preview.d.ts +81 -0
  21. package/lib/cjs/image/preview.js +249 -0
  22. package/lib/cjs/image/previewContext.d.ts +12 -0
  23. package/lib/cjs/image/previewContext.js +11 -0
  24. package/lib/cjs/image/previewFooter.d.ts +62 -0
  25. package/lib/cjs/image/previewFooter.js +337 -0
  26. package/lib/cjs/image/previewHeader.d.ts +4 -0
  27. package/lib/cjs/image/previewHeader.js +57 -0
  28. package/lib/cjs/image/previewImage.d.ts +49 -0
  29. package/lib/cjs/image/previewImage.js +253 -0
  30. package/lib/cjs/image/previewInner.d.ts +87 -0
  31. package/lib/cjs/image/previewInner.js +443 -0
  32. package/lib/cjs/index.d.ts +2 -0
  33. package/lib/cjs/index.js +14 -0
  34. package/lib/cjs/locale/interface.d.ts +13 -0
  35. package/lib/cjs/locale/source/ar.js +13 -0
  36. package/lib/cjs/locale/source/de.js +13 -0
  37. package/lib/cjs/locale/source/en_GB.js +13 -0
  38. package/lib/cjs/locale/source/en_US.js +13 -0
  39. package/lib/cjs/locale/source/es.js +13 -0
  40. package/lib/cjs/locale/source/fr.js +13 -0
  41. package/lib/cjs/locale/source/id_ID.js +13 -0
  42. package/lib/cjs/locale/source/it.js +13 -0
  43. package/lib/cjs/locale/source/ja_JP.js +13 -0
  44. package/lib/cjs/locale/source/ko_KR.js +13 -0
  45. package/lib/cjs/locale/source/ms_MY.js +13 -0
  46. package/lib/cjs/locale/source/pt_BR.js +13 -0
  47. package/lib/cjs/locale/source/ru_RU.js +13 -0
  48. package/lib/cjs/locale/source/th_TH.js +13 -0
  49. package/lib/cjs/locale/source/tr_TR.js +13 -0
  50. package/lib/cjs/locale/source/vi_VN.js +13 -0
  51. package/lib/cjs/locale/source/zh_CN.js +13 -0
  52. package/lib/cjs/locale/source/zh_TW.js +13 -0
  53. package/lib/cjs/progress/index.d.ts +10 -2
  54. package/lib/cjs/progress/index.js +37 -8
  55. package/lib/cjs/radio/radio.d.ts +1 -1
  56. package/lib/cjs/radio/radioGroup.d.ts +1 -1
  57. package/lib/cjs/skeleton/item.d.ts +1 -0
  58. package/lib/cjs/skeleton/item.js +10 -4
  59. package/lib/cjs/tag/index.js +5 -1
  60. package/lib/cjs/tag/interface.d.ts +2 -0
  61. package/lib/cjs/timePicker/TimePicker.d.ts +2 -2
  62. package/lib/cjs/timePicker/TimeShape.d.ts +1 -1
  63. package/lib/cjs/timePicker/index.d.ts +2 -2
  64. package/lib/cjs/toast/index.d.ts +9 -0
  65. package/lib/cjs/toast/index.js +50 -10
  66. package/lib/cjs/toast/toast.d.ts +1 -0
  67. package/lib/cjs/toast/toast.js +4 -0
  68. package/lib/cjs/typography/base.d.ts +1 -1
  69. package/lib/cjs/typography/paragraph.d.ts +1 -1
  70. package/lib/cjs/typography/text.d.ts +1 -1
  71. package/lib/cjs/typography/title.d.ts +2 -2
  72. package/lib/cjs/upload/index.d.ts +1 -1
  73. package/lib/es/button/Button.d.ts +1 -1
  74. package/lib/es/button/index.d.ts +1 -1
  75. package/lib/es/carousel/CarouselIndicator.d.ts +1 -1
  76. package/lib/es/carousel/index.d.ts +1 -1
  77. package/lib/es/datePicker/dateInput.d.ts +1 -1
  78. package/lib/es/datePicker/datePicker.d.ts +1 -1
  79. package/lib/es/datePicker/monthsGrid.d.ts +1 -1
  80. package/lib/es/image/image.d.ts +48 -0
  81. package/lib/es/image/image.js +224 -0
  82. package/lib/es/image/index.d.ts +6 -0
  83. package/lib/es/image/index.js +5 -0
  84. package/lib/es/image/interface.d.ts +178 -0
  85. package/lib/es/image/interface.js +1 -0
  86. package/lib/es/image/preview.d.ts +81 -0
  87. package/lib/es/image/preview.js +229 -0
  88. package/lib/es/image/previewContext.d.ts +12 -0
  89. package/lib/es/image/previewContext.js +2 -0
  90. package/lib/es/image/previewFooter.d.ts +62 -0
  91. package/lib/es/image/previewFooter.js +301 -0
  92. package/lib/es/image/previewHeader.d.ts +4 -0
  93. package/lib/es/image/previewHeader.js +38 -0
  94. package/lib/es/image/previewImage.d.ts +49 -0
  95. package/lib/es/image/previewImage.js +235 -0
  96. package/lib/es/image/previewInner.d.ts +87 -0
  97. package/lib/es/image/previewInner.js +419 -0
  98. package/lib/es/index.d.ts +2 -0
  99. package/lib/es/index.js +3 -1
  100. package/lib/es/locale/interface.d.ts +13 -0
  101. package/lib/es/locale/source/ar.js +13 -0
  102. package/lib/es/locale/source/de.js +13 -0
  103. package/lib/es/locale/source/en_GB.js +13 -0
  104. package/lib/es/locale/source/en_US.js +13 -0
  105. package/lib/es/locale/source/es.js +13 -0
  106. package/lib/es/locale/source/fr.js +13 -0
  107. package/lib/es/locale/source/id_ID.js +13 -0
  108. package/lib/es/locale/source/it.js +13 -0
  109. package/lib/es/locale/source/ja_JP.js +13 -0
  110. package/lib/es/locale/source/ko_KR.js +13 -0
  111. package/lib/es/locale/source/ms_MY.js +13 -0
  112. package/lib/es/locale/source/pt_BR.js +13 -0
  113. package/lib/es/locale/source/ru_RU.js +13 -0
  114. package/lib/es/locale/source/th_TH.js +13 -0
  115. package/lib/es/locale/source/tr_TR.js +13 -0
  116. package/lib/es/locale/source/vi_VN.js +13 -0
  117. package/lib/es/locale/source/zh_CN.js +13 -0
  118. package/lib/es/locale/source/zh_TW.js +13 -0
  119. package/lib/es/progress/index.d.ts +10 -2
  120. package/lib/es/progress/index.js +36 -8
  121. package/lib/es/radio/radio.d.ts +1 -1
  122. package/lib/es/radio/radioGroup.d.ts +1 -1
  123. package/lib/es/skeleton/item.d.ts +1 -0
  124. package/lib/es/skeleton/item.js +10 -4
  125. package/lib/es/tag/index.js +5 -1
  126. package/lib/es/tag/interface.d.ts +2 -0
  127. package/lib/es/timePicker/TimePicker.d.ts +2 -2
  128. package/lib/es/timePicker/TimeShape.d.ts +1 -1
  129. package/lib/es/timePicker/index.d.ts +2 -2
  130. package/lib/es/toast/index.d.ts +9 -0
  131. package/lib/es/toast/index.js +50 -10
  132. package/lib/es/toast/toast.d.ts +1 -0
  133. package/lib/es/toast/toast.js +4 -0
  134. package/lib/es/typography/base.d.ts +1 -1
  135. package/lib/es/typography/paragraph.d.ts +1 -1
  136. package/lib/es/typography/text.d.ts +1 -1
  137. package/lib/es/typography/title.d.ts +2 -2
  138. package/lib/es/upload/index.d.ts +1 -1
  139. package/package.json +8 -8
@@ -48,7 +48,7 @@ export default class Button extends PureComponent<ButtonProps> {
48
48
  prefixCls: PropTypes.Requireable<string>;
49
49
  style: PropTypes.Requireable<object>;
50
50
  size: PropTypes.Requireable<"default" | "small" | "large">;
51
- type: PropTypes.Requireable<"warning" | "primary" | "secondary" | "tertiary" | "danger">;
51
+ type: PropTypes.Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
52
52
  block: PropTypes.Requireable<boolean>;
53
53
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
54
54
  onMouseDown: PropTypes.Requireable<(...args: any[]) => any>;
@@ -23,7 +23,7 @@ declare class Button extends React.PureComponent<ButtonProps> {
23
23
  onMouseLeave: import("prop-types").Requireable<(...args: any[]) => any>;
24
24
  disabled: import("prop-types").Requireable<boolean>;
25
25
  size: import("prop-types").Requireable<"default" | "small" | "large">;
26
- type: import("prop-types").Requireable<"warning" | "primary" | "secondary" | "tertiary" | "danger">;
26
+ type: import("prop-types").Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
27
27
  block: import("prop-types").Requireable<boolean>;
28
28
  onClick: import("prop-types").Requireable<(...args: any[]) => any>;
29
29
  onMouseDown: import("prop-types").Requireable<(...args: any[]) => any>;
@@ -8,7 +8,7 @@ declare class CarouselIndicator extends React.PureComponent<CarouselIndicatorPro
8
8
  position: PropTypes.Requireable<"left" | "right" | "center">;
9
9
  size: PropTypes.Requireable<"small" | "medium">;
10
10
  style: PropTypes.Requireable<object>;
11
- theme: PropTypes.Requireable<"dark" | "light" | "primary">;
11
+ theme: PropTypes.Requireable<"primary" | "dark" | "light">;
12
12
  total: PropTypes.Requireable<number>;
13
13
  onIndicatorChange: PropTypes.Requireable<(...args: any[]) => any>;
14
14
  type: PropTypes.Requireable<"line" | "dot" | "columnar">;
@@ -22,7 +22,7 @@ declare class Carousel extends BaseComponent<CarouselProps, CarouselState> {
22
22
  indicatorPosition: PropTypes.Requireable<"left" | "right" | "center">;
23
23
  indicatorSize: PropTypes.Requireable<"small" | "medium">;
24
24
  indicatorType: PropTypes.Requireable<"line" | "dot" | "columnar">;
25
- theme: PropTypes.Requireable<"dark" | "light" | "primary">;
25
+ theme: PropTypes.Requireable<"primary" | "dark" | "light">;
26
26
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
27
27
  arrowType: PropTypes.Requireable<"hover" | "always">;
28
28
  showArrow: PropTypes.Requireable<boolean>;
@@ -26,7 +26,7 @@ export default class DateInput extends BaseComponent<DateInputProps, {}> {
26
26
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
27
27
  value: PropTypes.Requireable<any[]>;
28
28
  disabled: PropTypes.Requireable<boolean>;
29
- type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
29
+ type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
30
30
  showClear: PropTypes.Requireable<boolean>;
31
31
  format: PropTypes.Requireable<string>;
32
32
  inputStyle: PropTypes.Requireable<object>;
@@ -41,7 +41,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
41
41
  'aria-invalid': PropTypes.Requireable<boolean>;
42
42
  'aria-labelledby': PropTypes.Requireable<string>;
43
43
  'aria-required': PropTypes.Requireable<boolean>;
44
- type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
44
+ type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
45
45
  size: PropTypes.Requireable<"default" | "small" | "large">;
46
46
  density: PropTypes.Requireable<"default" | "compact">;
47
47
  defaultValue: PropTypes.Requireable<string | number | object>;
@@ -17,7 +17,7 @@ export interface MonthsGridProps extends MonthsGridFoundationProps, BaseProps {
17
17
  export declare type MonthsGridState = MonthsGridFoundationState;
18
18
  export default class MonthsGrid extends BaseComponent<MonthsGridProps, MonthsGridState> {
19
19
  static propTypes: {
20
- type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
20
+ type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
21
21
  defaultValue: PropTypes.Requireable<string | number | object>;
22
22
  defaultPickerValue: PropTypes.Requireable<string | number | object>;
23
23
  multiple: PropTypes.Requireable<boolean>;
@@ -0,0 +1,48 @@
1
+ import React from "react";
2
+ import BaseComponent from "../_base/baseComponent";
3
+ import { ImageProps, ImageStates } from "./interface";
4
+ import PropTypes from "prop-types";
5
+ import '@douyinfe/semi-foundation/lib/cjs/image/image.css';
6
+ import { PreviewContextProps } from "./previewContext";
7
+ import ImageFoundation, { ImageAdapter } from '@douyinfe/semi-foundation/lib/cjs/image/imageFoundation';
8
+ export default class Image extends BaseComponent<ImageProps, ImageStates> {
9
+ static isSemiImage: boolean;
10
+ static contextType: React.Context<PreviewContextProps>;
11
+ static propTypes: {
12
+ style: PropTypes.Requireable<object>;
13
+ className: PropTypes.Requireable<string>;
14
+ src: PropTypes.Requireable<string>;
15
+ width: PropTypes.Requireable<string | number>;
16
+ height: PropTypes.Requireable<string | number>;
17
+ alt: PropTypes.Requireable<string>;
18
+ placeholder: PropTypes.Requireable<PropTypes.ReactNodeLike>;
19
+ fallback: PropTypes.Requireable<PropTypes.ReactNodeLike>;
20
+ preview: PropTypes.Requireable<boolean | object>;
21
+ onLoad: PropTypes.Requireable<(...args: any[]) => any>;
22
+ onError: PropTypes.Requireable<(...args: any[]) => any>;
23
+ crossOrigin: PropTypes.Requireable<string>;
24
+ imageID: PropTypes.Requireable<number>;
25
+ };
26
+ static defaultProps: {
27
+ preview: boolean;
28
+ };
29
+ get adapter(): ImageAdapter<ImageProps, ImageStates>;
30
+ context: PreviewContextProps;
31
+ foundation: ImageFoundation;
32
+ constructor(props: ImageProps);
33
+ static getDerivedStateFromProps(props: ImageProps, state: ImageStates): Partial<ImageStates>;
34
+ isInGroup(): boolean;
35
+ isLazyLoad(): boolean;
36
+ handleClick: (e: any) => void;
37
+ handleLoaded: (e: any) => void;
38
+ handleError: (e: any) => void;
39
+ handlePreviewVisibleChange: (visible: boolean) => void;
40
+ renderDefaultLoading: () => JSX.Element;
41
+ renderDefaultError: () => JSX.Element;
42
+ renderLoad: () => JSX.Element;
43
+ renderError: () => JSX.Element;
44
+ renderExtra: () => JSX.Element;
45
+ getLocalTextByKey: (key: string) => JSX.Element;
46
+ renderMask: () => JSX.Element;
47
+ render(): JSX.Element;
48
+ }
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _isObject2 = _interopRequireDefault(require("lodash/isObject"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _constants = require("@douyinfe/semi-foundation/lib/cjs/image/constants");
17
+
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var _semiIcons = require("@douyinfe/semi-icons");
21
+
22
+ var _previewInner = _interopRequireDefault(require("./previewInner"));
23
+
24
+ require("@douyinfe/semi-foundation/lib/cjs/image/image.css");
25
+
26
+ var _previewContext = require("./previewContext");
27
+
28
+ var _imageFoundation = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/image/imageFoundation"));
29
+
30
+ var _localeConsumer = _interopRequireDefault(require("../locale/localeConsumer"));
31
+
32
+ var _skeleton = _interopRequireDefault(require("../skeleton"));
33
+
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+
36
+ /* eslint-disable jsx-a11y/click-events-have-key-events */
37
+
38
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
39
+ const prefixCls = _constants.cssClasses.PREFIX;
40
+
41
+ class Image extends _baseComponent.default {
42
+ constructor(props) {
43
+ super(props);
44
+
45
+ this.handleClick = e => {
46
+ this.foundation.handleClick(e);
47
+ };
48
+
49
+ this.handleLoaded = e => {
50
+ this.foundation.handleLoaded(e);
51
+ };
52
+
53
+ this.handleError = e => {
54
+ this.foundation.handleError(e);
55
+ };
56
+
57
+ this.handlePreviewVisibleChange = visible => {
58
+ this.foundation.handlePreviewVisibleChange(visible);
59
+ };
60
+
61
+ this.renderDefaultLoading = () => {
62
+ const {
63
+ width,
64
+ height
65
+ } = this.props;
66
+ return /*#__PURE__*/_react.default.createElement(_skeleton.default.Image, {
67
+ style: {
68
+ width,
69
+ height
70
+ }
71
+ });
72
+ };
73
+
74
+ this.renderDefaultError = () => {
75
+ const prefixClsName = "".concat(prefixCls, "-status");
76
+ return /*#__PURE__*/_react.default.createElement("div", {
77
+ className: prefixClsName
78
+ }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconUploadError, {
79
+ size: "extra-large"
80
+ }));
81
+ };
82
+
83
+ this.renderLoad = () => {
84
+ const prefixClsName = "".concat(prefixCls, "-status");
85
+ const {
86
+ placeholder
87
+ } = this.props;
88
+ return placeholder ? /*#__PURE__*/_react.default.createElement("div", {
89
+ className: prefixClsName
90
+ }, placeholder) : this.renderDefaultLoading();
91
+ };
92
+
93
+ this.renderError = () => {
94
+ const {
95
+ fallback
96
+ } = this.props;
97
+ const prefixClsName = "".concat(prefixCls, "-status");
98
+ const fallbackNode = typeof fallback === "string" ? /*#__PURE__*/_react.default.createElement("img", {
99
+ style: {
100
+ width: "100%",
101
+ height: "100%"
102
+ },
103
+ src: fallback,
104
+ alt: "fallback"
105
+ }) : fallback;
106
+ return fallback ? /*#__PURE__*/_react.default.createElement("div", {
107
+ className: prefixClsName
108
+ }, fallbackNode) : this.renderDefaultError();
109
+ };
110
+
111
+ this.renderExtra = () => {
112
+ const {
113
+ loadStatus
114
+ } = this.state;
115
+ return /*#__PURE__*/_react.default.createElement("div", {
116
+ className: "".concat(prefixCls, "-overlay")
117
+ }, loadStatus === "error" && this.renderError(), loadStatus === "loading" && this.renderLoad());
118
+ };
119
+
120
+ this.getLocalTextByKey = key => /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
121
+ componentName: "Image"
122
+ }, locale => locale[key]);
123
+
124
+ this.renderMask = () => /*#__PURE__*/_react.default.createElement("div", {
125
+ className: "".concat(prefixCls, "-mask")
126
+ }, /*#__PURE__*/_react.default.createElement("div", {
127
+ className: "".concat(prefixCls, "-mask-info")
128
+ }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconEyeOpened, {
129
+ size: "extra-large"
130
+ }), /*#__PURE__*/_react.default.createElement("span", {
131
+ className: "".concat(prefixCls, "-mask-info-text")
132
+ }, this.getLocalTextByKey("preview"))));
133
+
134
+ this.state = {
135
+ src: "",
136
+ loadStatus: "loading",
137
+ previewVisible: false
138
+ };
139
+ this.foundation = new _imageFoundation.default(this.adapter);
140
+ }
141
+
142
+ get adapter() {
143
+ return Object.assign(Object.assign({}, super.adapter), {
144
+ getIsInGroup: () => this.isInGroup()
145
+ });
146
+ }
147
+
148
+ static getDerivedStateFromProps(props, state) {
149
+ const willUpdateStates = {};
150
+
151
+ if (props.src !== state.src) {
152
+ willUpdateStates.src = props.src;
153
+ willUpdateStates.loadStatus = "loading";
154
+ }
155
+
156
+ return willUpdateStates;
157
+ }
158
+
159
+ isInGroup() {
160
+ return Boolean(this.context && this.context.isGroup);
161
+ }
162
+
163
+ isLazyLoad() {
164
+ if (this.context) {
165
+ return this.context.lazyLoad;
166
+ }
167
+
168
+ return false;
169
+ }
170
+
171
+ render() {
172
+ var _a;
173
+
174
+ const {
175
+ src,
176
+ loadStatus,
177
+ previewVisible
178
+ } = this.state;
179
+ const {
180
+ width,
181
+ height,
182
+ alt,
183
+ style,
184
+ className,
185
+ crossOrigin,
186
+ preview
187
+ } = this.props;
188
+ const outerStyle = Object.assign({
189
+ width,
190
+ height
191
+ }, style);
192
+ const outerCls = (0, _classnames.default)(prefixCls, className);
193
+ const canPreview = loadStatus === "success" && preview && !this.isInGroup();
194
+ const showPreviewCursor = preview && loadStatus === "success";
195
+ const previewSrc = (0, _isObject2.default)(preview) ? (_a = preview.src) !== null && _a !== void 0 ? _a : src : src;
196
+ const previewProps = (0, _isObject2.default)(preview) ? preview : {};
197
+ return (
198
+ /*#__PURE__*/
199
+ // eslint-disable jsx-a11y/no-static-element-interactions
200
+ // eslint-disable jsx-a11y/click-events-have-key-events
201
+ _react.default.createElement("div", {
202
+ style: outerStyle,
203
+ className: outerCls,
204
+ onClick: this.handleClick
205
+ }, /*#__PURE__*/_react.default.createElement("img", {
206
+ src: this.isInGroup() && this.isLazyLoad() ? undefined : src,
207
+ "data-src": src,
208
+ alt: alt,
209
+ className: (0, _classnames.default)("".concat(prefixCls, "-img"), {
210
+ ["".concat(prefixCls, "-img-preview")]: showPreviewCursor,
211
+ ["".concat(prefixCls, "-img-error")]: loadStatus === "error"
212
+ }),
213
+ width: width,
214
+ height: height,
215
+ crossOrigin: crossOrigin,
216
+ onError: this.handleError,
217
+ onLoad: this.handleLoaded
218
+ }), loadStatus !== "success" && this.renderExtra(), canPreview && /*#__PURE__*/_react.default.createElement(_previewInner.default, Object.assign({}, previewProps, {
219
+ src: previewSrc,
220
+ visible: previewVisible,
221
+ onVisibleChange: this.handlePreviewVisibleChange
222
+ })))
223
+ );
224
+ }
225
+
226
+ }
227
+
228
+ exports.default = Image;
229
+ Image.isSemiImage = true;
230
+ Image.contextType = _previewContext.PreviewContext;
231
+ Image.propTypes = {
232
+ style: _propTypes.default.object,
233
+ className: _propTypes.default.string,
234
+ src: _propTypes.default.string,
235
+ width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
236
+ height: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
237
+ alt: _propTypes.default.string,
238
+ placeholder: _propTypes.default.node,
239
+ fallback: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
240
+ preview: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.object]),
241
+ onLoad: _propTypes.default.func,
242
+ onError: _propTypes.default.func,
243
+ crossOrigin: _propTypes.default.string,
244
+ imageID: _propTypes.default.number
245
+ };
246
+ Image.defaultProps = {
247
+ preview: true
248
+ };
@@ -0,0 +1,6 @@
1
+ import Image from "./image";
2
+ import PreviewInner from "./previewInner";
3
+ import Preview from "./preview";
4
+ export default Image;
5
+ export { PreviewInner, Preview, };
6
+ export { ImageProps, PreviewImageProps, PreviewProps, } from "./interface";
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Preview", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _preview.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "PreviewInner", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _previewInner.default;
16
+ }
17
+ });
18
+ exports.default = void 0;
19
+
20
+ var _image = _interopRequireDefault(require("./image"));
21
+
22
+ var _previewInner = _interopRequireDefault(require("./previewInner"));
23
+
24
+ var _preview = _interopRequireDefault(require("./preview"));
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ var _default = _image.default;
29
+ exports.default = _default;
@@ -0,0 +1,178 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseProps } from "_base/baseComponent";
3
+ import React from "react";
4
+ export interface ImageStates {
5
+ src: string;
6
+ loadStatus: "loading" | "success" | "error";
7
+ previewVisible: boolean;
8
+ }
9
+ export interface ImageProps extends BaseProps {
10
+ src?: string;
11
+ width?: string | number;
12
+ height?: string | number;
13
+ alt?: string;
14
+ placeholder?: ReactNode;
15
+ fallback?: string | ReactNode;
16
+ preview?: boolean | PreviewProps;
17
+ onError?: (event: Event) => void;
18
+ onLoad?: (event: Event) => void;
19
+ crossOrigin?: "anonymous" | "use-credentials";
20
+ children?: ReactNode;
21
+ imageID?: number;
22
+ }
23
+ export interface PreviewProps extends BaseProps {
24
+ visible?: boolean;
25
+ src?: string | string[];
26
+ previewTitle?: ReactNode;
27
+ currentIndex?: number;
28
+ defaultIndex?: number;
29
+ defaultVisible?: boolean;
30
+ maskClosable?: boolean;
31
+ closable?: boolean;
32
+ zoomStep?: number;
33
+ infinite?: boolean;
34
+ showTooltip?: boolean;
35
+ closeOnEsc?: boolean;
36
+ prevTip?: string;
37
+ nextTip?: string;
38
+ zoomInTip?: string;
39
+ zoomOutTip?: string;
40
+ rotateTip?: string;
41
+ downloadTip?: string;
42
+ adaptiveTip?: string;
43
+ originTip?: string;
44
+ lazyLoad?: boolean;
45
+ lazyLoadMargin?: string;
46
+ preLoad?: boolean;
47
+ preLoadGap?: number;
48
+ viewerVisibleDelay?: number;
49
+ disableDownload?: boolean;
50
+ zIndex?: number;
51
+ children?: ReactNode;
52
+ renderHeader?: (info: any) => ReactNode;
53
+ renderPreviewMenu?: (props: MenuProps) => ReactNode;
54
+ getPopupContainer?: () => HTMLElement;
55
+ onVisibleChange?: (visible: boolean) => void;
56
+ onChange?: (index: number) => void;
57
+ onClose?: () => void;
58
+ onZoomIn?: (zoom: number) => void;
59
+ onZoomOut?: (zoom: number) => void;
60
+ onPrev?: (index: number) => void;
61
+ onNext?: (index: number) => void;
62
+ onRatioChange?: (type: RatioType) => void;
63
+ onRotateChange?: (angle: number) => void;
64
+ onDownload?: (src: string, index: number) => void;
65
+ }
66
+ export interface MenuProps {
67
+ min?: number;
68
+ max?: number;
69
+ step?: number;
70
+ curPage?: number;
71
+ totalNum?: number;
72
+ zoom?: number;
73
+ ratio?: RatioType;
74
+ disabledPrev?: boolean;
75
+ disabledNext?: boolean;
76
+ disableDownload?: boolean;
77
+ onDownload?: () => void;
78
+ onNext?: () => void;
79
+ onPrev?: () => void;
80
+ onZoomIn?: () => void;
81
+ onZoomOut?: () => void;
82
+ onRatioClick?: () => void;
83
+ onRotateLeft?: () => void;
84
+ onRotateRight?: () => void;
85
+ }
86
+ export declare type RatioType = "adaptation" | "realSize";
87
+ export interface PreviewInnerStates {
88
+ imgSrc?: string[];
89
+ imgLoadStatus?: Map<string, boolean>;
90
+ zoom?: number;
91
+ rotation?: number;
92
+ ratio?: RatioType;
93
+ currentIndex?: number;
94
+ viewerVisible?: boolean;
95
+ visible?: boolean;
96
+ preloadAfterVisibleChange?: boolean;
97
+ direction?: string;
98
+ }
99
+ export interface SliderProps {
100
+ max?: number;
101
+ min?: number;
102
+ step?: number;
103
+ }
104
+ export interface HeaderProps {
105
+ renderHeader?: (info: any) => ReactNode;
106
+ title?: string;
107
+ titleStyle?: React.CSSProperties;
108
+ className?: string;
109
+ onClose?: () => void;
110
+ }
111
+ export interface FooterProps extends SliderProps {
112
+ curPage?: number;
113
+ totalNum?: number;
114
+ disabledPrev?: boolean;
115
+ disabledNext?: boolean;
116
+ disableDownload?: boolean;
117
+ className?: string;
118
+ zoom?: number;
119
+ ratio?: RatioType;
120
+ prevTip?: string;
121
+ nextTip?: string;
122
+ zoomInTip?: string;
123
+ zoomOutTip?: string;
124
+ rotateTip?: string;
125
+ downloadTip?: string;
126
+ adaptiveTip?: string;
127
+ originTip?: string;
128
+ showTooltip?: boolean;
129
+ onZoomIn?: (zoom: number) => void;
130
+ onZoomOut?: (zoom: number) => void;
131
+ onPrev?: () => void;
132
+ onNext?: () => void;
133
+ onAdjustRatio?: (type: RatioType) => void;
134
+ onRotate?: (direction: string) => void;
135
+ onDownload?: () => void;
136
+ renderPreviewMenu?: (props: MenuProps) => ReactNode;
137
+ }
138
+ export interface PreviewImageProps {
139
+ src?: string;
140
+ rotation?: number;
141
+ style?: React.CSSProperties;
142
+ maxZoom?: number;
143
+ minZoom?: number;
144
+ zoomStep?: number;
145
+ zoom?: number;
146
+ ratio?: RatioType;
147
+ disableDownload?: boolean;
148
+ clickZoom?: number;
149
+ setRatio?: (type: RatioType) => void;
150
+ onZoom?: (zoom: number) => void;
151
+ onLoad?: (src: string) => void;
152
+ onError?: (src: string) => void;
153
+ }
154
+ export interface ImageOffset {
155
+ x: number;
156
+ y: number;
157
+ }
158
+ export interface PreviewImageStates {
159
+ loading: boolean;
160
+ width: number;
161
+ height: number;
162
+ offset: ImageOffset;
163
+ currZoom: number;
164
+ top: number;
165
+ left: number;
166
+ }
167
+ export interface DragDirection {
168
+ canDragVertical: boolean;
169
+ canDragHorizontal: boolean;
170
+ }
171
+ export interface ExtremeBounds {
172
+ left: number;
173
+ top: number;
174
+ }
175
+ export interface PreviewState {
176
+ currentIndex: number;
177
+ visible: boolean;
178
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,81 @@
1
+ import React from "react";
2
+ import BaseComponent from "../_base/baseComponent";
3
+ import PropTypes from "prop-types";
4
+ import { PreviewProps, PreviewState } from "./interface";
5
+ import PreviewInner from "./previewInner";
6
+ import PreviewFoundation from '@douyinfe/semi-foundation/lib/cjs/image/previewFoundation';
7
+ export default class Preview extends BaseComponent<PreviewProps, PreviewState> {
8
+ static propTypes: {
9
+ style: PropTypes.Requireable<object>;
10
+ className: PropTypes.Requireable<string>;
11
+ visible: PropTypes.Requireable<boolean>;
12
+ src: PropTypes.Requireable<string | any[]>;
13
+ currentIndex: PropTypes.Requireable<number>;
14
+ defaultIndex: PropTypes.Requireable<number>;
15
+ defaultVisible: PropTypes.Requireable<boolean>;
16
+ maskClosable: PropTypes.Requireable<boolean>;
17
+ closable: PropTypes.Requireable<boolean>;
18
+ zoomStep: PropTypes.Requireable<number>;
19
+ infinite: PropTypes.Requireable<boolean>;
20
+ showTooltip: PropTypes.Requireable<boolean>;
21
+ closeOnEsc: PropTypes.Requireable<boolean>;
22
+ prevTip: PropTypes.Requireable<string>;
23
+ nextTip: PropTypes.Requireable<string>;
24
+ zoomInTip: PropTypes.Requireable<string>;
25
+ zoomOutTip: PropTypes.Requireable<string>;
26
+ downloadTip: PropTypes.Requireable<string>;
27
+ adaptiveTip: PropTypes.Requireable<string>;
28
+ originTip: PropTypes.Requireable<string>;
29
+ lazyLoad: PropTypes.Requireable<boolean>;
30
+ lazyLoadMargin: PropTypes.Requireable<string>;
31
+ preLoad: PropTypes.Requireable<boolean>;
32
+ preLoadGap: PropTypes.Requireable<number>;
33
+ disableDownload: PropTypes.Requireable<boolean>;
34
+ zIndex: PropTypes.Requireable<number>;
35
+ renderHeader: PropTypes.Requireable<(...args: any[]) => any>;
36
+ renderPreviewMenu: PropTypes.Requireable<(...args: any[]) => any>;
37
+ getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
38
+ onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
39
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
40
+ onClose: PropTypes.Requireable<(...args: any[]) => any>;
41
+ onZoomIn: PropTypes.Requireable<(...args: any[]) => any>;
42
+ onZoomOut: PropTypes.Requireable<(...args: any[]) => any>;
43
+ onPrev: PropTypes.Requireable<(...args: any[]) => any>;
44
+ onNext: PropTypes.Requireable<(...args: any[]) => any>;
45
+ onDownload: PropTypes.Requireable<(...args: any[]) => any>;
46
+ onRatioChange: PropTypes.Requireable<(...args: any[]) => any>;
47
+ onRotateChange: PropTypes.Requireable<(...args: any[]) => any>;
48
+ };
49
+ static defaultProps: {
50
+ src: any[];
51
+ lazyLoad: boolean;
52
+ lazyLoadMargin: string;
53
+ };
54
+ get adapter(): {
55
+ getContext(key: string): any;
56
+ getContexts(): any;
57
+ getProp(key: string): any;
58
+ getProps(): PreviewProps;
59
+ getState(key: string): any;
60
+ getStates(): PreviewState;
61
+ setState(s: Pick<PreviewState, keyof PreviewState>, callback?: any): void;
62
+ getCache(c: string): any;
63
+ getCaches(): any;
64
+ setCache(key: any, value: any): void;
65
+ stopPropagation(e: any): void;
66
+ };
67
+ foundation: PreviewFoundation;
68
+ previewGroupId: string;
69
+ previewRef: React.RefObject<PreviewInner>;
70
+ constructor(props: any);
71
+ componentDidMount(): void;
72
+ static getDerivedStateFromProps(props: PreviewProps, state: PreviewState): Partial<PreviewState>;
73
+ handleVisibleChange: (newVisible: boolean) => void;
74
+ handleCurrentIndexChange: (index: number) => void;
75
+ loopImageIndex: () => {
76
+ srcListInChildren: any[];
77
+ newChildren: any;
78
+ titles: React.ReactNode[];
79
+ };
80
+ render(): JSX.Element;
81
+ }