UNPKG

6.39 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports["default"] = void 0;
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
15
16var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
18var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
20var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
21
22var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
23
24var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
25
26var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
27
28var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
29
30var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
31
32var _react = _interopRequireWildcard(require("react"));
33
34var _reactDom = require("react-dom");
35
36var _classnames = _interopRequireDefault(require("classnames"));
37
38var _omit = _interopRequireDefault(require("lodash/omit"));
39
40var _icon = _interopRequireDefault(require("../icon"));
41
42var _CheckableTag = _interopRequireDefault(require("./CheckableTag"));
43
44var _animate = _interopRequireDefault(require("../animate"));
45
46var _configure = require("../configure");
47
48function _createSuper(Derived) {
49 function isNativeReflectConstruct() {
50 if (typeof Reflect === "undefined" || !Reflect.construct) return false;
51 if (Reflect.construct.sham) return false;
52 if (typeof Proxy === "function") return true;
53
54 try {
55 Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
56 return true;
57 } catch (e) {
58 return false;
59 }
60 }
61
62 return function () {
63 var Super = (0, _getPrototypeOf2["default"])(Derived),
64 result;
65
66 if (isNativeReflectConstruct()) {
67 var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor;
68 result = Reflect.construct(Super, arguments, NewTarget);
69 } else {
70 result = Super.apply(this, arguments);
71 }
72
73 return (0, _possibleConstructorReturn2["default"])(this, result);
74 };
75}
76
77var Tag =
78/*#__PURE__*/
79function (_Component) {
80 (0, _inherits2["default"])(Tag, _Component);
81
82 var _super = _createSuper(Tag);
83
84 function Tag() {
85 var _this;
86
87 (0, _classCallCheck2["default"])(this, Tag);
88 _this = _super.apply(this, arguments);
89 _this.state = {
90 closing: false,
91 closed: false
92 };
93
94 _this.close = function (e) {
95 var onClose = _this.props.onClose;
96
97 if (onClose) {
98 onClose(e);
99 }
100
101 if (e.defaultPrevented) {
102 return;
103 }
104
105 var dom = (0, _reactDom.findDOMNode)((0, _assertThisInitialized2["default"])(_this));
106 dom.style.width = "".concat(dom.getBoundingClientRect().width, "px"); // It's Magic Code, don't know why
107
108 dom.style.width = "".concat(dom.getBoundingClientRect().width, "px");
109
110 _this.setState({
111 closing: true
112 });
113 };
114
115 _this.animationEnd = function (_, existed) {
116 var closed = _this.state.closed;
117
118 if (!existed && !closed) {
119 _this.setState({
120 closed: true,
121 closing: false
122 });
123
124 var afterClose = _this.props.afterClose;
125
126 if (afterClose) {
127 afterClose();
128 }
129 }
130 };
131
132 return _this;
133 }
134
135 (0, _createClass2["default"])(Tag, [{
136 key: "isPresetColor",
137 value: function isPresetColor(color) {
138 if (!color) {
139 return false;
140 }
141
142 return /^(pink|red|yellow|orange|cyan|green|blue|purple|geekblue|magenta|volcano|gold|lime|gray)(-inverse)?$/.test(color);
143 }
144 }, {
145 key: "render",
146 value: function render() {
147 var _classNames;
148
149 var _this$props = this.props,
150 customizePrefixCls = _this$props.prefixCls,
151 closable = _this$props.closable,
152 color = _this$props.color,
153 className = _this$props.className,
154 children = _this$props.children,
155 style = _this$props.style,
156 otherProps = (0, _objectWithoutProperties2["default"])(_this$props, ["prefixCls", "closable", "color", "className", "children", "style"]);
157 var prefixCls = (0, _configure.getPrefixCls)('tag', customizePrefixCls);
158 var _this$state = this.state,
159 closing = _this$state.closing,
160 closed = _this$state.closed;
161 var closeIcon = closable ? _react["default"].createElement(_icon["default"], {
162 type: "close",
163 onClick: this.close
164 }) : '';
165 var isPresetColor = this.isPresetColor(color);
166 var classString = (0, _classnames["default"])(prefixCls, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-").concat(color), isPresetColor), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-has-color"), color && !isPresetColor), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-close"), closing), _classNames), className); // fix https://fb.me/react-unknown-prop
167
168 var divProps = (0, _omit["default"])(otherProps, ['onClose', 'afterClose']);
169 var tagStyle = (0, _objectSpread2["default"])({}, style);
170
171 if (color && !isPresetColor) {
172 tagStyle.backgroundColor = color;
173 }
174
175 var tag = closed ? null : _react["default"].createElement("div", (0, _extends2["default"])({
176 hidden: closing
177 }, divProps, {
178 className: classString,
179 style: tagStyle
180 }), children, closeIcon);
181 return _react["default"].createElement(_animate["default"], {
182 component: "",
183 hiddenProp: "hidden",
184 transitionName: "".concat(prefixCls, "-zoom"),
185 transitionAppear: true,
186 onEnd: this.animationEnd
187 }, tag);
188 }
189 }]);
190 return Tag;
191}(_react.Component);
192
193exports["default"] = Tag;
194Tag.displayName = 'Tag';
195Tag.CheckableTag = _CheckableTag["default"];
196Tag.defaultProps = {
197 closable: false
198};
199//# sourceMappingURL=index.js.map