Best JavaScript code snippet using playwright-internal
developerMenuItems.js
Source:developerMenuItems.js  
1//2//  developerMenuItems.js3//  examples4//5//  Created by Brad Hefta-Gaub on 2/24/146//  Copyright 2013 High Fidelity, Inc.7//8//  Adds a bunch of developer and debugging menu items9//10//  Distributed under the Apache License, Version 2.0.11//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html12//13var createdRenderMenu = false;14var createdGeneratedAudioMenu = false;15var createdAudioListenerModeMenu = false;16var createdStereoInputMenuItem = false;17var DEVELOPER_MENU = "Developer";18var ENTITIES_MENU = DEVELOPER_MENU + " > Entities";19var RENDER_MENU = DEVELOPER_MENU + " > Render";20var ENTITIES_ITEM = "Entities";21var AVATARS_ITEM = "Avatars";22var AUDIO_MENU = DEVELOPER_MENU + " > Audio";23var AUDIO_SOURCE_INJECT = "Generated Audio";24var AUDIO_SOURCE_MENU = AUDIO_MENU + " > Generated Audio Source";25var AUDIO_SOURCE_PINK_NOISE = "Pink Noise";26var AUDIO_SOURCE_SINE_440 = "Sine 440hz";27var AUDIO_LISTENER_MODE_MENU =  AUDIO_MENU + " > Audio Listener Mode"28var AUDIO_LISTENER_MODE_FROM_HEAD = "Audio from head";29var AUDIO_LISTENER_MODE_FROM_CAMERA = "Audio from camera";30var AUDIO_LISTENER_MODE_CUSTOM = "Audio from custom position";31// be sure that the audio listener options are in the right order (same as the enumerator)32var AUDIO_LISTENER_OPTIONS = [33    // MyAvatar.audioListenerModeHead (0)34    AUDIO_LISTENER_MODE_FROM_HEAD,35    // MyAvatar.audioListenerModeCamera (1)36    AUDIO_LISTENER_MODE_FROM_CAMERA,37    // MyAvatar.audioListenerCustom (2)38    AUDIO_LISTENER_MODE_CUSTOM39];40var AUDIO_STEREO_INPUT = "Stereo Input";41function setupMenus() {42    if (!Menu.menuExists(DEVELOPER_MENU)) {43        Menu.addMenu(DEVELOPER_MENU);44    }45    if (!Menu.menuExists(ENTITIES_MENU)) {46        Menu.addMenu(ENTITIES_MENU);47        // NOTE: these menu items aren't currently working. I've temporarily removed them. Will add them back once we48        // rewire these to work49        /*50        Menu.addMenuItem({ menuName: "Developer > Entities", menuItemName: "Display Model Bounds", isCheckable: true, isChecked: false });51        Menu.addMenuItem({ menuName: "Developer > Entities", menuItemName: "Display Model Triangles", isCheckable: true, isChecked: false });52        Menu.addMenuItem({ menuName: "Developer > Entities", menuItemName: "Display Model Element Bounds", isCheckable: true, isChecked: false });53        Menu.addMenuItem({ menuName: "Developer > Entities", menuItemName: "Display Model Element Children", isCheckable: true, isChecked: false });54        Menu.addMenuItem({ menuName: "Developer > Entities", menuItemName: "Don't Do Precision Picking", isCheckable: true, isChecked: false });55        Menu.addMenuItem({ menuName: "Developer > Entities", menuItemName: "Don't Attempt Render Entities as Scene", isCheckable: true, isChecked: false });56        Menu.addMenuItem({ menuName: "Developer > Entities", menuItemName: "Don't Do Precision Picking", isCheckable: true, isChecked: false });57        Menu.addMenuItem({ menuName: "Developer > Entities", menuItemName: "Disable Light Entities", isCheckable: true, isChecked: false });58        */59    }60    if (!Menu.menuExists(RENDER_MENU)) {61        Menu.addMenu(RENDER_MENU);62        createdRenderMenu = true;63    }64    if (!Menu.menuItemExists(RENDER_MENU, ENTITIES_ITEM)) {65        Menu.addMenuItem({ menuName: RENDER_MENU, menuItemName: ENTITIES_ITEM, isCheckable: true, isChecked: Scene.shouldRenderEntities })66    }67    if (!Menu.menuItemExists(RENDER_MENU, AVATARS_ITEM)) {68        Menu.addMenuItem({ menuName: RENDER_MENU, menuItemName: AVATARS_ITEM, isCheckable: true, isChecked: Scene.shouldRenderAvatars })69    }70    if (!Menu.menuExists(AUDIO_MENU)) {71        Menu.addMenu(AUDIO_MENU);72    }73    if (!Menu.menuItemExists(AUDIO_MENU, AUDIO_SOURCE_INJECT)) {74        Menu.addMenuItem({ menuName: AUDIO_MENU, menuItemName: AUDIO_SOURCE_INJECT, isCheckable: true, isChecked: false });75        Menu.addMenu(AUDIO_SOURCE_MENU);76        Menu.addMenuItem({ menuName: AUDIO_SOURCE_MENU, menuItemName: AUDIO_SOURCE_PINK_NOISE, isCheckable: true, isChecked: false });77        Menu.addMenuItem({ menuName: AUDIO_SOURCE_MENU, menuItemName: AUDIO_SOURCE_SINE_440, isCheckable: true, isChecked: false });78        Menu.setIsOptionChecked(AUDIO_SOURCE_PINK_NOISE, true);79        Audio.selectPinkNoise();80        createdGeneratedAudioMenu = true;81    }82    if (!Menu.menuExists(AUDIO_LISTENER_MODE_MENU)) {83        Menu.addMenu(AUDIO_LISTENER_MODE_MENU);84        for (var i = 0; i < AUDIO_LISTENER_OPTIONS.length; i++) {85            Menu.addMenuItem({ menuName: AUDIO_LISTENER_MODE_MENU, menuItemName: AUDIO_LISTENER_OPTIONS[i], isCheckable: true, isChecked: (MyAvatar.audioListenerMode === i) });86        }87        createdAudioListenerModeMenu = true;88    }89    if (!Menu.menuItemExists(AUDIO_MENU, AUDIO_STEREO_INPUT)) {90        Menu.addMenuItem({ menuName: AUDIO_MENU, menuItemName: AUDIO_STEREO_INPUT, isCheckable: true, isChecked: false });91        createdStereoInputMenuItem = true;92    }93}94Menu.menuItemEvent.connect(function (menuItem) {95    print("menuItemEvent() in JS... menuItem=" + menuItem);96    if (menuItem == ENTITIES_ITEM) {97        Scene.shouldRenderEntities = Menu.isOptionChecked(ENTITIES_ITEM);98    } else if (menuItem == AVATARS_ITEM) {99        Scene.shouldRenderAvatars = Menu.isOptionChecked(AVATARS_ITEM);100    } else if (menuItem == AUDIO_STEREO_INPUT) {101        Audio.setStereoInput(Menu.isOptionChecked(AUDIO_STEREO_INPUT))102    } else if (AUDIO_LISTENER_OPTIONS.indexOf(menuItem) !== -1) {103        MyAvatar.audioListenerMode = AUDIO_LISTENER_OPTIONS.indexOf(menuItem);104    }105});106MyAvatar.audioListenerModeChanged.connect(function() {107    for (var i = 0; i < AUDIO_LISTENER_OPTIONS.length; i++) {108        Menu.setIsOptionChecked(AUDIO_LISTENER_OPTIONS[i], (MyAvatar.audioListenerMode === i));109    }110});111Scene.shouldRenderAvatarsChanged.connect(function(shouldRenderAvatars) {112    Menu.setIsOptionChecked(AVATARS_ITEM, shouldRenderAvatars)113});114Scene.shouldRenderEntitiesChanged.connect(function(shouldRenderEntities) {115    Menu.setIsOptionChecked(ENTITIES_ITEM, shouldRenderEntities)116});117function scriptEnding() {118    Menu.removeMenu(ENTITIES_MENU);119    if (createdRenderMenu) {120        Menu.removeMenu(RENDER_MENU);121    } else {122        Menu.removeMenuItem(RENDER_MENU, ENTITIES_ITEM);123        Menu.removeMenuItem(RENDER_MENU, AVATARS_ITEM);124    }125    if (createdGeneratedAudioMenu) {126        Audio.injectGeneratedNoise(false);127        Menu.removeMenuItem(AUDIO_MENU, AUDIO_SOURCE_INJECT);128        Menu.removeMenu(AUDIO_SOURCE_MENU);129    }130    if (createdAudioListenerModeMenu) {131        Menu.removeMenu(AUDIO_LISTENER_MODE_MENU);132    }133    if (createdStereoInputMenuItem) {134        Menu.removeMenuItem(AUDIO_MENU, AUDIO_STEREO_INPUT);135    }136}137setupMenus();...ColumnSetting.js
Source:ColumnSetting.js  
1import React from 'react';2import _get from 'lodash/get';3import { comma } from '~~utils/Math';4import Field from '~~elements/Field';5import TableUtils from '~~features/Database/utils/TableUtils';6import NumberInput from '~~features/Database/components/NumberInput';7const { getIsCheckable } = TableUtils;8const getLeftTableColumn = (props) => {9  const {10    partCate,11    isEditMode,12    handleOnEditItem,13    checkboxColumn,14    unArchiveColumn,15    selectedColumn,16    showArchive,17  } = props;18  const LEFT_COLUMNS = {19    plastic: [20      {21        title: 'Material Spec',22        dataIndex: 'materialSpec',23        defaultSortOrder: 'ascend',24        width: '35%',25        sorter: !isEditMode,26      },27      {28        title: 'Remark',29        dataIndex: 'remark',30        width: '35%',31        sorter: !isEditMode,32        render: (val, record) => {33          const isCheckable = getIsCheckable(record);34          return (isEditMode && isCheckable ?35            <Field.ConvertInput36              value={val}37              onChange={value => handleOnEditItem(value, record.id, 'remark')}38            /> : val);39        }40      },41    ],42    metal: [43      {44        title: 'Material',45        dataIndex: 'material',46        defaultSortOrder: 'ascend',47        width: '35%',48        sorter: !isEditMode,49      },50      {51        title: 'Density\n(g/cm³)',52        dataIndex: 'density',53        width: '35%',54        sorter: !isEditMode,55        render: (val) => comma(val, 8, 'ï¼'),56      },57    ],58    diecut: [59      {60        title: 'Material Spec',61        dataIndex: 'materialSpec',62        defaultSortOrder: 'ascend',63        width: '35%',64        sorter: !isEditMode,65      },66      {67        title: 'Remark',68        dataIndex: 'remark',69        width: '35%',70        sorter: !isEditMode,71        render: (val, record) => {72          const isCheckable = getIsCheckable(record);73          return (isEditMode && isCheckable ?74            <Field.ConvertInput75              dataType="string"76              value={val}77              onChange={value => handleOnEditItem(value, record.id, 'remark')}78            /> :79            val);80        }81      },82    ],83    rubber: [84      {85        title: 'Material Spec',86        dataIndex: 'materialSpec',87        defaultSortOrder: 'ascend',88        width: '25%',89        sorter: !isEditMode,90      },91      {92        title: 'Density (g/cm3)',93        dataIndex: 'density',94        width: '25%',95        sorter: !isEditMode,96        render: (val, record) => {97          const isCheckable = getIsCheckable(record);98          return (isEditMode && isCheckable ?99            <Field.ConvertInput100              dataType="float"101              value={val}102              onChange={value => handleOnEditItem(value, record.id, 'density')}103            /> : val104          );105        }106      },107      {108        title: 'Remark',109        dataIndex: 'remark',110        width: '50%',111        sorter: !isEditMode,112        render: (val, record) => {113          const isCheckable = getIsCheckable(record);114          return (isEditMode && isCheckable ?115            <Field.ConvertInput116              dataType="string"117              value={val}118              onChange={value => handleOnEditItem(value, record.id, 'remark')}119            /> : val120          );121        }122      },123    ],124  };125  // åå¾è·partCateå°æçColumns126  const leftColumns = _get(LEFT_COLUMNS, partCate, []);127  return (128    [129      showArchive ? unArchiveColumn : checkboxColumn,130      ...leftColumns,131      selectedColumn132    ]133  );134};135const getRightTableColumn = (props) => {136  const {137    partCate,138    isEditMode,139    date,140    handleOnEditItem,141    checkboxColumn,142    unArchiveColumn,143    showArchive,144  } = props;145  const RIGHT_COLUMNS = {146    plastic: [147      {148        title: 'Material',149        dataIndex: 'material',150        defaultSortOrder: 'ascend',151        sorter: !isEditMode,152        width: '30%',153      },154    ],155    metal: [156      {157        title: 'Thickness',158        dataIndex: 'thickness',159        defaultSortOrder: 'ascend',160        width: '30%',161        sorter: !isEditMode,162        render: (val) => comma(val, 8, 'ï¼'),163      },164    ],165    diecut: [166      {167        title: 'Material',168        dataIndex: 'material',169        defaultSortOrder: 'ascend',170        width: '30%',171        sorter: !isEditMode,172      },173    ],174    rubber: [175      {176        title: 'Material',177        dataIndex: 'material',178        defaultSortOrder: 'ascend',179        width: '30%',180        sorter: !isEditMode,181      },182    ]183  };184  // åå¾è·partCateå°æçColumns185  const rightColumns = _get(RIGHT_COLUMNS, partCate, []);186  return (187    [188      showArchive ? unArchiveColumn : checkboxColumn,189      ...rightColumns,190      {191        title: date.last || 'ï¼',192        dataIndex: 'last',193        width: '20%',194        sorter: !isEditMode && date.last,195        render: (val) => comma(val, 8, 'ï¼'),196      },197      {198        title: date.current || 'ï¼',199        dataIndex: 'current',200        width: '20%',201        sorter: !isEditMode && date.current,202        render: (val) => comma(val, 8, 'ï¼'),203      },204      {205        title: date.next || 'ï¼',206        dataIndex: 'next',207        width: '20%',208        sorter: !isEditMode && date.next,209        render: (val, record) => {210          const isCheckable = getIsCheckable(record);211          return (isEditMode && isCheckable ?212            <Field.ConvertInput213              value={val}214              dataType="float"215              onChange={(value) => handleOnEditItem(value, record.id, 'next')}216            /> : comma(val, 8, 'ï¼'));217        }218      },219    ]220  );221};222export default {223  getLeftTableColumn,224  getRightTableColumn,...form.js
Source:form.js  
...37		getBooleanValue = Array.isArray(value)38			? function(array, el) { return array.indexOf(el.value) >= 0; }39			: function(value, el) { return el.value == value; };40		forEach.call(group, function(el, i) {41			if(isCheckable(el)) {42				el.checked = getBooleanValue(value, el);43			} else {44				el.value = textValue(value[i]);45			}46		});47	}48	function setElementValue(el, value) {49		if(isCheckable(el)) {50			el.checked = !!value;51		} else if(el.multiple && el.options) {52			if(!Array.isArray(value)) {53				el.value = textValue(value);54			} else {55				setMultiSelectValue(el, value);56			}57		} else {58			el.value = textValue(value);59		}60	}61	function setMultiSelectValue(select, values) {62		var i, option, options;63		options = select.options;64		i = 0;65		while ((option = options[i++])) {66			if(values.indexOf(option.value) >= 0) {67				option.selected = true;68			}69		}70	}71	function textValue(value) {72		return value == null ? '' : value;73	}74	function isCheckable(el) {75		return el.type == 'radio' || el.type == 'checkbox';76	}77	/**78	 * Simple routine to pull input values out of a form.79	 * @param form {HTMLFormElement}80	 * @return {Object} populated object81	 */82	function formToObject (formOrEvent, filter) {83		var obj, form, els, seen, i, el, name, value;84		form = formOrEvent.selectorTarget || formOrEvent.target || formOrEvent;85		if(typeof filter !== 'function') {86			filter = alwaysInclude;87		}88		obj = {};...DropDown.jsx
Source:DropDown.jsx  
1/* eslint-disable jsx-a11y/click-events-have-key-events */2/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */3import React, { useEffect, useState } from 'react';4import styled from 'styled-components';5import { AiOutlineArrowDown, AiOutlineCheck } from 'react-icons/ai';6function CheckableItem({ item, chosenItems, setchosenItems, isCheckable }) {7  const [isChecked, setIsChecked] = useState(false);8  useEffect(() => {9    if (isCheckable.exclusiveOption) {10      if (chosenItems.day !== item.value) {11        setIsChecked(false);12      }13    }14  }, [chosenItems.day]);15  function addOrDeleteOption() {16    if (isChecked) {17      const newOptionList = chosenItems.options.filter(18        (option) => option !== item.id19      );20      setchosenItems({ ...chosenItems, options: newOptionList });21    } else {22      setchosenItems({23        ...chosenItems,24        options: [...chosenItems.options, item.id],25      });26    }27  }28  function check(e) {29    e.stopPropagation();30    if (isCheckable.exclusiveOption) {31      setchosenItems({ ...chosenItems, day: item.value });32    } else {33      addOrDeleteOption();34    }35    setIsChecked(!isChecked);36  }37  return (38    <li onClick={(e) => check(e)}>39      <CheckContainer>{isChecked && <AiOutlineCheck />}</CheckContainer>40      {item.name || item.dayName}41    </li>42  );43}44function Item({ itemName }) {45  return <li>{itemName}</li>;46}47function DropDown({ name, isCheckable, items, chosenItems, setchosenItems }) {48  const [isListOpen, setIsListOpen] = useState(false);49  return (50    <DropDownContainer onClick={() => setIsListOpen(!isListOpen)}>51      <div>52        <span>{name}</span>53        {!isListOpen && <ArrowDown />}54      </div>55      {isListOpen && (56        <ListContainer>57          {items.map((item) =>58            isCheckable ? (59              <CheckableItem60                item={item}61                chosenItems={chosenItems}62                setchosenItems={setchosenItems}63                isCheckable={isCheckable}64              />65            ) : (66              <Item itemName={item.name} />67            )68          )}69        </ListContainer>70      )}71    </DropDownContainer>72  );73}74const DropDownContainer = styled.div`75  width: 100%;76  min-height: 45px;77  background-color: #e0d1ed;78  border-radius: 5px;79  display: flex;80  flex-direction: column;81  justify-content: center;82  margin-bottom: 10px;83  div {84    padding: 10px 10px;85    width: 100%;86    display: flex;87    justify-content: space-between;88    align-items: center;89  }90`;91const ArrowDown = styled(AiOutlineArrowDown)`92  font-size: 26px;93`;94const ListContainer = styled.ul`95  width: 100%;96  min-height: 40px;97  border-radius: 0 0 4px 4px;98  padding: 0 15px 15px 15px;99  display: flex;100  flex-wrap: wrap;101  li {102    display: flex;103    font-weight: 400;104    font-size: 18px;105    margin: 15px 25px 0 0;106  }107`;108const CheckContainer = styled.span`109  height: 20px;110  width: 20px;111  margin-right: 10px;112  font-size: 22px;113  background-color: #fff;114  display: flex;115  align-items: center;116  border-radius: 4px;117`;...index.js
Source:index.js  
1import classNames from 'classnames';2export default {3  props : {4    // æ ç¾é¢è²5    color : {6      type : String,7      default : ''8    },9    // æ¯å¦æ¾ç¤ºæ ç¾éèæé®10    closable : {11      type : Boolean,12      default : false13    },14    // æ¯å¦æ¾ç¤ºæ ç¾15    visible : {16      type : Boolean,17      default : true18    },19    prefixCls : {20      type : String,21      default : 'ca-tag'22    },23    checkable : {24      type : [String , Boolean],25      default : false26    },27    // æ¯å¦éä¸ï¼å½åªæcheckable为trueæ¶æçæ28    checked : {29      type : Boolean,30      default : false31    }32  },33  model : {34    prop : 'visible',35  },36  data () {37    const visible = this.$props.visible || false;38    const checked = this.$props.checked || false;39    return {40      sVisible : visible,41      sChecked : checked42    }43  },44  watch : {45    visible (newVal) {46      this.sVisible = newVal;47    },48    checked (newVal) {49      this.sChecked = newVal;50    }51  },52  methods : {53    getTagStyle () {54      let style = {}55      const { color } = this.$props;56      if (color) {57        style = {58          color : '#fff',59          backgroundColor : color60        }61      };62      return style;63    },64    renderCloseIcon () {65      const h = this.$createElement;66      const { prefixCls , closable } = this.$props;67      return closable && h(68        'i',69        {70          class : classNames('iconfont icon-remove' , prefixCls + '-close-icon'),71          on : {72            click : this.handleClose73          }74        }75      )76    },77    handleClose (evt) {78      this.sVisible = false;79      this.$emit('close' , evt);80    },81    handleClick (evt) {82      const { checkable } = this.$props;83      const isCheckable = checkable || checkable === '';84      if (isCheckable) {85        this.sChecked = !this.sChecked;86        this.$emit('change' , this.sChecked);87      }88      this.$emit('click' , evt);89    }90  },91  render () {92    const h = this.$createElement;93    const { prefixCls , checkable , color } = this.$props;94    const { sVisible , sChecked } = this.$data;95    const isCheckable = checkable || checkable === '';96    const tag = h(97      'span',98      {99        directives : [100          {101            name : 'show',102            value : sVisible103          }104        ],105        on : {106          click : this.handleClick107        },108        class : classNames(prefixCls , isCheckable ? prefixCls + '-checkable' : '' , sChecked ? prefixCls + '-checked' : '' , color ? prefixCls + '-has-color' : ''),109        style : this.getTagStyle()110      },111      [this.$slots.default , this.renderCloseIcon()]112    );113    return h(114      'transition',115      {116        attrs : {117          appear : false,118          name : classNames(prefixCls + '-zoom')119        }120      },121      [tag]122    )123  }...app.js
Source:app.js  
1const list = [2    {3        isCheckable: true,4        name: '00-æªæ´¾è»',5    },6    {7        isCheckable: false,8        name: '01-æªæ´¾è»',9    },10    {11        isCheckable: true,12        name: '02-æªæ´¾è»',13    },14    {15        isCheckable: true,16        name: '03-æªæ´¾è»',17    },18    {19        isCheckable: true,20        name: '04-æªæ´¾è»',21    },22    {23        isCheckable: true,24        name: '05-æªæ´¾è»',25    },26    {27        isCheckable: true,28        name: '06-æªæ´¾è»',29    },30    {31        isCheckable: true,32        name: '07-æªæ´¾è»',33    },34    {35        isCheckable: true,36        name: '08-æªæ´¾è»',37    },38    {39        isCheckable: true,40        name: '09-æªæ´¾è»',41    },42    {43        isCheckable: true,44        name: '10-æªæ´¾è»',45    },46    {47        isCheckable: false,48        name: '11-æªæ´¾è»',49    },50    {51        isCheckable: true,52        name: '12-æªæ´¾è»',53    },54]55function App() {56    const [lastChecked, setLastChecked] = React.useState()57    function handleClick(e) {58        let isInBetween = false59        if (e.shiftKey && e.target.checked) {60            const checkboxs = document.querySelectorAll('[type=checkbox]')61            checkboxs.forEach((checkbox) => {62                if (checkbox === e.target || checkbox === lastChecked) {63                    isInBetween = !isInBetween64                }65                if (isInBetween && !checkbox.disabled) {66                    checkbox.checked = true67                }68            })69        }70        setLastChecked(e.target)71    }72    return (73        <div className="inbox">74            {list.map((item, i) => (75                <div key={i} className="item">76                    <input77                        type="checkbox"78                        onClick={handleClick}79                        disabled={!item.isCheckable}80                    />81                    <p>{item.name}</p>82                </div>83            ))}84        </div>85    )86}...MockBomRowData.js
Source:MockBomRowData.js  
1'use strict';2angular.module('plm360.mockData').value('MockBomRowData', {3	rows: [4		{5			path: {6				edges: []7			},8			edgeId: null,9			itemNumber: 0,10			depth: 0,11			isChecked: false,12			isCheckable: false13		},14		{15			path: {16				edges: ['1']17			},18			edgeId: '1',19			itemNumber: 4,20			depth: 1,21			isChecked: false,22			isCheckable: true23		},24		{25			path: {26				edges: ['1', '922']27			},28			edgeId: '922',29			itemNumber: 4,30			depth: 2,31			isChecked: false,32			isCheckable: false33		},34		{35			path: {36				edges: ['1', '922', '43']37			},38			edgeId: '43',39			itemNumber: 5,40			depth: 3,41			isChecked: false,42			isCheckable: false43		},44		{45			path: {46				edges: ['1', '922', '43', '400']47			},48			edgeId: '400',49			itemNumber: 10,50			depth: 4,51			isChecked: false,52			isCheckable: false53		},54		{55			path: {56				edges: ['1', '922', '43', '399']57			},58			edgeId: '399',59			itemNumber: 11,60			depth: 4,61			isChecked: false,62			isCheckable: false63		},64		{65			path: {66				edges: ['1', '922', '43', '398']67			},68			edgeId: '398',69			itemNumber: 10,70			depth: 4,71			isChecked: false,72			isCheckable: false73		},74		{75			path: {76				edges: ['1', '922', '43', '400', '500']77			},78			edgeId: '500',79			itemNumber: 1,80			depth: 5,81			isChecked: false,82			isCheckable: false83		},84		{85			path: {86				edges: ['1', '922', '400']87			},88			edgeId: '400',89			itemNumber: 10,90			depth: 3,91			isChecked: false,92			isCheckable: false93		},94		{95			path: {96				edges: ['1', '922', '400', '500']97			},98			edgeId: '500',99			itemNumber: 1,100			depth: 4,101			isChecked: false,102			isCheckable: false103		},104		{105			path: {106				edges: ['2']107			},108			edgeId: '2',109			itemNumber: 99,110			depth: 1,111			isChecked: false,112			isCheckable: true113		},114		{115			path: {116				edges: ['Temp@2345']117			},118			edgeId: 'Temp@2345',119			itemNumber: 100,120			depth: 1,121			isChecked: false,122			isCheckable: true,123			addOrder : 1,124			isNewlyAdded : true125		},126		{127			path: {128				edges: ['Temp@2348']129			},130			edgeId: 'Temp@2348',131			itemNumber: 101,132			depth: 1,133			isChecked: false,134			isCheckable: true,135			addOrder : 2,136			isNewlyAdded : true137		}138	],139	rowOrder: [0, 1, 2, 3, 6, 4, 7, 5, 8, 9, 10, 11, 12]...listViewDelegateScripts.js
Source:listViewDelegateScripts.js  
1function onHover(sustained)2{3    if(sustained && body.state !== "checked")4        body.state = "hovered";5    else6        body.state = isCheckable && checked ? "checked" : "";7}8function onPressAndHold()9{10    if(noDelayPressSelect || !isCheckable)11        return;12    if(body.isCheckable && !checked)13    {14        body.state = "checked";15        checkMarkScaleAni.start();16    }17    else18        body.state = "";19}20function onClick()21{22    if(!checked)23        body.clicked();24    if(!noDelayPressSelect)25        return;26    if(body.isCheckable && !checked)27    {28        body.state = "checked";29        checkMarkScaleAni.start();30    }31    else32        body.state = "";...Using AI Code Generation
1const { isCheckable } = require('playwright/lib/server/dom.js');2const { chromium } = require('playwright');3(async () => {4  const browser = await chromium.launch();5  const context = await browser.newContext();6  const page = await context.newPage();7  const element = await page.$('input[type="checkbox"]');8  const isCheckableValue = await isCheckable(element);9  console.log(isCheckableValue);10  await browser.close();11})();12const { isEditable } = require('playwright/lib/server/dom.js');13const { chromium } = require('playwright');14(async () => {15  const browser = await chromium.launch();16  const context = await browser.newContext();17  const page = await context.newPage();18  const element = await page.$('input[type="text"]');19  const isEditableValue = await isEditable(element);20  console.log(isEditableValue);21  await browser.close();22})();23const { isFocusable } = require('playwright/lib/server/dom.js');24const { chromium } = require('playwright');25(async () => {26  const browser = await chromium.launch();27  const context = await browser.newContext();28  const page = await context.newPage();29  const element = await page.$('input[type="text"]');30  const isFocusableValue = await isFocusable(element);31  console.log(isFocusableValue);32  await browser.close();33})();Using AI Code Generation
1const { isCheckable } = require('playwright/lib/server/dom.js');2const { chromium } = require('playwright');3(async () => {4  const browser = await chromium.launch();5  const context = await browser.newContext();6  const page = await context.newPage();7  await page.waitForTimeout(2000);8  await page.click('text=Try it');9  await page.waitForTimeout(2000);10  await page.click('text=Try it');11  await page.waitForTimeout(2000);12  const element = await page.$('input[type=checkbox]');13  const checkable = await isCheckable(element);14  console.log(checkable);15  await browser.close();16})();17const { isCheckable } = require('playwright/lib/server/dom.js');18const { chromium } = require('playwright');19(async () => {20  const browser = await chromium.launch();21  const context = await browser.newContext();22  const page = await context.newPage();23  await page.waitForTimeout(2000);24  await page.click('text=Try it');25  await page.waitForTimeout(2000);26  await page.click('text=Try it');27  await page.waitForTimeout(2000);28  const element = await page.$('button');29  const checkable = await isCheckable(element);30  console.log(checkable);31  await browser.close();32})();33@lauramurphy I think you should use the method page.isElementChecked() to check if the checkbox is checked or not. The isCheckable method is notUsing AI Code Generation
1const { isCheckable } = require('playwright/lib/server/dom.js');2const { chromium } = require('playwright');3(async () => {4  const browser = await chromium.launch();5  const context = await browser.newContext();6  const page = await context.newPage();7  const searchBox = await page.$('input[name="q"]');8  const isCheckableResult = await isCheckable(searchBox);9  console.log(isCheckableResult);10  await browser.close();11})();12const { isFocusable } = require('playwright/lib/server/dom.js');13const { chromium } = require('playwright');14(async () => {15  const browser = await chromium.launch();16  const context = await browser.newContext();17  const page = await context.newPage();18  const searchBox = await page.$('input[name="q"]');19  const isFocusableResult = await isFocusable(searchBox);20  console.log(isFocusableResult);21  await browser.close();22})();23const { isVisible } = require('playwright/lib/server/dom.js');24const { chromium } = require('playwright');25(async () => {26  const browser = await chromium.launch();27  const context = await browser.newContext();28  const page = await context.newPage();29  const searchBox = await page.$('input[name="q"]');30  const isVisibleResult = await isVisible(searchBox);31  console.log(isVisibleResult);Using AI Code Generation
1const { isCheckable } = require('playwright/lib/server/dom.js');2const { chromium } = require('playwright');3(async () => {4  const browser = await chromium.launch();5  const context = await browser.newContext();6  const page = await context.newPage();7  const element = await page.$('text=Get started');8  const isCheckableResult = await isCheckable(element);9  console.log(isCheckableResult);10  await browser.close();11})();Using AI Code Generation
1const { isCheckable } = require('playwright/lib/server/dom.js');2const { chromium } = require('playwright');3(async () => {4  const browser = await chromium.launch();5  const context = await browser.newContext();6  const page = await context.newPage();7  await page.setContent(`<input type='checkbox' id='checkbox'>`);8  const checkbox = await page.$('#checkbox');9  const isCheckableResult = await isCheckable(checkbox);10  console.log('Is checkbox checkable? ', isCheckableResult);11  await browser.close();12})();Using AI Code Generation
1const { isCheckable } = require('playwright/lib/server/dom.js');2const { chromium } = require('playwright');3(async () => {4  const browser = await chromium.launch();5  const context = await browser.newContext();6  const page = await context.newPage();7  const element = await page.$('text=API');8  console.log(await isCheckable(element));9  await browser.close();10})();Using AI Code Generation
1const { isCheckable } = require('playwright/lib/server/dom.js');2const { chromium } = require('playwright');3(async () => {4  const browser = await chromium.launch();5  const context = await browser.newContext();6  const page = await context.newPage();7  const element = await page.$('input[name="q"]');8  const isCheckableValue = isCheckable(element);9  console.log(isCheckableValue);10  await browser.close();11})();12const { isCheckable } = require('playwright/lib/server/dom.js');13const { chromium } = require('playwright');14(async () => {15  const browser = await chromium.launch();16  const context = await browser.newContext();17  const page = await context.newPage();18  const element = await page.$('input[type="checkbox"]');19  const isCheckableValue = isCheckable(element);20  console.log(isCheckableValue);21  await browser.close();22})();23How to use isEditable() method of Playwright Internal API ?24How to use isDisabled() method of Playwright Internal API ?25How to use isVisible() method of Playwright Internal API ?26How to use isHidden() method of Playwright Internal API ?27How to use isHiddenWithinTree() method ofUsing AI Code Generation
1const { isCheckable } = require('playwright/lib/server/frames');2const { chromium } = require('playwright');3(async () => {4  const browser = await chromium.launch();5  const page = await browser.newPage();6  const search = await page.$('input[name="q"]');7  const isCheckable = await page.evaluate(element => element.isCheckable(), search);8  console.log(isCheckable);9  await browser.close();10})();LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!
