# Developer guide for `` component ### Folder Structure From Laravel Application - resources - js - core - components - tabs - Tab.vue ### Register For `` component. We had register this component in ```resources/js/core/components/coreApp.js``` file ```js Vue.component('app-tab', require('./components/tabs/Index').default); ``` ### Props 1. tabs - `type` : `Array` - `required` : `true` 2. icon - `icon` : `String` - `required` : `true` 2. type - `icon` : `String` - `default` : `vertical` ### Usage Available type for `` 1. tabs - `Array of objects`. contains with single tab objects like ``` { "name": "delivery", "title": "delivery setting", "component": "delivery-setting", "props": "Example string", "permission": "" } ``` 1. tabs - if type is horizontal - `Array of objects`. contains with single tab objects like ``` { "name": "delivery", "icon": "phone-call", "component": "delivery-setting", "props": "Example string", "permission": "" } ``` 2. icon - if type is vertical - Tabs icon ### Usages In the below given how to use `` component for vertical. ``` ``` ### Usages In the below given how to use `` component for horizontal. ``` ``` ### Methods 1. `loadComponent` for load Each single tab component - /* in your tab components you can receive a props `id` and if you send props for component can receive that `props` also. ###Update Notifications If you want to add a header button you just need to send ``` "headerButton": { "label": "Add new template" }, ``` in app tab objects like: ``` { "name": "details", "title": "details setting", "component": "wizard-details", "props": ['A', 'B', 'C'], "permission": false, "headerButton": { "label": 'Add New', "class": 'btn btn-success' } }, ``` Then when button was clicked it send a global event. You can received by ``` this.$hub.$on('headerButtonClicked-' + this.id, (component) => { console.log(component); this.showModal = true; console.log('Event Triggered'); }) ``` Example usages: ``` ```