Sha256: 4c9635f87dadf911aee22b5a878c8d0fb960aff1d72f2a074390afbc6eea39ee

Contents?: true

Size: 1.34 KB

Versions: 489

Compression:

Stored size: 1.34 KB

Contents

import PbEnhancedElement from '../pb_enhanced_element'

const NAV_SELECTOR = '[data-pb-nav-tab]'
const NAV_ITEM_SELECTOR = '[data-pb-tab-target]'

export default class PbNav extends PbEnhancedElement {
    static get selector() {
        return NAV_SELECTOR
    }

    connect() {
        this.hideAndAddEventListeners()
    }

    hideAndAddEventListeners() {
        const navItems = this.element.querySelectorAll(NAV_ITEM_SELECTOR)
        navItems.forEach((navItem) => {
            if (!navItem.className.includes('active')) {
                this.changeContentDisplay(navItem.dataset.pbTabTarget, 'none')
            }

            navItem.addEventListener('click', event => this.handleNavItemClick(event))
        })
    }

    handleNavItemClick(event) {
        event.preventDefault()
        const navItem = event.target.closest(NAV_ITEM_SELECTOR)
        this.changeContentDisplay(navItem.dataset.pbTabTarget, 'block')

        const navItems = this.element.querySelectorAll(NAV_ITEM_SELECTOR)
        navItems.forEach((navItemSelected) => {
            if (navItem !== navItemSelected) {
                this.changeContentDisplay(navItemSelected.dataset.pbTabTarget, 'none')
            }
        })
    }

    changeContentDisplay(contentId, display) {
        const content = document.getElementById(contentId)
        content.style.display = display
    }
}

Version data entries

489 entries across 489 versions & 1 rubygems

Version Path
playbook_ui-14.11.1.pre.alpha.PLAY17445539 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.11.1.pre.alpha.PBNTR798datepickerturbo5537 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.11.1.pre.alpha.pbntr703collapsiblerowsrails5536 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.11.1.pre.alpha.PLAY1751pbcontenttagpt25529 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.11.1.pre.alpha.PBNTR7495495 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.12.0.pre.rc.11 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.12.0.pre.rc.10 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.12.0.pre.rc.9 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.12.0.pre.rc.8 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.12.0.pre.rc.7 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.11.1.pre.alpha.play1724darkmodeauditmap5437 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.11.1.pre.alpha.PBNTR719listdraggablesimple5432 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.11.1.pre.alpha.PBNTR768stickyrightcolumn5431 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.12.0.pre.rc.6 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.11.1.pre.alpha.PBNTR718simiplifieddraggablereact5415 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.11.1.pre.alpha.play1724darkmodeauditmap5413 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.12.0.pre.rc.5 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.11.1.pre.alpha.play1724darkmodeauditmap5409 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.11.1.pre.alpha.PBNTR718simiplifieddraggablereact5400 app/pb_kits/playbook/pb_nav/index.js
playbook_ui-14.11.1.pre.alpha.PBNTR718simiplifieddraggablereact5392 app/pb_kits/playbook/pb_nav/index.js