Best JavaScript code snippet using wpt
burger-menu.js
Source:burger-menu.js
1import Vue from 'vue';2require('../../../config/vue.config')(Vue);3Drupal.behaviors.burgerMenu = {4 attach(context) {5 const burgerMenu = document.getElementById('js-burger-menu');6 const showSubNavigationClass = 'burger-menu-list--expanded';7 if (!burgerMenu || burgerMenu.classList.contains('loaded')) {8 return;9 }10 burgerMenu.classList.add('loaded');11 function addTabindex(selector) {12 const addTabIndex = document.querySelectorAll(selector);13 for (let i = 0; i < addTabIndex.length; i += 1) {14 addTabIndex[i].setAttribute('tabindex', 0);15 }16 }17 function removeTabindex(selector) {18 const removeTabIndex = document.querySelectorAll(selector);19 for (let i = 0; i < removeTabIndex.length; i += 1) {20 removeTabIndex[i].removeAttribute('tabindex');21 }22 }23 function negativeTabindex(selector) {24 const removeTabIndex = document.querySelectorAll(selector);25 for (let i = 0; i < removeTabIndex.length; i += 1) {26 removeTabIndex[i].setAttribute('tabindex', -1);27 }28 }29 negativeTabindex('.burger-menu-list-item__link');30 negativeTabindex('.burger-menu-list-item__expand-trigger');31 const vm = new Vue({32 delimiters: ['${', '}'],33 el: burgerMenu,34 data: {35 isOpen: false,36 },37 mounted() {38 const burger = document.getElementById('js-burger');39 if (burger) {40 burger.addEventListener('click', () => {41 this.openBurgerMenu();42 });43 }44 },45 methods: {46 triggerSubNavigation(e) {47 e.preventDefault();48 const trigger = e.currentTarget;49 const parent = trigger.closest('.js-burger-menu-list-item--expandable');50 // this.hideSubNavigations(parent);51 parent.classList.toggle(showSubNavigationClass);52 },53 openBurgerMenu() {54 this.isOpen = true;55 document.body.classList.add('no-scroll');56 document.addEventListener('keydown', this.handleEsc);57 document.addEventListener('click', this.handleClickOutside);58 // Alter tabindex on elements to improve user accessibility59 negativeTabindex('a');60 negativeTabindex('input');61 addTabindex('.burger-menu-list-item__link');62 addTabindex('.burger-menu-list-item__expand-trigger');63 },64 closeBurgerMenu() {65 this.isOpen = false;66 document.removeEventListener('keydown', this.handleEsc);67 document.removeEventListener('click', this.handleClickOutside);68 document.body.classList.remove('no-scroll');69 // Alter tabindex on elements to improve user accessibility70 removeTabindex('a');71 removeTabindex('input');72 negativeTabindex('.burger-menu-list-item__link');73 negativeTabindex('.burger-menu-list-item__expand-trigger');74 document.getElementById('js-burger').focus();75 },76 hideSubNavigations(parent) {77 const items = document.querySelectorAll('.js-burger-menu-list-item--expandable');78 for (let i = 0; i < items.length; i += 1) {79 if (parent !== items[i]) {80 items[i].classList.remove(showSubNavigationClass);81 }82 }83 },84 handleEsc(e) {85 if (e.keyCode === 27) {86 this.closeBurgerMenu();87 }88 },89 handleClickOutside(e) {90 const burgerMenuElem = document.getElementById('js-burger-menu');91 const burgerElem = document.getElementById('js-burger');92 const isClickInside = burgerMenuElem.contains(e.target) || burgerElem.contains(e.target);93 if (!isClickInside) {94 this.closeBurgerMenu();95 }96 },97 },98 });99 },...
search-overlay.js
Source:search-overlay.js
1import Vue from 'vue';2require('../../../config/vue.config')(Vue);3document.addEventListener('DOMContentLoaded', () => {4 const searchOverlay = document.getElementById('js-search-overlay');5 if (!searchOverlay) {6 return;7 }8 function addTabindex(selector) {9 const addTabIndex = document.querySelectorAll(selector);10 for (let i = 0; i < addTabIndex.length; i += 1) {11 addTabIndex[i].setAttribute('tabindex', 0);12 }13 }14 function removeTabindex(selector) {15 const removeTabIndex = document.querySelectorAll(selector);16 for (let i = 0; i < removeTabIndex.length; i += 1) {17 removeTabIndex[i].removeAttribute('tabindex');18 }19 }20 function negativeTabindex(selector) {21 const removeTabIndex = document.querySelectorAll(selector);22 for (let i = 0; i < removeTabIndex.length; i += 1) {23 removeTabIndex[i].setAttribute('tabindex', -1);24 }25 }26 const vm = new Vue({27 delimiters: ['${', '}'],28 el: searchOverlay,29 data: {30 isOpen: false,31 },32 mounted() {33 // Run function on `searchToggle` event34 document.addEventListener('searchToggle', () => {35 this.openSearchOverlay();36 });37 },38 methods: {39 openSearchOverlay() {40 const searchOverlayInput = document.getElementById('js-search-overlay-input');41 searchOverlayInput.focus();42 this.isOpen = true;43 document.body.classList.add('no-scroll');44 document.addEventListener('keydown', this.handleEsc);45 CludoSearch.registerSearchFormElement('#overlay-cludo-search-form');46 negativeTabindex('a');47 negativeTabindex('input');48 addTabindex('#overlay-cludo-search-form input');49 addTabindex('#overlay-cludo-search-form button');50 addTabindex('.search-overlay__close');51 document.getElementById('js-search-overlay-input').focus();52 },53 closeSearchOverlay() {54 document.removeEventListener('keydown', this.handleEsc);55 this.isOpen = false;56 document.body.classList.remove('no-scroll');57 document.querySelector('.js-search-toggle').focus();58 removeTabindex('a');59 removeTabindex('input');60 negativeTabindex('#overlay-cludo-search-form input');61 negativeTabindex('#overlay-cludo-search-form button');62 document.getElementById('js-search-toggle').focus();63 },64 handleEsc(e) {65 if (e.keyCode === 27) {66 this.closeSearchOverlay();67 }68 },69 },70 });...
gh-skip-link.js
Source:gh-skip-link.js
1import Component from '@ember/component';2import {htmlSafe} from '@ember/string';3export default Component.extend({4 tagName: 'a',5 anchor: '',6 classNames: ['sr-only', 'sr-only-focusable'],7 // Add attributes to component for href8 // href should be set to retain anchor properties9 // such as pointer cursor and text underline10 attributeBindings: ['href'],11 // Used so that upon clicking on the link12 // anchor behaviors or ignored13 href: htmlSafe('javascript:;'),14 click() {15 let el = document.querySelector(this.anchor);16 if (el) {17 // Scrolls to the top of main content or whatever18 // is passed to the anchor attribute19 document.body.scrollTop = el.getBoundingClientRect().top;20 let removeTabindex = function () {21 el.removeAttribute('tabindex');22 };23 // This sets focus on the content which was skipped to24 // upon losing focus, the tabindex should be removed25 // so that normal keyboard navigation picks up from focused26 // element27 el.setAttribute('tabindex', -1);28 el.focus();29 el.addEventListener('blur', removeTabindex);30 el.addEventListener('focusout', removeTabindex);31 }32 }...
Using AI Code Generation
1require(["dojo/dom", "dojo/on", "dojo/ready", "dojox/mobile/parser", "dojox/mobile", "dojox/mobile/TabBar", "dojox/mobile/TabBarButton", "dojox/mobile/View", "dojox/mobile/Heading", "dojox/mobile/ScrollableView", "dojox/mobile/ContentPane", "dojox/mobile/Slider", "dojox/mobile/RoundRect", "dojox/mobile/Button", "dojox/mobile/EdgeToEdgeStoreList", "dojox/mobile/ListItem", "dojox/mobile/TabBar", "dojox/mobile/TabBarButton", "dojox/mobile/View"],2 function(dom, on, ready, parser, mobile, TabBar, TabBarButton, View, Heading, ScrollableView, ContentPane, Slider, RoundRect, Button, EdgeToEdgeStoreList, ListItem, TabBar, TabBarButton, View){3 ready(function(){4 var tabbar = new TabBar({id: "tabbar"});5 var tab1 = new TabBarButton({id: "tab1", label: "Tab1"});6 var tab2 = new TabBarButton({id: "tab2", label: "Tab2"});7 var tab3 = new TabBarButton({id: "tab3", label: "Tab3"});8 var tab4 = new TabBarButton({id: "tab4", label: "Tab4"});9 tabbar.addChild(tab1);10 tabbar.addChild(tab2);11 tabbar.addChild(tab3);12 tabbar.addChild(tab4);13 var view = new View({id: "view"});14 view.addChild(tabbar);15 var heading = new Heading({label: "Tab Bar", moveTo: "home", back: "Home", fixed: "top", id: "heading"});16 view.addChild(heading);17 var contentPane = new ContentPane({id: "contentPane"});18 view.addChild(contentPane);
Using AI Code Generation
1function removeTabIndex()2{3 var tabbarObj = new wptabbar();4 tabbarObj.removeTabIndex(1);5}6function setTabIndex()7{8 var tabbarObj = new wptabbar();9 tabbarObj.setTabIndex(1);10}11function setTabTitle()12{13 var tabbarObj = new wptabbar();14 tabbarObj.setTabTitle(1, "New Title");15}16function setTabImage()17{18 var tabbarObj = new wptabbar();19 tabbarObj.setTabImage(1, "image1.gif");20}21function setTabData()22{23 var tabbarObj = new wptabbar();24 tabbarObj.setTabData(1, "key", "value");25}26function setTabEnabled()27{28 var tabbarObj = new wptabbar();29 tabbarObj.setTabEnabled(1, false);30}31function setTabVisible()32{33 var tabbarObj = new wptabbar();34 tabbarObj.setTabVisible(1, false);35}36function setTabToolTip()37{38 var tabbarObj = new wptabbar();39 tabbarObj.setTabToolTip(1, "New ToolTip");40}41function setTabURL()42{43 var tabbarObj = new wptabbar();44}45function setTabSelected()46{47 var tabbarObj = new wptabbar();48 tabbarObj.setTabSelected(1, true);49}50function setTabFocus()51{52 var tabbarObj = new wptabbar();53 tabbarObj.setTabFocus(1
Using AI Code Generation
1var table = document.getElementById( 'table' );2var tableSettings = new wptbTableSettins( table );3tableSettings.removeTabIndex();4### `setTabIndex()`5var table = document.getElementById( 'table' );6var tableSettings = new wptbTableSettins( table );7tableSettings.setTabIndex();8### `setTableCaption( caption )`9var table = document.getElementById( 'table' );10var tableSettings = new wptbTableSettins( table );11tableSettings.setTableCaption( 'Table caption' );12### `removeTableCaption()`13var table = document.getElementById( 'table' );14var tableSettings = new wptbTableSettins( table );15tableSettings.removeTableCaption();16### `getWptbTableState()`17var table = document.getElementById( 'table' );18var tableSettings = new wptbTableSettins( table );19tableSettings.getWptbTableState();20### `setWptbTableState( state )`21var table = document.getElementById( 'table' );22var tableSettings = new wptbTableSettins( table );23tableSettings.setWptbTableState( 'data-wptb-table-state' );24### `removeWptbTableState()`
Using AI Code Generation
1var wptbTableSetup = new WPTB_TableSetup();2wptbTableSetup.removeTabIndex( 'tableId' );3### `removeTabIndexFromAllTables()`4var wptbTableSetup = new WPTB_TableSetup();5wptbTableSetup.removeTabIndexFromAllTables();6### `addTabIndex( tableId )`7var wptbTableSetup = new WPTB_TableSetup();8wptbTableSetup.addTabIndex( 'tableId' );9### `addTabIndexToAllTables()`10var wptbTableSetup = new WPTB_TableSetup();11wptbTableSetup.addTabIndexToAllTables();12### `addTableClass( tableId )`13var wptbTableSetup = new WPTB_TableSetup();14wptbTableSetup.addTableClass( 'tableId' );15### `addTableClassToAllTables()`16var wptbTableSetup = new WPTB_TableSetup();17wptbTableSetup.addTableClassToAllTables();18### `removeTableClass( tableId )`19var wptbTableSetup = new WPTB_TableSetup();20wptbTableSetup.removeTableClass( 'tableId'
Using AI Code Generation
1var wptabs = new WPTabs();2wptabs.removeTabIndex(1);3#### removeTabIndexByTabId(tabId)4var wptabs = new WPTabs();5wptabs.removeTabIndexByTabId("tab2");6#### removeTabIndexByTabName(tabName)7var wptabs = new WPTabs();8wptabs.removeTabIndexByTabName("Tab2");9#### removeTabIndexByTabTitle(tabTitle)10var wptabs = new WPTabs();11wptabs.removeTabIndexByTabTitle("Tab2");12#### removeTabIndexByTabContent(tabContent)13var wptabs = new WPTabs();14wptabs.removeTabIndexByTabContent("Tab2");15#### removeTabIndexByTabIcon(tabIcon)16var wptabs = new WPTabs();17wptabs.removeTabIndexByTabIcon("Tab2");18#### removeTabIndexByTabCloseable(tabCloseable)19var wptabs = new WPTabs();20wptabs.removeTabIndexByTabCloseable("Tab2");21#### removeTabIndexByTabData(tabData)
Using AI Code Generation
1var wptbTableSetup = new WPTB_TableSetup();2wptbTableSetup.removeTabIndex( element );3### 4.7. `removeElementClasses( element )`4var wptbTableSetup = new WPTB_TableSetup();5wptbTableSetup.removeElementClasses( element );6### 4.8. `removeElementClassesExcept( element, classes )`7var wptbTableSetup = new WPTB_TableSetup();8wptbTableSetup.removeElementClassesExcept( element, [ 'wptb-element-datasource-table' ] );9### 4.9. `removeElementClassesByPrefix( element, prefix )`10var wptbTableSetup = new WPTB_TableSetup();11wptbTableSetup.removeElementClassesByPrefix( element, 'wptb-element-' );12### 4.10. `getElements( element, selector )`
Using AI Code Generation
1var tab = require('wptab');2tab.removeTabIndex();3tab.removeTabIndex();4tab.setTabIndex();5tab.setTabIndexTo(1);6tab.setTabIndexToAllElementsExcept(['input']);7tab.setTabIndexToAllElementsExceptByClass(['input']);8tab.setTabIndexToAllElementsExceptBySelector(['input']);9tab.setTabIndexToAllElementsExceptById(['input']);10tab.setTabIndexToAllElementsExceptByTag(['input']);11tab.setTabIndexToAllElementsExceptByType(['input']);12tab.setTabIndexToAllElementsExceptByRole(['input']);
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!