bkui-vue 0.0.1-beta.412 → 0.0.1-beta.414

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.
@@ -8,7 +8,7 @@ declare const BkTab: {
8
8
  $: import("vue").ComponentInternalInstance;
9
9
  $data: {};
10
10
  $props: Partial<{
11
- type: "card" | "border-card" | "unborder-card" | "card-tab";
11
+ type: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
12
12
  active: string | number;
13
13
  extCls: string;
14
14
  closable: boolean;
@@ -28,8 +28,8 @@ declare const BkTab: {
28
28
  active: import("vue-types").VueTypeDef<string | number> & {
29
29
  default: string | number;
30
30
  };
31
- type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab"> & {
32
- default: "card" | "border-card" | "unborder-card" | "card-tab";
31
+ type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab" | "card-grid"> & {
32
+ default: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
33
33
  };
34
34
  tabPosition: import("vue-types").VueTypeDef<"top" | "right" | "left"> & {
35
35
  default: "top" | "right" | "left";
@@ -115,8 +115,8 @@ declare const BkTab: {
115
115
  active: import("vue-types").VueTypeDef<string | number> & {
116
116
  default: string | number;
117
117
  };
118
- type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab"> & {
119
- default: "card" | "border-card" | "unborder-card" | "card-tab";
118
+ type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab" | "card-grid"> & {
119
+ default: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
120
120
  };
121
121
  tabPosition: import("vue-types").VueTypeDef<"top" | "right" | "left"> & {
122
122
  default: "top" | "right" | "left";
@@ -193,7 +193,7 @@ declare const BkTab: {
193
193
  tabSort(dragTabIndex: number, dropTabIndex: number, sortType: string): boolean;
194
194
  tabDrag(dragTabIndex: number, dragEvent: DragEvent): void;
195
195
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "drag" | "add" | "remove" | "add-panel" | "tab-change" | "remove-panel" | "sort-change" | "on-drag-tab" | "update:active" | "sort")[], string, {
196
- type: "card" | "border-card" | "unborder-card" | "card-tab";
196
+ type: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
197
197
  active: string | number;
198
198
  extCls: string;
199
199
  closable: boolean;
@@ -233,8 +233,8 @@ declare const BkTab: {
233
233
  active: import("vue-types").VueTypeDef<string | number> & {
234
234
  default: string | number;
235
235
  };
236
- type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab"> & {
237
- default: "card" | "border-card" | "unborder-card" | "card-tab";
236
+ type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab" | "card-grid"> & {
237
+ default: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
238
238
  };
239
239
  tabPosition: import("vue-types").VueTypeDef<"top" | "right" | "left"> & {
240
240
  default: "top" | "right" | "left";
@@ -318,8 +318,8 @@ declare const BkTab: {
318
318
  active: import("vue-types").VueTypeDef<string | number> & {
319
319
  default: string | number;
320
320
  };
321
- type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab"> & {
322
- default: "card" | "border-card" | "unborder-card" | "card-tab";
321
+ type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab" | "card-grid"> & {
322
+ default: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
323
323
  };
324
324
  tabPosition: import("vue-types").VueTypeDef<"top" | "right" | "left"> & {
325
325
  default: "top" | "right" | "left";
@@ -396,7 +396,7 @@ declare const BkTab: {
396
396
  tabSort(dragTabIndex: number, dropTabIndex: number, sortType: string): boolean;
397
397
  tabDrag(dragTabIndex: number, dragEvent: DragEvent): void;
398
398
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "drag" | "add" | "remove" | "add-panel" | "tab-change" | "remove-panel" | "sort-change" | "on-drag-tab" | "update:active" | "sort")[], "change" | "drag" | "sort" | "add" | "remove" | "add-panel" | "tab-change" | "remove-panel" | "sort-change" | "on-drag-tab" | "update:active", {
399
- type: "card" | "border-card" | "unborder-card" | "card-tab";
399
+ type: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
400
400
  active: string | number;
401
401
  extCls: string;
402
402
  closable: boolean;
package/lib/tab/index.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("../shared"),require("vue-types"),require("vue"),require("../icon/"));else if("function"==typeof define&&define.amd)define(["../shared","vue-types","vue","../icon/"],t);else{var a="object"==typeof exports?t(require("../shared"),require("vue-types"),require("vue"),require("../icon/")):t(e["../shared"],e["vue-types"],e.vue,e["../icon/"]);for(var r in a)("object"==typeof exports?exports:e)[r]=a[r]}}(self,((e,t,a,r)=>(()=>{"use strict";var n={7685:e=>{e.exports=r},4212:t=>{t.exports=e},748:e=>{e.exports=a},210:e=>{e.exports=t}},o={};function l(e){var t=o[e];if(void 0!==t)return t.exports;var a=o[e]={exports:{}};return n[e](a,a.exports,l),a.exports}l.d=(e,t)=>{for(var a in t)l.o(t,a)&&!l.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};return(()=>{l.r(s),l.d(s,{BkTab:()=>m,BkTabPanel:()=>g,PositionEnum:()=>t,SortTypeEnum:()=>n,default:()=>T});var e,t,a=l(4212),r=l(210);!function(e){e.CARD="card",e.BORDER_CARD="border-card",e.UNBORDER_CARD="unborder-card",e.CARD_TAB="card-tab"}(e||(e={})),function(e){e.LEFT="left",e.RIGHT="right",e.TOP="top"}(t||(t={}));var n,o=(0,r.toType)("position",{}).def(t.TOP);!function(e){e.REPLACE="replace",e.INSERT="insert"}(n||(n={}));var i=(0,r.toType)("sortType",{}).def(n.REPLACE),c={tabAdd:{type:Function,default:function(){return{}}},tabChange:{type:Function,default:function(e){return e}},tabRemove:{type:Function,default:function(e){return e}},tabSort:{type:Function,default:function(){return{}}},tabDrag:{type:Function,default:function(){return{}}}},u={active:a.PropTypes.oneOfType([a.PropTypes.number,a.PropTypes.string]).def(""),type:(0,r.toType)("type",{}).def(e.BORDER_CARD),tabPosition:o,closable:Boolean,addable:Boolean,sortable:Boolean,sortType:i,labelHeight:a.PropTypes.number.def(50),scrollStep:a.PropTypes.number.def(200),extCls:a.PropTypes.string.def(""),validateActive:a.PropTypes.bool.def(!0),showHeader:a.PropTypes.bool.def(!0),changeOnHover:a.PropTypes.bool.def(!1),changeOnHoverDelay:a.PropTypes.number.def(1e3),activeBarSize:a.PropTypes.number.def(2),activeBarColor:a.PropTypes.string.def("#3a84ff")},p=Object.assign({active:a.PropTypes.oneOfType([a.PropTypes.number,a.PropTypes.string]).def(""),type:(0,r.toType)("type",{}).def(e.BORDER_CARD),activeBarColor:a.PropTypes.string.def("#3a84ff"),activeBarSize:a.PropTypes.number.def(2),panels:{type:Array,default:function(){return[]}},tabPosition:o,closable:Boolean,addable:Boolean,sortable:Boolean,sortType:i,labelHeight:a.PropTypes.number.def(50),scrollStep:a.PropTypes.number.def(200),validateActive:a.PropTypes.bool.def(!0),changeOnHover:a.PropTypes.bool.def(!1),changeOnHoverDelay:a.PropTypes.number.def(1e3)},c),d={name:a.PropTypes.oneOfType([a.PropTypes.number,a.PropTypes.string]).def(""),label:a.PropTypes.string||a.PropTypes.func,closable:a.PropTypes.bool,visible:a.PropTypes.bool.def(!0),disabled:a.PropTypes.bool,sortable:a.PropTypes.bool,renderDirective:(0,a.renderDirectiveType)(),panel:a.PropTypes.string||a.PropTypes.func};function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=new Array(t);a<t;a++)r[a]=e[a];return r}var v=l(748),b=l(7685);const y=(0,v.defineComponent)({name:"TabNav",props:p,setup:function(a){var r=(0,v.ref)(null),n=(0,v.computed)((function(){var n={width:0,height:0,bottom:0,left:0};if(!r.value)return n;if([t.LEFT,t.RIGHT].includes(a.tabPosition)){var o=r.value,l=o.clientHeight,s=o.offsetTop,i={width:"".concat(a.activeBarSize,"px"),height:"".concat(l,"px"),top:"".concat(s,"px"),background:a.activeBarColor};return a.tabPosition===t.LEFT?i.right=0:i.left=0,i}if(a.type===e.UNBORDER_CARD){var c=r.value,u=c.clientWidth,p=c.offsetLeft;return{width:"".concat(u,"px"),height:"".concat(a.activeBarSize,"px"),left:"".concat(p,"px"),bottom:0,background:a.activeBarColor}}return n})),o=(0,v.computed)((function(){if(!Array.isArray(a.panels)||!a.panels.length)return[];var e=[],t=!1;return a.panels.filter((function(r,n){if(!r.props)return null;var o=r.props,l=o.name,s=o.label,i=o.closable,c=o.visible,u=o.disabled,p=o.sortable;return!!c&&(a.active===l&&(t=!0),e.push({name:l,closable:i,visible:c,disabled:u,sortable:p,tabLabel:function(e){return r.slots.label?(0,v.h)(r.slots.label):[void 0,""].includes(e)?"选项卡".concat(n+1):"string"==typeof e?e:"function"==typeof e?(0,v.h)(e):e}(s)}),!0)})),!t&&a.validateActive&&a.panels[0].props&&a.tabChange(a.panels[0].props.name),e})),l=(0,v.ref)(-1),s=(0,v.ref)(-1),i=(0,v.ref)(""),c=function(e,t){return e===t},u={handleTabAdd:function(e){a.tabAdd(e)},dragstart:function(e,t){s.value=e,i.value=a.guid,Object.assign(t.dataTransfer,{effectAllowed:"move"}),a.tabDrag(e,t)},dragenter:function(e){c(i.value,a.guid)&&(l.value=e)},dragend:function(){l.value=-1,s.value=-1,i.value=null},drop:function(e,t){if(!c(i.value,a.guid))return!1;a.tabSort(s.value,e,t)},handleTabChange:function(e){a.tabChange(e)},handleTabRemove:function(e,t){a.tabRemove(e,t)}};return Object.assign(Object.assign({},u),{activeRef:r,activeBarStyle:n,navs:o,dragenterIndex:l,dragStartIndex:s,draggingEle:i,guid:Math.random().toString(16).substr(4)+Math.random().toString(16).substr(4)})},render:function(){var t,r,n,o=this,l=this.active,s=this.closable,i=this.addable,c=this.sortable,u=this.sortType,p=this.labelHeight,d=this.dragstart,f=this.dragenter,y=this.dragend,h=this.drop;return(0,v.createVNode)("div",{style:{lineHeight:"".concat(p,"px")},class:(0,a.resolveClassName)("tab-header")},[(0,v.createVNode)("div",{class:(0,a.resolveClassName)("tab-header-nav")},[o.navs.map((function(e,t){if(!e)return null;var r,n=e.name,i=e.disabled,p=e.tabLabel,g=function(e,t){return e||t};return(0,v.createVNode)("div",{key:n,onClick:function(){return o.handleTabChange(n)},draggable:g(e.sortable,c),onDragstart:function(e){return d(t,e)},ref:l===n?"activeRef":"",onDragenter:function(e){e.preventDefault(),f(t)},onDragleave:function(e){e.preventDefault()},onDragover:function(e){e.preventDefault()},onDragend:function(e){e.preventDefault(),y()},onDrop:function(e){e.preventDefault(),h(t,u)},class:(r=[(0,a.resolveClassName)("tab-header-item")],i&&r.push((0,a.resolveClassName)("tab-header--disabled")),l===n&&r.push((0,a.resolveClassName)("tab-header--active")),r.join(" "))},[(0,v.createVNode)("div",null,[p]),g(e.closable,s)&&(0,v.createVNode)(b.Close,{class:(0,a.resolveClassName)("tab-header-item-close"),onClick:function(){return o.handleTabRemove(t,e)}},null)])})),o.type===e.UNBORDER_CARD?(0,v.createVNode)("div",{style:o.activeBarStyle,class:(0,a.resolveClassName)("tab-header-active-bar")},null):"",(0,v.createVNode)("div",{style:this.activeBarStyle,class:(0,a.resolveClassName)("tab-header-active-bar")},null)]),(n=[],"function"==typeof o.$slots.add?n.push(null===(r=(t=o.$slots).add)||void 0===r?void 0:r.call(t,v.h)):i&&n.push((0,v.createVNode)("div",{onClick:o.handleTabAdd},[(0,v.createVNode)(b.Plus,{style:"display:flex;",width:26,height:26},null)])),n.length?(0,v.createVNode)("div",{class:(0,a.resolveClassName)("tab-header-operation")},[n.map((function(e,t){return(0,v.createVNode)("div",{class:(0,a.resolveClassName)("tab-header-item"),key:t},[e])}))]):null),"function"==typeof this.$slots.setting&&(0,v.createVNode)("div",{class:(0,a.resolveClassName)("tab-header-setting")},[this.$slots.setting()])])}}),h=(0,v.defineComponent)({name:"Tab",components:{TabNav:y},props:u,emits:["add-panel","tab-change","remove-panel","sort-change","on-drag-tab","add","change","remove","update:active","sort","drag"],setup:function(e,t){var a=t.slots,r=t.emit,o=(0,v.ref)(!1),l=(0,v.ref)([]),s=(0,v.getCurrentInstance)(),i=function e(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=t.children;return(r||[]).forEach((function(t){var r=t.type;"TabPanel"===(r=r.name||r)&&t.component?a.push(t.component):r!==v.Fragment&&"template"!==r||e(t,a)})),a},c=function(){if(a.default){var e=s.subTree.children[1].children;if(!e)return;var t=e[0],r=i(t);r.length!==l.value.length&&(l.value=r)}};(0,v.onMounted)((function(){c(),o.value=!0})),(0,v.onUpdated)((function(){c()}));var u={tabAdd:function(e){r("add",{e}),r("add-panel",{e})},tabChange:function(e){r("change",e),r("tab-change",e),r("update:active",e)},tabRemove:function(e,t){r("remove",e,t),r("remove-panel",e,t)},tabSort:function(e,t,a){var o,s=l.value;if(a===n.INSERT)if(e<t)s.splice(t+1,0,l[e]),s.splice(e,1);else{if(!(e>t))return!1;s.splice(t,0,l[e]),s.splice(e+1,1)}else{var i=s[t];s[t]=s[e],s[e]=i}l.value=function(e){if(Array.isArray(e))return f(e)}(o=s)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(o)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?f(e,t):void 0}}(o)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),r("sort",e,t,a),r("sort-change",e,t,a)},tabDrag:function(e,t){r("drag",e,t),r("on-drag-tab",e,t)}};return Object.assign(Object.assign({},u),{isMounted:o,panels:l})},render:function(){var r,n,o,l,s,i=this;return(0,v.createVNode)("div",{class:(s=[(0,a.resolveClassName)("tab"),i.extCls],i.tabPosition===t.TOP?s.push((0,a.resolveClassName)("tab--".concat(i.tabPosition)),(0,a.resolveClassName)("tab--".concat(i.type))):(s.push((0,a.resolveClassName)("tab--".concat(i.tabPosition))),i.type===e.CARD_TAB&&s.push((0,a.resolveClassName)("tab--vertical-tab"))),s)},[(o=i.panels,l={panels:o,active:i.active,type:i.type,closable:i.closable,addable:i.addable,sortable:i.sortable,sortType:i.sortType,labelHeight:i.labelHeight,scrollStep:i.scrollStep,validateActive:i.validateActive,changeOnHover:i.changeOnHover,changeOnHoverDelay:i.changeOnHoverDelay,tabPosition:i.tabPosition,activeBarSize:i.activeBarSize,activeBarColor:i.activeBarColor,tabAdd:i.tabAdd,tabChange:i.tabChange,tabRemove:i.tabRemove,tabSort:i.tabSort,tabDrag:i.tabDrag},o&&Array.isArray(o)?(0,v.createVNode)(y,l,i.$slots):null),(0,v.createVNode)("div",{class:(0,a.resolveClassName)("tab-content")},[null===(n=(r=this.$slots).default)||void 0===n?void 0:n.call(r)])])}}),g=(0,v.defineComponent)({name:"TabPanel",props:d,render:function(){var e=this,t=this.name===this.$parent.active;return(0,v.withDirectives)((0,v.createVNode)("div",{ref:"content",class:(0,a.resolveClassName)("tab-panel")},[!e.visible||"if"===e.renderDirective&&!t?null:"function"==typeof e.panel?e.panel(v.h):"function"==typeof e.$slots.default?e.$slots.default(null):"function"==typeof e.$slots.panel?e.$slots.panel(null):null]),[[v.vShow,t]])}});var m=(0,a.withInstallProps)(h,{TabPanel:g});const T=m})(),s})()));
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("../shared"),require("vue-types"),require("vue"),require("../icon/"));else if("function"==typeof define&&define.amd)define(["../shared","vue-types","vue","../icon/"],t);else{var a="object"==typeof exports?t(require("../shared"),require("vue-types"),require("vue"),require("../icon/")):t(e["../shared"],e["vue-types"],e.vue,e["../icon/"]);for(var r in a)("object"==typeof exports?exports:e)[r]=a[r]}}(self,((e,t,a,r)=>(()=>{"use strict";var n={7685:e=>{e.exports=r},4212:t=>{t.exports=e},748:e=>{e.exports=a},210:e=>{e.exports=t}},o={};function l(e){var t=o[e];if(void 0!==t)return t.exports;var a=o[e]={exports:{}};return n[e](a,a.exports,l),a.exports}l.d=(e,t)=>{for(var a in t)l.o(t,a)&&!l.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};return(()=>{l.r(s),l.d(s,{BkTab:()=>m,BkTabPanel:()=>g,PositionEnum:()=>t,SortTypeEnum:()=>n,default:()=>T});var e,t,a=l(4212),r=l(210);!function(e){e.CARD="card",e.BORDER_CARD="border-card",e.UNBORDER_CARD="unborder-card",e.CARD_TAB="card-tab",e.CARD_GRID="card-grid"}(e||(e={})),function(e){e.LEFT="left",e.RIGHT="right",e.TOP="top"}(t||(t={}));var n,o=(0,r.toType)("position",{}).def(t.TOP);!function(e){e.REPLACE="replace",e.INSERT="insert"}(n||(n={}));var i=(0,r.toType)("sortType",{}).def(n.REPLACE),c={tabAdd:{type:Function,default:function(){return{}}},tabChange:{type:Function,default:function(e){return e}},tabRemove:{type:Function,default:function(e){return e}},tabSort:{type:Function,default:function(){return{}}},tabDrag:{type:Function,default:function(){return{}}}},u={active:a.PropTypes.oneOfType([a.PropTypes.number,a.PropTypes.string]).def(""),type:(0,r.toType)("type",{}).def(e.BORDER_CARD),tabPosition:o,closable:Boolean,addable:Boolean,sortable:Boolean,sortType:i,labelHeight:a.PropTypes.number.def(50),scrollStep:a.PropTypes.number.def(200),extCls:a.PropTypes.string.def(""),validateActive:a.PropTypes.bool.def(!0),showHeader:a.PropTypes.bool.def(!0),changeOnHover:a.PropTypes.bool.def(!1),changeOnHoverDelay:a.PropTypes.number.def(1e3),activeBarSize:a.PropTypes.number.def(2),activeBarColor:a.PropTypes.string.def("#3a84ff")},p=Object.assign({active:a.PropTypes.oneOfType([a.PropTypes.number,a.PropTypes.string]).def(""),type:(0,r.toType)("type",{}).def(e.BORDER_CARD),activeBarColor:a.PropTypes.string.def("#3a84ff"),activeBarSize:a.PropTypes.number.def(2),panels:{type:Array,default:function(){return[]}},tabPosition:o,closable:Boolean,addable:Boolean,sortable:Boolean,sortType:i,labelHeight:a.PropTypes.number.def(50),scrollStep:a.PropTypes.number.def(200),validateActive:a.PropTypes.bool.def(!0),changeOnHover:a.PropTypes.bool.def(!1),changeOnHoverDelay:a.PropTypes.number.def(1e3)},c),d={name:a.PropTypes.oneOfType([a.PropTypes.number,a.PropTypes.string]).def(""),label:a.PropTypes.string||a.PropTypes.func,closable:a.PropTypes.bool,visible:a.PropTypes.bool.def(!0),disabled:a.PropTypes.bool,sortable:a.PropTypes.bool,renderDirective:(0,a.renderDirectiveType)(),panel:a.PropTypes.string||a.PropTypes.func};function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=new Array(t);a<t;a++)r[a]=e[a];return r}var v=l(748),b=l(7685);const y=(0,v.defineComponent)({name:"TabNav",props:p,setup:function(a){var r=(0,v.ref)(null),n=(0,v.computed)((function(){var n={width:0,height:0,bottom:0,left:0};if(!r.value)return n;if([t.LEFT,t.RIGHT].includes(a.tabPosition)){var o=r.value,l=o.clientHeight,s=o.offsetTop,i={width:"".concat(a.activeBarSize,"px"),height:"".concat(l,"px"),top:"".concat(s,"px"),background:a.activeBarColor};return a.tabPosition===t.LEFT?i.right=0:i.left=0,i}if(a.type===e.UNBORDER_CARD){var c=r.value,u=c.clientWidth,p=c.offsetLeft;return{width:"".concat(u,"px"),height:"".concat(a.activeBarSize,"px"),left:"".concat(p,"px"),bottom:0,background:a.activeBarColor}}return n})),o=(0,v.computed)((function(){if(!Array.isArray(a.panels)||!a.panels.length)return[];var e=[],t=!1;return a.panels.filter((function(r,n){if(!r.props)return null;var o=r.props,l=o.name,s=o.label,i=o.closable,c=o.visible,u=o.disabled,p=o.sortable;return!!c&&(a.active===l&&(t=!0),e.push({name:l,closable:i,visible:c,disabled:u,sortable:p,tabLabel:function(e){return r.slots.label?(0,v.h)(r.slots.label):[void 0,""].includes(e)?"选项卡".concat(n+1):"string"==typeof e?e:"function"==typeof e?(0,v.h)(e):e}(s)}),!0)})),!t&&a.validateActive&&a.panels[0].props&&a.tabChange(a.panels[0].props.name),e})),l=(0,v.ref)(-1),s=(0,v.ref)(-1),i=(0,v.ref)(""),c=function(e,t){return e===t},u={handleTabAdd:function(e){a.tabAdd(e)},dragstart:function(e,t){s.value=e,i.value=a.guid,Object.assign(t.dataTransfer,{effectAllowed:"move"}),a.tabDrag(e,t)},dragenter:function(e){c(i.value,a.guid)&&(l.value=e)},dragend:function(){l.value=-1,s.value=-1,i.value=null},drop:function(e,t){if(!c(i.value,a.guid))return!1;a.tabSort(s.value,e,t)},handleTabChange:function(e){a.tabChange(e)},handleTabRemove:function(e,t){a.tabRemove(e,t)}};return Object.assign(Object.assign({},u),{activeRef:r,activeBarStyle:n,navs:o,dragenterIndex:l,dragStartIndex:s,draggingEle:i,guid:Math.random().toString(16).substr(4)+Math.random().toString(16).substr(4)})},render:function(){var t,r,n,o=this,l=this.active,s=this.closable,i=this.addable,c=this.sortable,u=this.sortType,p=this.labelHeight,d=this.dragstart,f=this.dragenter,y=this.dragend,h=this.drop,g="function"==typeof this.$slots.setting?(0,v.createVNode)("div",{class:(0,a.resolveClassName)("tab-header-setting")},[this.$slots.setting()]):null,m=(n=[],"function"==typeof o.$slots.add?n.push(null===(r=(t=o.$slots).add)||void 0===r?void 0:r.call(t,v.h)):i&&n.push((0,v.createVNode)("div",{onClick:o.handleTabAdd},[(0,v.createVNode)(b.Plus,{style:"display:flex;",width:26,height:26},null)])),n.length?(0,v.createVNode)("div",{class:(0,a.resolveClassName)("tab-header-operation")},[n.map((function(e,t){return(0,v.createVNode)("div",{class:(0,a.resolveClassName)("tab-header-item"),key:t},[e])}))]):null);return(0,v.createVNode)("div",{style:{lineHeight:"".concat(p,"px")},class:(0,a.resolveClassName)("tab-header")},[(0,v.createVNode)("div",{class:[(0,a.resolveClassName)("tab-header-nav"),m||g?"tab-header-auto":""]},[o.type===e.UNBORDER_CARD?(0,v.createVNode)("div",{style:o.activeBarStyle,class:(0,a.resolveClassName)("tab-header-active-bar")},null):"",o.navs.map((function(e,t){if(!e)return null;var r,n=e.name,i=e.disabled,p=e.tabLabel,g=function(e,t){return e||t};return(0,v.createVNode)("div",{key:n,onClick:function(){return o.handleTabChange(n)},draggable:g(e.sortable,c),onDragstart:function(e){return d(t,e)},ref:l===n?"activeRef":"",onDragenter:function(e){e.preventDefault(),f(t)},onDragleave:function(e){e.preventDefault()},onDragover:function(e){e.preventDefault()},onDragend:function(e){e.preventDefault(),y()},onDrop:function(e){e.preventDefault(),h(t,u)},class:(r=[(0,a.resolveClassName)("tab-header-item")],i&&r.push((0,a.resolveClassName)("tab-header--disabled")),l===n&&r.push((0,a.resolveClassName)("tab-header--active")),r.join(" "))},[(0,v.createVNode)("div",null,[p]),g(e.closable,s)?(0,v.createVNode)("span",{class:(0,a.resolveClassName)("tab-header--close"),onClick:function(){return o.handleTabRemove(t,e)}},[(0,v.createVNode)(b.Close,null,null)]):""])}))]),m,g])}}),h=(0,v.defineComponent)({name:"Tab",components:{TabNav:y},props:u,emits:["add-panel","tab-change","remove-panel","sort-change","on-drag-tab","add","change","remove","update:active","sort","drag"],setup:function(e,t){var a=t.slots,r=t.emit,o=(0,v.ref)(!1),l=(0,v.ref)([]),s=(0,v.getCurrentInstance)(),i=function e(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=t.children;return(r||[]).forEach((function(t){var r=t.type;"TabPanel"===(r=r.name||r)&&t.component?a.push(t.component):r!==v.Fragment&&"template"!==r||e(t,a)})),a},c=function(){if(a.default){var e=s.subTree.children[1].children;if(!e)return;var t=e[0],r=i(t);r.length!==l.value.length&&(l.value=r)}};(0,v.onMounted)((function(){c(),o.value=!0})),(0,v.onUpdated)((function(){c()}));var u={tabAdd:function(e){r("add",{e}),r("add-panel",{e})},tabChange:function(e){r("change",e),r("tab-change",e),r("update:active",e)},tabRemove:function(e,t){r("remove",e,t),r("remove-panel",e,t)},tabSort:function(e,t,a){var o,s=l.value;if(a===n.INSERT)if(e<t)s.splice(t+1,0,l[e]),s.splice(e,1);else{if(!(e>t))return!1;s.splice(t,0,l[e]),s.splice(e+1,1)}else{var i=s[t];s[t]=s[e],s[e]=i}l.value=function(e){if(Array.isArray(e))return f(e)}(o=s)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(o)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?f(e,t):void 0}}(o)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),r("sort",e,t,a),r("sort-change",e,t,a)},tabDrag:function(e,t){r("drag",e,t),r("on-drag-tab",e,t)}};return Object.assign(Object.assign({},u),{isMounted:o,panels:l})},render:function(){var r,n,o,l,s,i=this;return(0,v.createVNode)("div",{class:(s=[(0,a.resolveClassName)("tab"),i.extCls],i.tabPosition===t.TOP?s.push((0,a.resolveClassName)("tab--".concat(i.tabPosition)),(0,a.resolveClassName)("tab--".concat(i.type))):(s.push((0,a.resolveClassName)("tab--".concat(i.tabPosition))),i.type===e.CARD_TAB&&s.push((0,a.resolveClassName)("tab--vertical-tab"))),s)},[(o=i.panels,l={panels:o,active:i.active,type:i.type,closable:i.closable,addable:i.addable,sortable:i.sortable,sortType:i.sortType,labelHeight:i.labelHeight,scrollStep:i.scrollStep,validateActive:i.validateActive,changeOnHover:i.changeOnHover,changeOnHoverDelay:i.changeOnHoverDelay,tabPosition:i.tabPosition,activeBarSize:i.activeBarSize,activeBarColor:i.activeBarColor,tabAdd:i.tabAdd,tabChange:i.tabChange,tabRemove:i.tabRemove,tabSort:i.tabSort,tabDrag:i.tabDrag},o&&Array.isArray(o)?(0,v.createVNode)(y,l,i.$slots):null),(0,v.createVNode)("div",{class:(0,a.resolveClassName)("tab-content")},[null===(n=(r=this.$slots).default)||void 0===n?void 0:n.call(r)])])}}),g=(0,v.defineComponent)({name:"TabPanel",props:d,render:function(){var e=this,t=this.name===this.$parent.active;return(0,v.withDirectives)((0,v.createVNode)("div",{ref:"content",class:(0,a.resolveClassName)("tab-panel")},[!e.visible||"if"===e.renderDirective&&!t?null:"function"==typeof e.panel?e.panel(v.h):"function"==typeof e.$slots.default?e.$slots.default(null):"function"==typeof e.$slots.panel?e.$slots.panel(null):null]),[[v.vShow,t]])}});var m=(0,a.withInstallProps)(h,{TabPanel:g});const T=m})(),s})()));
@@ -3,7 +3,8 @@ export declare enum TabTypeEnum {
3
3
  CARD = "card",
4
4
  BORDER_CARD = "border-card",
5
5
  UNBORDER_CARD = "unborder-card",
6
- CARD_TAB = "card-tab"
6
+ CARD_TAB = "card-tab",
7
+ CARD_GRID = "card-grid"
7
8
  }
8
9
  export declare enum PositionEnum {
9
10
  LEFT = "left",
@@ -68,8 +69,8 @@ export declare const tabProps: {
68
69
  active: import("vue-types").VueTypeDef<string | number> & {
69
70
  default: string | number;
70
71
  };
71
- type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab"> & {
72
- default: "card" | "border-card" | "unborder-card" | "card-tab";
72
+ type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab" | "card-grid"> & {
73
+ default: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
73
74
  };
74
75
  tabPosition: import("vue-types").VueTypeDef<"top" | "right" | "left"> & {
75
76
  default: "top" | "right" | "left";
@@ -150,8 +151,8 @@ export declare const tabNavProps: {
150
151
  active: import("vue-types").VueTypeDef<string | number> & {
151
152
  default: string | number;
152
153
  };
153
- type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab"> & {
154
- default: "card" | "border-card" | "unborder-card" | "card-tab";
154
+ type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab" | "card-grid"> & {
155
+ default: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
155
156
  };
156
157
  activeBarColor: import("vue-types").VueTypeValidableDef<string> & {
157
158
  default: string;
@@ -23,8 +23,8 @@ declare const _default: import("vue").DefineComponent<{
23
23
  active: import("vue-types").VueTypeDef<string | number> & {
24
24
  default: string | number;
25
25
  };
26
- type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab"> & {
27
- default: "card" | "border-card" | "unborder-card" | "card-tab";
26
+ type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab" | "card-grid"> & {
27
+ default: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
28
28
  };
29
29
  activeBarColor: import("vue-types").VueTypeValidableDef<string> & {
30
30
  default: string;
@@ -121,8 +121,8 @@ declare const _default: import("vue").DefineComponent<{
121
121
  active: import("vue-types").VueTypeDef<string | number> & {
122
122
  default: string | number;
123
123
  };
124
- type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab"> & {
125
- default: "card" | "border-card" | "unborder-card" | "card-tab";
124
+ type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab" | "card-grid"> & {
125
+ default: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
126
126
  };
127
127
  activeBarColor: import("vue-types").VueTypeValidableDef<string> & {
128
128
  default: string;
@@ -175,7 +175,7 @@ declare const _default: import("vue").DefineComponent<{
175
175
  default: number;
176
176
  };
177
177
  }>>, {
178
- type: "card" | "border-card" | "unborder-card" | "card-tab";
178
+ type: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
179
179
  active: string | number;
180
180
  closable: boolean;
181
181
  sortType: "replace" | "insert";
package/lib/tab/tab.css CHANGED
@@ -13,6 +13,23 @@
13
13
  display: flex;
14
14
  color: #63656e;
15
15
  }
16
+ .bk-tab--left .bk-tab-header {
17
+ border-right: 1px solid #dcdee5;
18
+ }
19
+ .bk-tab--right .bk-tab-header {
20
+ border-left: 1px solid #dcdee5;
21
+ }
22
+ .bk-tab--vertical-tab .bk-tab-header {
23
+ border: 0;
24
+ }
25
+ .bk-tab--left .bk-tab-header,
26
+ .bk-tab--right .bk-tab-header {
27
+ flex-direction: column;
28
+ }
29
+ .bk-tab--left .bk-tab-header > div,
30
+ .bk-tab--right .bk-tab-header > div {
31
+ flex-direction: column;
32
+ }
16
33
  .bk-tab--card-tab .bk-tab-header,
17
34
  .bk-tab--vertical-tab .bk-tab-header {
18
35
  background: #F0F1F5;
@@ -20,15 +37,28 @@
20
37
  .bk-tab--card-tab .bk-tab-header {
21
38
  border-radius: 4px 4px 0;
22
39
  }
40
+ .bk-tab--card .bk-tab-header,
41
+ .bk-tab--vertical-card .bk-tab-header {
42
+ border-bottom: 1px solid #dcdee5;
43
+ }
44
+ .bk-tab--border-card .bk-tab-header {
45
+ border: solid #dcdee5;
46
+ border-width: 1px 1px 1px 0;
47
+ }
48
+ .bk-tab--border-card .bk-tab-header {
49
+ background: #FAFBFD;
50
+ }
51
+ .bk-tab--unborder-card .bk-tab-header {
52
+ border-bottom: 1px solid #dcdee5;
53
+ }
23
54
  .bk-tab-header > div {
24
55
  display: flex;
25
56
  flex-wrap: nowrap;
26
- margin-bottom: -1px;
27
57
  }
28
58
  .bk-tab--card .bk-tab-header > div,
29
- .bk-tab--border-card .bk-tab-header > div,
30
- .bk-tab--vertical-card .bk-tab-header > div {
31
- border-right: 1px solid #dcdee5;
59
+ .bk-tab--vertical-card .bk-tab-header > div,
60
+ .bk-tab--border-card .bk-tab-header > div {
61
+ margin-bottom: -1px;
32
62
  }
33
63
  .bk-tab-header-nav {
34
64
  position: relative;
@@ -73,37 +103,7 @@
73
103
  .bk-tab-header-setting {
74
104
  justify-self: flex-end;
75
105
  margin-left: auto;
76
- }
77
- .bk-tab--left .bk-tab-header {
78
- border-right: 1px solid #dcdee5;
79
- }
80
- .bk-tab--right .bk-tab-header {
81
- border-left: 1px solid #dcdee5;
82
- }
83
- .bk-tab--vertical-tab .bk-tab-header {
84
- border: 0;
85
- }
86
- .bk-tab--left .bk-tab-header,
87
- .bk-tab--right .bk-tab-header {
88
- flex-direction: column;
89
- }
90
- .bk-tab--left .bk-tab-header > div,
91
- .bk-tab--right .bk-tab-header > div {
92
- flex-direction: column;
93
- }
94
- .bk-tab--card .bk-tab-header,
95
- .bk-tab--vertical-card .bk-tab-header {
96
- border-bottom: 1px solid #dcdee5;
97
- }
98
- .bk-tab--border-card .bk-tab-header {
99
- border: solid #dcdee5;
100
- border-width: 1px 1px 1px 0;
101
- }
102
- .bk-tab--border-card .bk-tab-header {
103
- background: #FAFBFD;
104
- }
105
- .bk-tab--unborder-card .bk-tab-header {
106
- border-bottom: 1px solid #dcdee5;
106
+ white-space: nowrap;
107
107
  }
108
108
  .bk-tab-header-item {
109
109
  display: flex;
@@ -112,14 +112,6 @@
112
112
  justify-content: center;
113
113
  align-items: center;
114
114
  }
115
- .bk-tab-header-item:hover {
116
- color: #3a84ff;
117
- }
118
- .bk-tab-header-item:hover .bk-tab-header-item-close {
119
- display: block;
120
- margin-left: 5px;
121
- color: #ea3636;
122
- }
123
115
  .bk-tab--top .bk-tab-header-item {
124
116
  padding: 0 20px;
125
117
  }
@@ -138,12 +130,6 @@
138
130
  .bk-tab--border-card .bk-tab-header-item,
139
131
  .bk-tab--vertical-card .bk-tab-header-item {
140
132
  border-right: 1px solid #dcdee5;
141
- border-bottom: 1px solid #dcdee5;
142
- }
143
- .bk-tab--card .bk-tab-header-item:last-of-type,
144
- .bk-tab--border-card .bk-tab-header-item:last-of-type,
145
- .bk-tab--vertical-card .bk-tab-header-item:last-of-type {
146
- border-right: none;
147
133
  }
148
134
  .bk-tab--card-tab .bk-tab-header-item {
149
135
  position: relative;
@@ -164,14 +150,24 @@
164
150
  right: 0;
165
151
  left: initial;
166
152
  }
153
+ .bk-tab--card-grid .bk-tab-header-item {
154
+ height: 40px;
155
+ line-height: 40px;
156
+ background: #EAEBF0;
157
+ border-radius: 4px 4px 0 0;
158
+ margin-right: 8px;
159
+ }
167
160
  .bk-tab-header-operation .bk-tab-header-item {
168
161
  padding-right: 12px;
169
162
  padding-left: 12px;
170
163
  }
171
- .bk-tab-header-item-close {
172
- display: none;
173
- font-size: 16px;
174
- color: #c4c6cc;
164
+ .bk-tab-header-item:hover {
165
+ color: #3a84ff;
166
+ }
167
+ .bk-tab-header-item:hover .bk-tab-header--close {
168
+ display: block;
169
+ margin-left: 5px;
170
+ color: #ea3636;
175
171
  }
176
172
  .bk-tab-header--active {
177
173
  color: #3a84ff;
@@ -207,6 +203,14 @@
207
203
  /* stylelint-disable-next-line declaration-no-important */
208
204
  display: none !important;
209
205
  }
206
+ .bk-tab--card-grid .bk-tab-header--active {
207
+ background: #FFFFFF;
208
+ }
209
+ .bk-tab-header--close {
210
+ display: none;
211
+ font-size: 16px;
212
+ color: #c4c6cc;
213
+ }
210
214
  .bk-tab-header--disabled {
211
215
  color: #aaa;
212
216
  pointer-events: none;
@@ -228,6 +232,11 @@
228
232
  border: solid #dcdee5;
229
233
  border-width: 0 1px 1px;
230
234
  }
235
+ .bk-tab--card-grid .bk-tab-content {
236
+ background: #FFFFFF;
237
+ box-shadow: 0 2px 4px 0 #1919290d;
238
+ border-radius: 0 4px 4px 4px;
239
+ }
231
240
  .bk-tab-panel {
232
241
  height: 100%;
233
242
  }
package/lib/tab/tab.d.ts CHANGED
@@ -2,8 +2,8 @@ declare const _default: import("vue").DefineComponent<{
2
2
  active: import("vue-types").VueTypeDef<string | number> & {
3
3
  default: string | number;
4
4
  };
5
- type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab"> & {
6
- default: "card" | "border-card" | "unborder-card" | "card-tab";
5
+ type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab" | "card-grid"> & {
6
+ default: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
7
7
  };
8
8
  tabPosition: import("vue-types").VueTypeDef<"top" | "right" | "left"> & {
9
9
  default: "top" | "right" | "left";
@@ -71,8 +71,8 @@ declare const _default: import("vue").DefineComponent<{
71
71
  active: import("vue-types").VueTypeDef<string | number> & {
72
72
  default: string | number;
73
73
  };
74
- type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab"> & {
75
- default: "card" | "border-card" | "unborder-card" | "card-tab";
74
+ type: import("vue-types").VueTypeDef<"card" | "border-card" | "unborder-card" | "card-tab" | "card-grid"> & {
75
+ default: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
76
76
  };
77
77
  tabPosition: import("vue-types").VueTypeDef<"top" | "right" | "left"> & {
78
78
  default: "top" | "right" | "left";
@@ -141,7 +141,7 @@ declare const _default: import("vue").DefineComponent<{
141
141
  "onUpdate:active"?: (...args: any[]) => any;
142
142
  onSort?: (...args: any[]) => any;
143
143
  }, {
144
- type: "card" | "border-card" | "unborder-card" | "card-tab";
144
+ type: "card" | "border-card" | "unborder-card" | "card-tab" | "card-grid";
145
145
  active: string | number;
146
146
  extCls: string;
147
147
  closable: boolean;
package/lib/tab/tab.less CHANGED
@@ -28,6 +28,26 @@
28
28
  display: flex;
29
29
  color: @tab-color;
30
30
 
31
+ .@{bk-prefix}-tab--left & {
32
+ border-right: 1px solid @tab-border;
33
+ }
34
+
35
+ .@{bk-prefix}-tab--right & {
36
+ border-left: 1px solid @tab-border;
37
+ }
38
+
39
+ .@{bk-prefix}-tab--vertical-tab & {
40
+ border: 0;
41
+ }
42
+
43
+ .@{bk-prefix}-tab--left &, .@{bk-prefix}-tab--right & {
44
+ flex-direction: column;
45
+
46
+ > div {
47
+ flex-direction: column;
48
+ }
49
+ }
50
+
31
51
  .@{bk-prefix}-tab--card-tab &, .@{bk-prefix}-tab--vertical-tab & {
32
52
  background: @tab-card-tab-bg;
33
53
  }
@@ -36,19 +56,38 @@
36
56
  border-radius: 4px 4px 0;
37
57
  }
38
58
 
59
+ .@{bk-prefix}-tab--card &, .@{bk-prefix}-tab--vertical-card & {
60
+ border-bottom: 1px solid @tab-border;
61
+ }
62
+
63
+ .@{bk-prefix}-tab--border-card & {
64
+ border: solid @tab-border;
65
+ border-width: 1px 1px 1px 0;
66
+ }
67
+
68
+ .@{bk-prefix}-tab--border-card & {
69
+ background: @tab-header-bg;
70
+ }
71
+
72
+ .@{bk-prefix}-tab--unborder-card & {
73
+ border-bottom: 1px solid @tab-border;
74
+ }
75
+
76
+
77
+
78
+
39
79
  > div {
40
80
  display: flex;
41
-
42
81
  flex-wrap: nowrap;
43
- margin-bottom: -1px;
44
-
45
- .@{bk-prefix}-tab--card &, .@{bk-prefix}-tab--border-card &, .@{bk-prefix}-tab--vertical-card & {
46
- border-right: 1px solid @tab-border;
82
+ .@{bk-prefix}-tab--card &, .@{bk-prefix}-tab--vertical-card & ,.@{bk-prefix}-tab--border-card &{
83
+ margin-bottom: -1px;
47
84
  }
48
85
  }
49
86
 
50
87
  &-nav {
51
88
  position: relative;
89
+ //width: 100%;
90
+
52
91
  .@{bk-prefix}-tab--top & {
53
92
  overflow-x: auto;
54
93
  overflow-y: visible;
@@ -99,44 +138,9 @@
99
138
  &-setting {
100
139
  justify-self: flex-end;
101
140
  margin-left: auto;
141
+ white-space: nowrap;
102
142
  }
103
143
 
104
- .@{bk-prefix}-tab--left & {
105
- border-right: 1px solid @tab-border;
106
- }
107
-
108
- .@{bk-prefix}-tab--right & {
109
- border-left: 1px solid @tab-border;
110
- }
111
-
112
- .@{bk-prefix}-tab--vertical-tab & {
113
- border: 0;
114
- }
115
-
116
- .@{bk-prefix}-tab--left &, .@{bk-prefix}-tab--right & {
117
- flex-direction: column;
118
-
119
- > div {
120
- flex-direction: column;
121
- }
122
- }
123
-
124
- .@{bk-prefix}-tab--card &, .@{bk-prefix}-tab--vertical-card & {
125
- border-bottom: 1px solid @tab-border;
126
- }
127
-
128
- .@{bk-prefix}-tab--border-card & {
129
- border: solid @tab-border;
130
- border-width: 1px 1px 1px 0;
131
- }
132
-
133
- .@{bk-prefix}-tab--border-card & {
134
- background: @tab-header-bg;
135
- }
136
-
137
- .@{bk-prefix}-tab--unborder-card & {
138
- border-bottom: 1px solid @tab-border;
139
- }
140
144
 
141
145
  &-item {
142
146
  display: flex;
@@ -145,16 +149,6 @@
145
149
  justify-content: center;
146
150
  align-items: center;
147
151
 
148
- &:hover {
149
- color: @tab-active;
150
-
151
- .@{bk-prefix}-tab-header-item-close {
152
- display: block;
153
- margin-left: 5px;
154
- color: @danger-color;
155
- }
156
- }
157
-
158
152
  .@{bk-prefix}-tab--top & {
159
153
  padding: 0 20px;
160
154
  }
@@ -173,11 +167,10 @@
173
167
 
174
168
  .@{bk-prefix}-tab--card &, .@{bk-prefix}-tab--border-card &, .@{bk-prefix}-tab--vertical-card & {
175
169
  border-right: 1px solid @tab-border;
176
- border-bottom: 1px solid @tab-border;
177
170
 
178
- &:last-of-type {
179
- border-right: none;
180
- }
171
+ //&:last-of-type {
172
+ // border-right: none;
173
+ //}
181
174
  }
182
175
 
183
176
  .@{bk-prefix}-tab--card-tab & {
@@ -204,15 +197,28 @@
204
197
 
205
198
  }
206
199
 
200
+ .@{bk-prefix}-tab--card-grid & {
201
+ height: 40px;
202
+ line-height: 40px;
203
+ background: #EAEBF0;
204
+ border-radius: 4px 4px 0 0;
205
+ margin-right: 8px;
206
+ }
207
+
207
208
  .@{bk-prefix}-tab-header-operation & {
208
209
  padding-right: 12px;
209
210
  padding-left: 12px;
210
211
  }
211
212
 
212
- &-close {
213
- display: none;
214
- font-size: 16px;
215
- color: @tab-gray;
213
+
214
+ &:hover {
215
+ color: @tab-active;
216
+
217
+ .@{bk-prefix}-tab-header--close {
218
+ display: block;
219
+ margin-left: 5px;
220
+ color: @danger-color;
221
+ }
216
222
  }
217
223
 
218
224
  }
@@ -240,6 +246,10 @@
240
246
 
241
247
  }
242
248
 
249
+ .@{bk-prefix}-tab--card-grid & {
250
+ background: #FFFFFF;
251
+ }
252
+
243
253
  /* 激活边框,跟随,不再用固定样式
244
254
  //.@{bk-prefix}-tab--unborder-card & {
245
255
  // border-bottom: 2px solid @tab-active;
@@ -255,6 +265,12 @@
255
265
 
256
266
  }
257
267
 
268
+ &--close {
269
+ display: none;
270
+ font-size: 16px;
271
+ color: @tab-gray;
272
+ }
273
+
258
274
  &--disabled {
259
275
  color: @tab-disable-color;
260
276
  pointer-events: none;
@@ -274,10 +290,17 @@
274
290
  flex: 1;
275
291
  padding: 10px;
276
292
 
293
+
277
294
  .@{bk-prefix}-tab--border-card &, .@{bk-prefix}-tab--vertical-card & {
278
295
  border: solid @tab-border;
279
296
  border-width: 0 1px 1px;
280
297
  }
298
+
299
+ .@{bk-prefix}-tab--card-grid & {
300
+ background: #FFFFFF;
301
+ box-shadow: 0 2px 4px 0 #1919290d;
302
+ border-radius: 0 4px 4px 4px;
303
+ }
281
304
  }
282
305
 
283
306
  &-panel {