src/Widgets/Bootstrap/Tabs.php
protected function registerPlugin($name)
    {
        $view = $this->getView();

        BootstrapPluginAsset::register($view);

        if ($this->hasDropDown && !isset($this->clientEvents['shown.bs.tab'])) {
            //FIX dropdown links
            $this->clientEvents['shown.bs.tab'] = ['a', new JsExpression("function(e) {
            var btn = $(this), nav = btn.parents('.nav:first'), dropDown = btn.parents('.dropdown-menu:first');
                btn.parents('.nav:first').find('[data-toggle=\"tab\"]').not(btn).removeClass('active');
                if(dropDown.length) {
                    dropDown.siblings('.dropdown-toggle').addClass('active');
                }
            }")];
        }

        $this->registerClientEvents();
    }
protected function registerPlugin($name)
    {
        $view = $this->getView();

        BootstrapPluginAsset::register($view);

        if ($this->hasDropDown && !isset($this->clientEvents['shown.bs.tab'])) {
            //FIX dropdown links
            $this->clientEvents['shown.bs.tab'] = ['a', new JsExpression("function(e) {
            var btn = $(this), nav = btn.parents('.nav:first'), dropDown = btn.parents('.dropdown-menu:first');
                btn.parents('.nav:first').find('[data-toggle=\"tab\"]').not(btn).removeClass('active');
                if(dropDown.length) {
                    dropDown.siblings('.dropdown-toggle').addClass('active');
                }
            }")];
        }

        $this->registerClientEvents();
    }
Registers a specific Bootstrap plugin and the related events
@param string $name the name of the Bootstrap plugin