0.0.6 • Published 3 years ago

hitab v0.0.6

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

vue-tabs-chrome

A Vue2 component for Chrome-like tabs. Drag-and-drop support provided by Draggabilly by @desandro.

Live Demo

https://viewweiwu.github.io/vue-tabs-chrome/

Code Sandbox Example

https://codesandbox.io/s/kind-wave-00ipv?file=/src/App.vue

Install

npm i hitab -S

Usage

<template>
  <hitab v-model="tab" :tabs="tabs" />
</template>
<script>
  import Vue from 'vue'
  import hitab from 'hitab'

  export default {
    components: {
        hitab
    },
    data() {
      return {
        tab: 'google',
        tabs: [
          {
            label: 'google',
            key: 'google',
            closable: false,
            favicon: require('./assets/google.jpg')
          },
          {
            label: 'facebook',
            key: 'facebook',
            favicon: require('./assets/fb.jpg')
          },
          {
            label: 'New Tab',
            key: 'any-string-key',
            favicon: (h, { tab, index }) => {
              return h('span', tab.label)
            }
          }
        ]
      }
    }
  }
</script>

Attributes

AttributesDescriptionTypeDefault
tabstabs configuration. Details are mentioned below.Array[]
value / v-modelbinding valueString-
propsconfiguration options, Details are mentioned below.
insert-to-afterInsert to tag's afterBooleanfalse
is-mousedown-activeset tab is active when mousedownBooleantrue
render-labelrender labelFunction(tab, index)-
auto-hidden-close-icon-widthauto hidden close tab width. if tabWidth < 120, close icon can not show. If you don’t want this feature, you can set the value to 0.Number120
on-closewhen tab close btn click. if return false, it cannot be closed.Function(tab, key, index)-

Tabs Attributes

AttributesDescriptionTypeDefault
labeltab labelString-
keytab keyString-
classtab classString-
closabletab closableBooleantrue
dragabletab tragableBooleantrue
swappabletab swappableBooleantrue
favicontab favicon. Custom favicon renderer. It uses Vue's render function. It accepts two arguments: the first is h, the second is an object. including tab and indexFunction, required image-

Props Attributes

AttributesDescriptionTypeDefault
labelspecify which key of tab object is used as the tab's labelString'label'
keyspecify which key of tab object is used as the tab's keyString'key'

Methods

MethodDescriptionParameters
addTabadd tab(tab1, , ...tab, ...tabN)
removeTabremove tab(tabKey or index)
getTabsget tabs-

Events

Event NameDescriptionParameters
clickTriggered when the user's pointer is pressed and unpressed and has not moved enough to start dragging.(event, tab, index)
swapSwap tab(tab, targetTab)
removeRemove tab(tab, index)
contextmenuContextmenu event(event, tab, index)
dragstartTab dragstart event(event, tab, index)
draggingTab dragstart event(event, tab, index)
dragendTab dragend event(event, tab)

Slots

AttributesDescription
afterTab after slot
0.0.6

3 years ago

0.0.3

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago