@douyinfe/semi-ui 2.9.1 → 2.10.0-beta.0

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 (47) hide show
  1. package/banner/_story/banner.stories.js +62 -1
  2. package/banner/index.tsx +5 -5
  3. package/carousel/CarouselArrow.tsx +62 -0
  4. package/carousel/CarouselIndicator.tsx +84 -0
  5. package/carousel/__test__/carousel.test.js +159 -0
  6. package/carousel/_story/carousel.stories.js +486 -0
  7. package/carousel/index.tsx +294 -0
  8. package/carousel/interface.ts +64 -0
  9. package/cascader/index.tsx +1 -2
  10. package/dist/css/semi.css +342 -0
  11. package/dist/css/semi.min.css +1 -1
  12. package/dist/umd/semi-ui.js +884 -66
  13. package/dist/umd/semi-ui.js.map +1 -1
  14. package/dist/umd/semi-ui.min.js +1 -1
  15. package/dist/umd/semi-ui.min.js.map +1 -1
  16. package/index.ts +2 -0
  17. package/lib/cjs/banner/index.js +11 -5
  18. package/lib/cjs/carousel/CarouselArrow.d.ts +8 -0
  19. package/lib/cjs/carousel/CarouselArrow.js +91 -0
  20. package/lib/cjs/carousel/CarouselIndicator.d.ts +23 -0
  21. package/lib/cjs/carousel/CarouselIndicator.js +145 -0
  22. package/lib/cjs/carousel/index.d.ts +58 -0
  23. package/lib/cjs/carousel/index.js +345 -0
  24. package/lib/cjs/carousel/interface.d.ts +62 -0
  25. package/lib/cjs/carousel/interface.js +7 -0
  26. package/lib/cjs/cascader/index.js +1 -1
  27. package/lib/cjs/index.d.ts +1 -0
  28. package/lib/cjs/index.js +9 -0
  29. package/lib/cjs/switch/index.d.ts +3 -0
  30. package/lib/cjs/switch/index.js +26 -6
  31. package/lib/es/banner/index.js +11 -5
  32. package/lib/es/carousel/CarouselArrow.d.ts +8 -0
  33. package/lib/es/carousel/CarouselArrow.js +72 -0
  34. package/lib/es/carousel/CarouselIndicator.d.ts +23 -0
  35. package/lib/es/carousel/CarouselIndicator.js +125 -0
  36. package/lib/es/carousel/index.d.ts +58 -0
  37. package/lib/es/carousel/index.js +311 -0
  38. package/lib/es/carousel/interface.d.ts +62 -0
  39. package/lib/es/carousel/interface.js +1 -0
  40. package/lib/es/cascader/index.js +1 -1
  41. package/lib/es/index.d.ts +1 -0
  42. package/lib/es/index.js +1 -0
  43. package/lib/es/switch/index.d.ts +3 -0
  44. package/lib/es/switch/index.js +26 -6
  45. package/package.json +9 -9
  46. package/switch/index.tsx +20 -3
  47. package/tagInput/__test__/tagInput.test.js +11 -11
package/index.ts CHANGED
@@ -12,6 +12,7 @@ export { default as ButtonGroup } from './button/buttonGroup';
12
12
  export { default as Calendar } from './calendar';
13
13
  export { default as Card } from './card';
14
14
  export { default as CardGroup } from './card/cardGroup';
15
+ export { default as Carousel } from './carousel';
15
16
  export { default as Cascader } from './cascader';
16
17
  export { default as Checkbox } from './checkbox';
17
18
  export { default as CheckboxGroup } from './checkbox/checkboxGroup';
@@ -79,6 +80,7 @@ export { default as Upload } from './upload';
79
80
  export { default as Typography } from './typography';
80
81
  export { default as Transfer } from './transfer';
81
82
 
83
+
82
84
  export { default as LocaleProvider } from './locale/localeProvider';
83
85
 
84
86
  /** Form */
@@ -92,7 +92,9 @@ class Banner extends _baseComponent.default {
92
92
  const closer = /*#__PURE__*/_react.default.createElement(_iconButton.default, {
93
93
  className: "".concat(prefixCls, "-close"),
94
94
  onClick: this.remove,
95
- icon: closeIcon || /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, null),
95
+ icon: closeIcon || /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
96
+ "aria-hidden": true
97
+ }),
96
98
  theme: "borderless",
97
99
  size: "small",
98
100
  type: "tertiary",
@@ -109,16 +111,20 @@ class Banner extends _baseComponent.default {
109
111
  } = this.props;
110
112
  const iconMap = {
111
113
  warning: /*#__PURE__*/_react.default.createElement(_semiIcons.IconAlertTriangle, {
112
- size: "large"
114
+ size: "large",
115
+ "aria-label": 'warning'
113
116
  }),
114
117
  success: /*#__PURE__*/_react.default.createElement(_semiIcons.IconTickCircle, {
115
- size: "large"
118
+ size: "large",
119
+ "aria-label": 'success'
116
120
  }),
117
121
  info: /*#__PURE__*/_react.default.createElement(_semiIcons.IconInfoCircle, {
118
- size: "large"
122
+ size: "large",
123
+ "aria-label": 'info'
119
124
  }),
120
125
  danger: /*#__PURE__*/_react.default.createElement(_semiIcons.IconAlertCircle, {
121
- size: "large"
126
+ size: "large",
127
+ "aria-label": 'danger'
122
128
  })
123
129
  };
124
130
  let iconType = iconMap[type];
@@ -0,0 +1,8 @@
1
+ import React, { ReactNode } from "react";
2
+ import { CarouselArrowProps } from "./interface";
3
+ declare class CarouselArrow extends React.PureComponent<CarouselArrowProps> {
4
+ renderLeftIcon: () => any;
5
+ renderRightIcon: () => any;
6
+ render(): ReactNode;
7
+ }
8
+ export default CarouselArrow;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
6
+
7
+ _Object$defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+
11
+ exports.default = void 0;
12
+
13
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
14
+
15
+ var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
16
+
17
+ var _throttle2 = _interopRequireDefault(require("lodash/throttle"));
18
+
19
+ var _get2 = _interopRequireDefault(require("lodash/get"));
20
+
21
+ var _react = _interopRequireDefault(require("react"));
22
+
23
+ var _classnames = _interopRequireDefault(require("classnames"));
24
+
25
+ var _constants = require("@douyinfe/semi-foundation/lib/cjs/carousel/constants");
26
+
27
+ var _semiIcons = require("@douyinfe/semi-icons");
28
+
29
+ /* eslint-disable jsx-a11y/click-events-have-key-events */
30
+
31
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
32
+ class CarouselArrow extends _react.default.PureComponent {
33
+ constructor() {
34
+ super(...arguments);
35
+
36
+ this.renderLeftIcon = () => {
37
+ return (0, _get2.default)(this.props, 'arrowProps.leftArrow.children', /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronLeft, {
38
+ "aria-label": "Previous index",
39
+ size: "inherit"
40
+ }));
41
+ };
42
+
43
+ this.renderRightIcon = () => {
44
+ return (0, _get2.default)(this.props, 'arrowProps.rightArrow.children', /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronRight, {
45
+ "aria-label": "Next index",
46
+ size: "inherit"
47
+ }));
48
+ };
49
+ }
50
+
51
+ render() {
52
+ var _context, _context2, _context3;
53
+
54
+ const {
55
+ type,
56
+ theme,
57
+ prev,
58
+ next,
59
+ timing
60
+ } = this.props;
61
+ const classNames = (0, _classnames.default)({
62
+ [_constants.cssClasses.CAROUSEL_ARROW]: true,
63
+ [(0, _concat.default)(_context = "".concat(_constants.cssClasses.CAROUSEL_ARROW, "-")).call(_context, theme)]: theme,
64
+ ["".concat(_constants.cssClasses.CAROUSEL_ARROW, "-hover")]: type === 'hover'
65
+ });
66
+ const leftClassNames = (0, _classnames.default)({
67
+ ["".concat(_constants.cssClasses.CAROUSEL_ARROW, "-prev")]: true,
68
+ [(0, _concat.default)(_context2 = "".concat(_constants.cssClasses.CAROUSEL_ARROW, "-")).call(_context2, theme)]: theme
69
+ });
70
+ const rightClassNames = (0, _classnames.default)({
71
+ ["".concat(_constants.cssClasses.CAROUSEL_ARROW, "-next")]: true,
72
+ [(0, _concat.default)(_context3 = "".concat(_constants.cssClasses.CAROUSEL_ARROW, "-")).call(_context3, theme)]: theme
73
+ });
74
+ return /*#__PURE__*/_react.default.createElement("div", {
75
+ className: classNames
76
+ }, /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
77
+ // role='button'
78
+ className: leftClassNames,
79
+ onClick: (0, _throttle2.default)(prev, timing)
80
+ }, (0, _get2.default)(this.props, 'arrowProps.leftArrow.props')), this.renderLeftIcon()), /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
81
+ // role='button'
82
+ // tabIndex={0}
83
+ className: rightClassNames,
84
+ onClick: (0, _throttle2.default)(next, timing)
85
+ }, (0, _get2.default)(this.props, 'arrowProps.rightArrow.props')), this.renderRightIcon()));
86
+ }
87
+
88
+ }
89
+
90
+ var _default = CarouselArrow;
91
+ exports.default = _default;
@@ -0,0 +1,23 @@
1
+ import React, { ReactNode } from "react";
2
+ import PropTypes from 'prop-types';
3
+ import { CarouselIndicatorProps } from "./interface";
4
+ declare class CarouselIndicator extends React.PureComponent<CarouselIndicatorProps> {
5
+ static propTypes: {
6
+ activeKey: PropTypes.Requireable<number>;
7
+ className: PropTypes.Requireable<string>;
8
+ position: PropTypes.Requireable<"left" | "right" | "center">;
9
+ size: PropTypes.Requireable<"small" | "medium">;
10
+ style: PropTypes.Requireable<object>;
11
+ theme: PropTypes.Requireable<"primary" | "dark" | "light">;
12
+ total: PropTypes.Requireable<number>;
13
+ onIndicatorChange: PropTypes.Requireable<(...args: any[]) => any>;
14
+ type: PropTypes.Requireable<"line" | "dot" | "columnar">;
15
+ trigger: PropTypes.Requireable<"hover" | "click">;
16
+ };
17
+ onIndicatorChange: (activeIndex: number) => void;
18
+ handleIndicatorClick: (activeIndex: number) => void;
19
+ handleIndicatorHover: (activeIndex: number) => void;
20
+ renderIndicatorContent(): ReactNode;
21
+ render(): ReactNode;
22
+ }
23
+ export default CarouselIndicator;
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
6
+
7
+ _Object$defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+
11
+ exports.default = void 0;
12
+
13
+ var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
14
+
15
+ var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
16
+
17
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
18
+
19
+ var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
20
+
21
+ var _react = _interopRequireDefault(require("react"));
22
+
23
+ var _classnames = _interopRequireDefault(require("classnames"));
24
+
25
+ var _propTypes = _interopRequireDefault(require("prop-types"));
26
+
27
+ var _constants = require("@douyinfe/semi-foundation/lib/cjs/carousel/constants");
28
+
29
+ var _getDataAttr = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/getDataAttr"));
30
+
31
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
32
+ var t = {};
33
+
34
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && (0, _indexOf.default)(e).call(e, p) < 0) t[p] = s[p];
35
+
36
+ if (s != null && typeof _getOwnPropertySymbols.default === "function") for (var i = 0, p = (0, _getOwnPropertySymbols.default)(s); i < p.length; i++) {
37
+ if ((0, _indexOf.default)(e).call(e, p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
38
+ }
39
+ return t;
40
+ };
41
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
42
+
43
+ /* eslint-disable jsx-a11y/click-events-have-key-events */
44
+
45
+
46
+ class CarouselIndicator extends _react.default.PureComponent {
47
+ constructor() {
48
+ super(...arguments);
49
+
50
+ this.onIndicatorChange = activeIndex => {
51
+ this.props.onIndicatorChange(activeIndex);
52
+ };
53
+
54
+ this.handleIndicatorClick = activeIndex => {
55
+ const {
56
+ trigger
57
+ } = this.props;
58
+
59
+ if (trigger === 'click') {
60
+ this.onIndicatorChange(activeIndex);
61
+ }
62
+ };
63
+
64
+ this.handleIndicatorHover = activeIndex => {
65
+ const {
66
+ trigger
67
+ } = this.props;
68
+
69
+ if (trigger === 'hover') {
70
+ this.onIndicatorChange(activeIndex);
71
+ }
72
+ };
73
+ }
74
+
75
+ renderIndicatorContent() {
76
+ const {
77
+ total,
78
+ theme,
79
+ size,
80
+ activeIndex
81
+ } = this.props;
82
+ const indicatorContent = [];
83
+
84
+ for (let i = 0; i < total; i++) {
85
+ var _context, _context2;
86
+
87
+ indicatorContent.push( /*#__PURE__*/_react.default.createElement("span", {
88
+ // role='none'
89
+ key: i,
90
+ "data-index": i,
91
+ className: (0, _classnames.default)(["".concat(_constants.cssClasses.CAROUSEL_INDICATOR, "-item")], {
92
+ ["".concat(_constants.cssClasses.CAROUSEL_INDICATOR, "-item-active")]: i === activeIndex,
93
+ [(0, _concat.default)(_context = "".concat(_constants.cssClasses.CAROUSEL_INDICATOR, "-item-")).call(_context, theme)]: theme,
94
+ [(0, _concat.default)(_context2 = "".concat(_constants.cssClasses.CAROUSEL_INDICATOR, "-item-")).call(_context2, size)]: size
95
+ }),
96
+ onClick: () => this.handleIndicatorClick(i),
97
+ onMouseEnter: () => this.handleIndicatorHover(i)
98
+ }));
99
+ }
100
+
101
+ return indicatorContent;
102
+ }
103
+
104
+ render() {
105
+ var _context3, _context4;
106
+
107
+ const _a = this.props,
108
+ {
109
+ type,
110
+ size,
111
+ theme,
112
+ style,
113
+ className,
114
+ position
115
+ } = _a,
116
+ restProps = __rest(_a, ["type", "size", "theme", "style", "className", "position"]);
117
+
118
+ const classNames = (0, _classnames.default)(className, {
119
+ [_constants.cssClasses.CAROUSEL_INDICATOR]: true,
120
+ [(0, _concat.default)(_context3 = "".concat(_constants.cssClasses.CAROUSEL_INDICATOR, "-")).call(_context3, type)]: type,
121
+ [(0, _concat.default)(_context4 = "".concat(_constants.cssClasses.CAROUSEL_INDICATOR, "-")).call(_context4, position)]: position
122
+ });
123
+ const indicatorContent = this.renderIndicatorContent();
124
+ return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
125
+ className: classNames,
126
+ style: style
127
+ }, (0, _getDataAttr.default)(restProps)), indicatorContent);
128
+ }
129
+
130
+ }
131
+
132
+ CarouselIndicator.propTypes = {
133
+ activeKey: _propTypes.default.number,
134
+ className: _propTypes.default.string,
135
+ position: _propTypes.default.oneOf(_constants.strings.POSITION_MAP),
136
+ size: _propTypes.default.oneOf(_constants.strings.SIZE),
137
+ style: _propTypes.default.object,
138
+ theme: _propTypes.default.oneOf(_constants.strings.THEME_MAP),
139
+ total: _propTypes.default.number,
140
+ onIndicatorChange: _propTypes.default.func,
141
+ type: _propTypes.default.oneOf(_constants.strings.TYPE_MAP),
142
+ trigger: _propTypes.default.oneOf(_constants.strings.TRIGGER)
143
+ };
144
+ var _default = CarouselIndicator;
145
+ exports.default = _default;
@@ -0,0 +1,58 @@
1
+ import { ReactNode, ReactChild, ReactFragment, ReactPortal } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import BaseComponent from "../_base/baseComponent";
4
+ import { CarouselProps } from './interface';
5
+ import CarouselFoundation, { CarouselAdapter } from '@douyinfe/semi-foundation/lib/cjs/carousel/foundation';
6
+ import '@douyinfe/semi-foundation/lib/cjs/carousel/carousel.css';
7
+ export interface CarouselState {
8
+ activeIndex: number;
9
+ children: (ReactChild | ReactFragment | ReactPortal)[];
10
+ preIndex: number;
11
+ isReverse: boolean;
12
+ isInit: boolean;
13
+ }
14
+ declare class Carousel extends BaseComponent<CarouselProps, CarouselState> {
15
+ static propTypes: {
16
+ activeIndex: PropTypes.Requireable<number>;
17
+ animation: PropTypes.Requireable<"slide" | "fade">;
18
+ arrowProps: PropTypes.Requireable<object>;
19
+ autoPlay: PropTypes.Requireable<boolean | object>;
20
+ className: PropTypes.Requireable<string>;
21
+ defaultActiveIndex: PropTypes.Requireable<number>;
22
+ indicatorPosition: PropTypes.Requireable<"left" | "right" | "center">;
23
+ indicatorSize: PropTypes.Requireable<"small" | "medium">;
24
+ indicatorType: PropTypes.Requireable<"line" | "dot" | "columnar">;
25
+ theme: PropTypes.Requireable<"primary" | "dark" | "light">;
26
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
27
+ arrowType: PropTypes.Requireable<"hover" | "always">;
28
+ showArrow: PropTypes.Requireable<boolean>;
29
+ showIndicator: PropTypes.Requireable<boolean>;
30
+ slideDirection: PropTypes.Requireable<"left" | "right">;
31
+ speed: PropTypes.Requireable<number>;
32
+ style: PropTypes.Requireable<object>;
33
+ trigger: PropTypes.Requireable<"hover" | "click">;
34
+ };
35
+ static defaultProps: CarouselProps;
36
+ foundation: CarouselFoundation;
37
+ constructor(props: CarouselProps);
38
+ get adapter(): CarouselAdapter<CarouselProps, CarouselState>;
39
+ static getDerivedStateFromProps(props: CarouselProps, state: CarouselState): Partial<CarouselState>;
40
+ componentDidMount(): void;
41
+ componentWillUnmount(): void;
42
+ play: () => void;
43
+ stop: () => void;
44
+ goTo: (targetIndex: number) => void;
45
+ prev: () => void;
46
+ next: () => void;
47
+ handleAutoPlay: () => void;
48
+ handleMouseEnter: () => void;
49
+ handleMouseLeave: () => void;
50
+ onIndicatorChange: (activeIndex: number) => void;
51
+ getChildren: () => (ReactChild | ReactFragment | ReactPortal)[];
52
+ getValidIndex: (activeIndex: number) => number;
53
+ renderChildren: () => JSX.Element;
54
+ renderIndicator: () => JSX.Element;
55
+ renderArrow: () => JSX.Element;
56
+ render(): ReactNode;
57
+ }
58
+ export default Carousel;