Add nested tabs in EJ2 TypeScript Tab control

16 Dec 202411 minutes to read

Tab supports to render the nested level of Tabs by using content property. You can add the nested Tab element inside the parent Tab content property. To render the nested Tab, initialize the component using the id of Tab from a selected event handler.

import { Tab, SelectEventArgs } from '@syncfusion/ej2-navigations';
import { enableRipple, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';
import { usa_cities, france_cities, australia_cities } from './datasource.ts';

enableRipple(true);

let tabObj: Tab = new Tab({
  selected: handleSelectEvent,
  created: handleCreatedEvent,
  items:  [
    {
      header: { 'text': 'USA' },
      content: '<div id="usa_tab"></div>'
    },
    {
      header: { 'text': 'France' },
      content: '<div id="france_tab"></div>'
    },
    {
      header: { 'text': 'Australia' },
      content: '<div id="australia_tab"></div>'
    }
  ]
});
tabObj.appendTo('#element');

function handleCreatedEvent(): void {
  if (isNOU(document.querySelector('#usa_tab.e-tab'))) {
    let usa_obj: Tab = new Tab({
      items: usa_cities
    });
    usa_obj.appendTo('#usa_tab');
  }
}
function handleSelectEvent(e: SelectEventArgs): void {
  if (e.selectedIndex === 0 && isNOU(document.querySelector('#usa_tab.e-tab'))) {
    let usa_obj: Tab = new Tab({
      items: usa_cities
    });
    usa_obj.appendTo('#usa_tab');
  } else if (e.selectedIndex === 1 && isNOU(document.querySelector('#france_tab.e-tab'))) {
    let france_obj: Tab = new Tab({
      items: france_cities
    });
    france_obj.appendTo('#france_tab');
  } else if (e.selectedIndex === 2 && isNOU(document.querySelector('#australia_tab.e-tab'))) {
    let australia_obj: Tab = new Tab({
      items: australia_cities
    });
    australia_obj.appendTo('#australia_tab');
  }
}
<!DOCTYPE html>
<html lang="en">

<head>
    <title>Essential JS 2 Tab</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="description" content="Essential JS 2 Tab" />
    <meta name="author" content="Syncfusion" />
    <link href="index.css" rel="stylesheet" />
    <link href="https://cdn.syncfusion.com/ej2/28.1.33/material.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
    <script src="systemjs.config.js"></script>
    <style>
        .e-content .e-item {
            font-size: 12px;
            margin: 10px;
            text-align: justify;
        }
    
        .container {
            min-width: 350px;
            max-width: 500px;
            margin: 0 auto;
        }
    </style>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>

<body>
    <div id='loader'>LOADING....</div>
    <div id='container'>
        <div id='element'></div>
        <br/><br/>
        <div id='result'></div>
    </div>
</body>

</html>
export let tab_items: Object[] = [
    {
      header: { 'text': 'Twitter' },
      content: 'Twitter is an online social networking service that enables users to send and read short 140-character ' +
      'messages called "tweets". Registered users can read and post tweets, but those who are unregistered can only read ' +
      'them. Users access Twitter through the website interface, SMS or mobile device app Twitter Inc. is based in San ' +
      'Francisco and has more than 25 offices around the world. Twitter was created in March 2006 by Jack Dorsey, ' +
      'Evan Williams, Biz Stone, and Noah Glass and launched in July 2006. The service rapidly gained worldwide popularity, ' +
      'with more than 100 million users posting 340 million tweets a day in 2012.The service also handled 1.6 billion ' +
      'search queries per day.'
    },
    {
      header: { 'text': 'Facebook' },
      content: 'Facebook is an online social networking service headquartered in Menlo Park, California. Its website was ' +
      'launched on February 4, 2004, by Mark Zuckerberg with his Harvard College roommates and fellow students Eduardo ' +
      'Saverin, Andrew McCollum, Dustin Moskovitz and Chris Hughes.The founders had initially limited the website\'\s ' +
      'membership to Harvard students, but later expanded it to colleges in the Boston area, the Ivy League, and Stanford ' +
      'University. It gradually added support for students at various other universities and later to high-school students.'
    },
    {
      header: { 'text': 'WhatsApp' },
      content: 'WhatsApp Messenger is a proprietary cross-platform instant messaging client for smartphones that operates ' +
      'under a subscription business model. It uses the Internet to send text messages, images, video, user location and ' +
      'audio media messages to other users using standard cellular mobile numbers. As of February 2016, WhatsApp had a user ' +
      'base of up to one billion,[10] making it the most globally popular messaging application. WhatsApp Inc., based in ' +
      'Mountain View, California, was acquired by Facebook Inc. on February 19, 2014, for approximately US$19.3 billion.'
    }
];

export let usa_cities: Object[] = [
  {
    header: { 'text': 'New York' },
    content: 'New York City comprises 5 boroughs sitting where the Hudson River meets the Atlantic Ocean. At its core is Manhattan, a densely populated borough that’s among the world’s major commercial, financial and cultural centers. Its iconic sites include skyscrapers such as the Empire State Building and sprawling Central Park. Broadway theater is staged in neon-lit Times Square.'
  },
  {
    header: { 'text': 'Los Angeles' },
    content: 'Los Angeles is a sprawling Southern California city and the center of the nation’s film and television industry. Near its iconic Hollywood sign, studios such as Paramount Pictures, Universal and Warner Brothers offer behind-the-scenes tours. On Hollywood Boulevard, TCL Chinese Theatre displays celebrities’ hand- and footprints, the Walk of Fame honors thousands of luminaries and vendors sell maps to stars’ homes.'
  },
  {
    header: { 'text': 'Chicago' },
    content: 'Chicago, on Lake Michigan in Illinois, is among the largest cities in the U.S. Famed for its bold architecture, it has a skyline punctuated by skyscrapers such as the iconic John Hancock Center, 1,451-ft. Willis Tower (formerly the Sears Tower) and the neo-Gothic Tribune Tower. The city is also renowned for its museums, including the Art Institute of Chicago with its noted Impressionist and Post-Impressionist works.'
  }
];
export let france_cities: Object[] = [
  {
    header: { 'text': 'Paris' },
    content: 'Paris, France capital, is a major European city and a global center for art, fashion, gastronomy and culture. Its 19th-century cityscape is crisscrossed by wide boulevards and the River Seine. Beyond such landmarks as the Eiffel Tower and the 12th-century, Gothic Notre-Dame cathedral, the city is known for its cafe culture and designer boutiques along the Rue du Faubourg Saint-Honoré.'
  },
  {
    header: { 'text': 'Marseille' },
    content: 'Marseille, a port city in southern France, has been a crossroads of immigration and trade since its founding by the Greeks circa 600 B.C. At its heart is the Vieux-Port (Old Port), where fishmongers sell their catch along the boat-lined quay. Basilique Notre-Dame-de-la-Garde is a Romanesque-Byzantine church. Modern landmarks include Le Corbusier’s influential Cité Radieuse complex and Zaha Hadid’s CMA CGM Tower.'
  },
  {
    header: { 'text': 'Lyon' },
    content: 'Lyon, the capital city in France’s Auvergne-Rhône-Alpes region, sits at the junction of the Rhône and Saône rivers. Its center reflects 2,000 years of history from the Roman Amphithéâtre des Trois Gaules, medieval and Renaissance architecture in Vieux (Old) Lyon, to the modern Confluence district on Presquîle peninsula. Traboules, covered passageways between buildings, connect Vieux Lyon and La Croix-Rousse hill.'
  }
];
export let australia_cities: Object[] = [
  {
    header: { 'text': 'Sydney' },
    content: 'Sydney, capital of New South Wales and one of Australia largest cities, is best known for its harbourfront Sydney Opera House, with a distinctive sail-like design. Massive Darling Harbour and the smaller Circular Quay port are hubs of waterside life, with the arched Harbour Bridge and esteemed Royal Botanic Garden nearby. Sydney Tower’s outdoor platform, the Skywalk, offers 360-degree views of the city and suburbs.'
  },
  {
    header: { 'text': 'Melbourne' },
    content: 'Melbourne is the coastal capital of the southeastern Australian state of Victoria. At the city centre is the modern Federation Square development, with plazas, bars, and restaurants by the Yarra River. In the Southbank area, the Melbourne Arts Precinct is the site of Arts Centre Melbourne – a performing arts complex – and the National Gallery of Victoria, with Australian and indigenous art.'
  },
  {
    header: { 'text': 'Brisbane' },
    content: 'Brisbane, capital of Queensland, is a large city on the Brisbane River. Clustered in its South Bank cultural precinct are the Queensland Museum and Sciencentre, with noted interactive exhibitions. Another South Bank cultural institution is Queensland Gallery of Modern Art, among Australia major contemporary art museums. Looming over the city is Mt. Coot-tha, site of Brisbane Botanic Gardens.'
  }
];