1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = void 0;
|
7 |
|
8 | var _vue = require("vue");
|
9 |
|
10 | var _type = require("../_util/type");
|
11 |
|
12 | var _CloseOutlined = _interopRequireDefault(require("@ant-design/icons-vue/CloseOutlined"));
|
13 |
|
14 | var _PlusOutlined = _interopRequireDefault(require("@ant-design/icons-vue/PlusOutlined"));
|
15 |
|
16 | var _src = _interopRequireWildcard(require("../vc-tabs/src"));
|
17 |
|
18 | var _TabContent = _interopRequireDefault(require("../vc-tabs/src/TabContent"));
|
19 |
|
20 | var _styleChecker = require("../_util/styleChecker");
|
21 |
|
22 | var _vueTypes = _interopRequireWildcard(require("../_util/vue-types"));
|
23 |
|
24 | var _propsUtil = require("../_util/props-util");
|
25 |
|
26 | var _vnode = require("../_util/vnode");
|
27 |
|
28 | var _isValid = _interopRequireDefault(require("../_util/isValid"));
|
29 |
|
30 | var _configProvider = require("../config-provider");
|
31 |
|
32 | var _TabBar = _interopRequireDefault(require("./TabBar"));
|
33 |
|
34 | function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
35 |
|
36 | function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
37 |
|
38 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
39 |
|
40 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
41 |
|
42 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
43 |
|
44 | function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
45 |
|
46 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
47 |
|
48 | function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
49 |
|
50 | var __rest = void 0 && (void 0).__rest || function (s, e) {
|
51 | var t = {};
|
52 |
|
53 | for (var p in s) {
|
54 | if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
55 | }
|
56 |
|
57 | if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
58 | if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
59 | }
|
60 | return t;
|
61 | };
|
62 |
|
63 | function _isSlot(s) {
|
64 | return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !(0, _vue.isVNode)(s);
|
65 | }
|
66 |
|
67 | var _default2 = (0, _vue.defineComponent)({
|
68 | TabPane: _src.TabPane,
|
69 | name: 'ATabs',
|
70 | inheritAttrs: false,
|
71 | props: {
|
72 | prefixCls: _vueTypes.default.string,
|
73 | activeKey: _vueTypes.default.oneOfType([_vueTypes.default.string, _vueTypes.default.number]),
|
74 | defaultActiveKey: _vueTypes.default.oneOfType([_vueTypes.default.string, _vueTypes.default.number]),
|
75 | hideAdd: _vueTypes.default.looseBool.def(false),
|
76 | centered: _vueTypes.default.looseBool.def(false),
|
77 | tabBarStyle: _vueTypes.default.object,
|
78 | tabBarExtraContent: _vueTypes.default.any,
|
79 | destroyInactiveTabPane: _vueTypes.default.looseBool.def(false),
|
80 | type: _vueTypes.default.oneOf((0, _type.tuple)('line', 'card', 'editable-card')),
|
81 | tabPosition: _vueTypes.default.oneOf(['top', 'right', 'bottom', 'left']).def('top'),
|
82 | size: _vueTypes.default.oneOf(['default', 'small', 'large']),
|
83 | animated: (0, _vueTypes.withUndefined)(_vueTypes.default.oneOfType([_vueTypes.default.looseBool, _vueTypes.default.object])),
|
84 | tabBarGutter: _vueTypes.default.number,
|
85 | renderTabBar: _vueTypes.default.func,
|
86 | onChange: {
|
87 | type: Function
|
88 | },
|
89 | onTabClick: _vueTypes.default.func,
|
90 | onPrevClick: {
|
91 | type: Function
|
92 | },
|
93 | onNextClick: {
|
94 | type: Function
|
95 | },
|
96 | onEdit: {
|
97 | type: Function
|
98 | }
|
99 | },
|
100 | emits: ['update:activeKey', 'edit', 'change'],
|
101 | setup: function setup() {
|
102 | return {
|
103 | configProvider: (0, _vue.inject)('configProvider', _configProvider.defaultConfigProvider)
|
104 | };
|
105 | },
|
106 | mounted: function mounted() {
|
107 | var NO_FLEX = ' no-flex';
|
108 | var tabNode = (0, _propsUtil.findDOMNode)(this);
|
109 |
|
110 | if (tabNode && !_styleChecker.isFlexSupported && tabNode.className.indexOf(NO_FLEX) === -1) {
|
111 | tabNode.className += NO_FLEX;
|
112 | }
|
113 | },
|
114 | methods: {
|
115 | removeTab: function removeTab(targetKey, e) {
|
116 | e.stopPropagation();
|
117 |
|
118 | if ((0, _isValid.default)(targetKey)) {
|
119 | this.$emit('edit', targetKey, 'remove');
|
120 | }
|
121 | },
|
122 | handleChange: function handleChange(activeKey) {
|
123 | this.$emit('update:activeKey', activeKey);
|
124 | this.$emit('change', activeKey);
|
125 | },
|
126 | createNewTab: function createNewTab(targetKey) {
|
127 | this.$emit('edit', targetKey, 'add');
|
128 | }
|
129 | },
|
130 | render: function render() {
|
131 | var _cls,
|
132 | _this = this,
|
133 | _contentCls;
|
134 |
|
135 | var props = (0, _propsUtil.getOptionProps)(this);
|
136 | var customizePrefixCls = props.prefixCls,
|
137 | size = props.size,
|
138 | _props$type = props.type,
|
139 | type = _props$type === void 0 ? 'line' : _props$type,
|
140 | tabPosition = props.tabPosition,
|
141 | _props$animated = props.animated,
|
142 | animated = _props$animated === void 0 ? true : _props$animated,
|
143 | hideAdd = props.hideAdd,
|
144 | renderTabBar = props.renderTabBar;
|
145 |
|
146 | var _a = this.$attrs,
|
147 | className = _a.class,
|
148 | restProps = __rest(_a, ["class"]);
|
149 |
|
150 | var getPrefixCls = this.configProvider.getPrefixCls;
|
151 | var prefixCls = getPrefixCls('tabs', customizePrefixCls);
|
152 | var children = (0, _propsUtil.filterEmpty)((0, _propsUtil.getSlot)(this));
|
153 | var tabBarExtraContent = (0, _propsUtil.getComponent)(this, 'tabBarExtraContent');
|
154 | var tabPaneAnimated = _typeof(animated) === 'object' ? animated.tabPane : animated;
|
155 |
|
156 | if (type !== 'line') {
|
157 | tabPaneAnimated = 'animated' in props ? tabPaneAnimated : false;
|
158 | }
|
159 |
|
160 | var cls = (_cls = {}, _defineProperty(_cls, className, className), _defineProperty(_cls, "".concat(prefixCls, "-vertical"), tabPosition === 'left' || tabPosition === 'right'), _defineProperty(_cls, "".concat(prefixCls, "-").concat(size), !!size), _defineProperty(_cls, "".concat(prefixCls, "-card"), type.indexOf('card') >= 0), _defineProperty(_cls, "".concat(prefixCls, "-").concat(type), true), _defineProperty(_cls, "".concat(prefixCls, "-no-animation"), !tabPaneAnimated), _cls);
|
161 |
|
162 | var childrenWithClose = [];
|
163 |
|
164 | if (type === 'editable-card') {
|
165 | childrenWithClose = [];
|
166 | children.forEach(function (child, index) {
|
167 | var props = (0, _propsUtil.getPropsData)(child);
|
168 | var closable = props.closable;
|
169 | closable = typeof closable === 'undefined' ? true : closable;
|
170 | var closeIcon = closable ? (0, _vue.createVNode)(_CloseOutlined.default, {
|
171 | "class": "".concat(prefixCls, "-close-x"),
|
172 | "onClick": function onClick(e) {
|
173 | return _this.removeTab(child.key, e);
|
174 | }
|
175 | }, null) : null;
|
176 | childrenWithClose.push((0, _vnode.cloneElement)(child, {
|
177 | tab: (0, _vue.createVNode)("div", {
|
178 | "class": closable ? undefined : "".concat(prefixCls, "-tab-unclosable")
|
179 | }, [(0, _propsUtil.getComponent)(child, 'tab'), closeIcon]),
|
180 | key: child.key || index
|
181 | }));
|
182 | });
|
183 |
|
184 | if (!hideAdd) {
|
185 | tabBarExtraContent = (0, _vue.createVNode)("span", null, [(0, _vue.createVNode)(_PlusOutlined.default, {
|
186 | "class": "".concat(prefixCls, "-new-tab"),
|
187 | "onClick": this.createNewTab
|
188 | }, null), tabBarExtraContent]);
|
189 | }
|
190 | }
|
191 |
|
192 | tabBarExtraContent = tabBarExtraContent ? (0, _vue.createVNode)("div", {
|
193 | "class": "".concat(prefixCls, "-extra-content")
|
194 | }, _isSlot(tabBarExtraContent) ? tabBarExtraContent : {
|
195 | default: function _default() {
|
196 | return [tabBarExtraContent];
|
197 | }
|
198 | }) : null;
|
199 | var renderTabBarSlot = renderTabBar || this.$slots.renderTabBar;
|
200 |
|
201 | var tabBarProps = _extends(_extends(_extends(_extends({}, props), {
|
202 | prefixCls: prefixCls,
|
203 | tabBarExtraContent: tabBarExtraContent,
|
204 | renderTabBar: renderTabBarSlot
|
205 | }), restProps), {
|
206 | children: children
|
207 | });
|
208 |
|
209 | var contentCls = (_contentCls = {}, _defineProperty(_contentCls, "".concat(prefixCls, "-").concat(tabPosition, "-content"), true), _defineProperty(_contentCls, "".concat(prefixCls, "-card-content"), type.indexOf('card') >= 0), _contentCls);
|
210 |
|
211 | var tabsProps = _extends(_extends(_extends(_extends({}, props), {
|
212 | prefixCls: prefixCls,
|
213 | tabBarPosition: tabPosition,
|
214 |
|
215 |
|
216 |
|
217 | renderTabBar: function renderTabBar() {
|
218 | return (0, _vue.createVNode)(_TabBar.default, _objectSpread({
|
219 | "key": "tabBar"
|
220 | }, tabBarProps), null);
|
221 | },
|
222 | renderTabContent: function renderTabContent() {
|
223 | return (0, _vue.createVNode)(_TabContent.default, {
|
224 | "class": contentCls,
|
225 | "animated": tabPaneAnimated,
|
226 | "animatedWithMargin": true
|
227 | }, null);
|
228 | },
|
229 | children: childrenWithClose.length > 0 ? childrenWithClose : children
|
230 | }), restProps), {
|
231 | onChange: this.handleChange,
|
232 | class: cls
|
233 | });
|
234 |
|
235 | return (0, _vue.createVNode)(_src.default, tabsProps, null);
|
236 | }
|
237 | });
|
238 |
|
239 | exports.default = _default2; |
\ | No newline at end of file |