Best JavaScript code snippet using playwright-internal
ParticlesSystem.js
Source:ParticlesSystem.js
1/*2GNU GENERAL PUBLIC LICENSE3Version 3, 29 June 20074Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>5Everyone is permitted to copy and distribute verbatim copies6of this license document, but changing it is not allowed.7Copyright (C) 2019, By Alexandre Belin8*/9function ParticleObj(Emitter, ParticlesName, RenderClass, PartPosX, PartPosY, Transition, Frequency, PartSize, Amplitude, _Index, ParticlesDirection){10 this.Emitter = Emitter;11 this.ParticlesName = ParticlesName;12 this.RenderClass = RenderClass || 'NoClass';13 this.PartPosX = PartPosX;14 this.PartPosY = PartPosY;15 this.Transition = Transition;16 this.Frequency = Frequency;17 this.PartSize = PartSize;18 this.Amplitude = Amplitude;19 this._Index = _Index;20 this.ParticlesDirection = ParticlesDirection;21 var _ParticleDom = document.createElement('div');22 _ParticleDom.id = this.ParticlesName + '-' + this._Index;23 _ParticleDom.classList.add(this.RenderClass);24 _ParticleDom.style.position = 'absolute';25 _ParticleDom.style.transition = 'all ' + (this.Transition / 1000) + 's linear';26 _ParticleDom.style.width = this.PartSize + 'px';27 _ParticleDom.style.height = this.PartSize + 'px';28 _ParticleDom.style.top = Math.floor(this.PartPosY) + 'px';29 _ParticleDom.style.left = Math.floor(this.PartPosX) + 'px';30 _ParticleDom.style.zIndex = document.getElementById(this.Emitter).style.zIndex;31 document.body.appendChild(_ParticleDom);32 this.AnimateParticle = function(){33 var _this = this;34 setTimeout(function(){35 _ParticleDom.style.transform = 'translate3d(' + (_this.ParticlesDirection[0] * _this.Amplitude) + 'px, ' + (_this.ParticlesDirection[1] * _this.Amplitude) + 'px, 0)';36 }, 20);37 setTimeout(function(){38 _ParticleDom.style.transition = 'all 0.25s';39 _ParticleDom.style.opacity = '0';40 }, (_this.Transition - 250));41 setTimeout(function(){42 _ParticleDom.remove();43 }, _this.Transition);44 };45}46/*=================================================*/47function ParticleSysBase(Emitter, ParticlesName, RenderClass, Transition, SizeMin, SizeMax, Amplitude){48 this.Emitter = Emitter;49 this.ParticlesName = ParticlesName;50 this.RenderClass = RenderClass;51 this.Transition = Transition;52 this.SizeMin = SizeMin;53 this.SizeMax = SizeMax;54 this.Amplitude = Amplitude;55}56/*=================================================*/5758function ParticleSys(Emitter, ParticlesName, RenderClass, Transition, SizeMin, SizeMax, Amplitude, Frequency, ParticlesDirection){59 ParticleSysBase.call(this, Emitter, ParticlesName, RenderClass, Transition, SizeMin, SizeMax, Amplitude);60 this.Frequency = Frequency;61 this.ParticlesDirection = ParticlesDirection;62 var PartEmition;63 this.KillParticles = function(){64 clearInterval(PartEmition);65 };66 this.RenderParticles = function(){67 var _this = this;68 var i = 0;69 PartEmition = setInterval(function(){70 var EmitterSizeX = document.getElementById(_this.Emitter).getBoundingClientRect().width;71 var EmitterSizeY = document.getElementById(_this.Emitter).getBoundingClientRect().height;72 var EmitterPosX = document.getElementById(_this.Emitter).getBoundingClientRect().left;73 var EmitterPosY = document.getElementById(_this.Emitter).getBoundingClientRect().top;74 var PartSize = Math.floor(Math.random() * (_this.SizeMax - _this.SizeMin)) + _this.SizeMin;75 var PartPosX = (Math.floor(Math.random() * ((EmitterPosX + EmitterSizeX) - EmitterPosX)) + EmitterPosX) - (PartSize / 2);76 var PartPosY = (Math.floor(Math.random() * ((EmitterPosY + EmitterSizeY) - EmitterPosY)) + EmitterPosY) - (PartSize / 2);77 var _Particle = new ParticleObj(_this.Emitter, _this.ParticlesName, _this.RenderClass, PartPosX, PartPosY, _this.Transition, _this.Frequency, PartSize, _this.Amplitude, i, _this.ParticlesDirection);78 _Particle.AnimateParticle();79 i++;80 }, _this.Frequency);81 };82 }83 ParticleSys.prototype = Object.create(ParticleSysBase.prototype);84 ParticleSys.prototype.constructor = ParticleSys;85 /*=================================================*/86 function ParticleExplosionSys(Emitter, ParticlesName, RenderClass, Transition, SizeMin, SizeMax, Amplitude, ParticlesQty){87 ParticleSysBase.call(this, Emitter, ParticlesName, RenderClass, Transition, SizeMin, SizeMax, Amplitude);88 this.ParticlesQty = ParticlesQty;89 this.ParticlesArray = [];90 this.RenderParticles = function(){91 for(var i = 0 ; i < this.ParticlesQty ; i++){92 var EmitterSizeX = document.getElementById(this.Emitter).getBoundingClientRect().width;93 var EmitterSizeY = document.getElementById(this.Emitter).getBoundingClientRect().height;94 var EmitterPosX = document.getElementById(this.Emitter).getBoundingClientRect().left;95 var EmitterPosY = document.getElementById(this.Emitter).getBoundingClientRect().top;96 var PartSize = Math.floor(Math.random() * (this.SizeMax - this.SizeMin)) + this.SizeMin;97 var PartPosX = (Math.floor(Math.random() * ((EmitterPosX + EmitterSizeX) - EmitterPosX)) + EmitterPosX) - (PartSize / 2);98 var PartPosY = (Math.floor(Math.random() * ((EmitterPosY + EmitterSizeY) - EmitterPosY)) + EmitterPosY) - (PartSize / 2);99 var DirectionX = (Math.random() * 2) - 1;100 var DirectionY = (Math.random() * 2) - 1;101 this.ParticlesDirection = [DirectionX, DirectionY];102 var _Particle = new ParticleObj(this.Emitter, this.ParticlesName, this.RenderClass, PartPosX, PartPosY, this.Transition, this.Frequency, PartSize, this.Amplitude, i, this.ParticlesDirection);103 _Particle.AnimateParticle();104 }105 };106}107ParticleExplosionSys.prototype = Object.create(ParticleSysBase.prototype);
...
state_widget.js
Source:state_widget.js
1odoo.define('web.statetest', function (require) {2 "use strict";3 var fields = require('web.basic_fields');4 var registry = require('web.field_registry');5 var core = require('web.core');6 var field_utils = require('web.field_utils');7 var Widget = require('web.Widget');8 var widgetRegistry = require('web.widget_registry');9 var qweb = core.qweb;10 var _t = core._t;11 var StateTest = fields.InputField.extend({12 className: 'o_field_status',13 supportedFieldTypes: ['char'],14 /**15 * Urls are links in readonly mode.16 *17 * @override18 */19 init: function () {20 this._super.apply(this, arguments);21 this.tagName = this.mode === 'readonly' ? 'div' : 'input';22 },23 //--------------------------------------------------------------------------24 // Public25 //--------------------------------------------------------------------------26 /**27 * Returns the associated link.28 *29 * @override30 */31 getFocusableElement: function () {32 return this.mode === 'readonly' ? this.$el : this._super.apply(this, arguments);33 },34 //--------------------------------------------------------------------------35 // Private36 //--------------------------------------------------------------------------37 /**38 * In readonly, the widget needs to be a link with proper href and proper39 * support for the design, which is achieved by the added classes.40 *41 * @override42 * @private43 */44 _renderReadonly: function () {45 var renderTxt = 'Unfixed';46 var renderClass = 'grey';47 if (this.value == '0') {48 renderTxt = 'Fixed';49 renderClass = 'green';50 } else if (this.value == '1') {51 renderTxt = 'Wont fix';52 renderClass = 'red';53 } else if (this.value == '3') {54 renderTxt = 'Need further discussion';55 renderClass = 'orange';56 } else if (this.value == '4') {57 renderTxt = 'Can not reproduce';58 renderClass = 'purple';59 }60 this.$el.text(renderTxt)61 .addClass('o_form_uri o_text_overflow')62 .attr('data-target', '_blank')63 .attr('class', renderClass);64 }65 });66//viewRegistry.add('web.statetest', StateTest);67 registry.add('state_test', StateTest);68////////////////69 var TStateTest = fields.InputField.extend({70 className: 'o_field_status',71 supportedFieldTypes: ['char'],72 /**73 * Urls are links in readonly mode.74 *75 * @override76 */77 init: function () {78 this._super.apply(this, arguments);79 this.tagName = this.mode === 'readonly' ? 'div' : 'input';80 },81 //--------------------------------------------------------------------------82 // Public83 //--------------------------------------------------------------------------84 /**85 * Returns the associated link.86 *87 * @override88 */89 getFocusableElement: function () {90 return this.mode === 'readonly' ? this.$el : this._super.apply(this, arguments);91 },92 //--------------------------------------------------------------------------93 // Private94 //--------------------------------------------------------------------------95 /**96 * In readonly, the widget needs to be a link with proper href and proper97 * support for the design, which is achieved by the added classes.98 *99 * @override100 * @private101 */102 _renderReadonly: function () {103 var renderTxt = 'Untested';104 var renderClass = 'grey';105 if (this.value == '0') {106 renderTxt = 'Passed';107 renderClass = 'green'108 } else if (this.value == '1') {109 renderTxt = 'Failed';110 renderClass = 'red'111 } else if (this.value == '3') {112 renderTxt = 'Need further discussion';113 renderClass = 'orange'114 } else if (this.value == '4') {115 renderTxt = 'Can not reproduce';116 }117 this.$el.text(renderTxt)118 .addClass('o_form_uri o_text_overflow')119 .attr('data-target', '_blank')120 .attr('class', renderClass);121 }122 });123//viewRegistry.add('web.statetest', StateTest);124 registry.add('tester_state_test', TStateTest);125 return StateTest;126});127odoo.define('web.link_minimize', function (require) {128 "use strict";129 var AbstractField = require('web.AbstractField');130 var field_registry = require('web.field_registry');131 var LinkMinimize = AbstractField.extend({132 _render: function () {133 if (this.value) {134 this.$el.html('<a href="' + this.value + '" target="_blank">Open Image / Video In New Tab</a>');135 }136 }137 });138 field_registry.add('link_minimize', LinkMinimize);...
Class.jsx
Source:Class.jsx
...84 </div>85 </div>86 <div className='col-8'>87 <div className='classOne pb-5'>88 <button className='btn border' onClick={() => this.renderClass('v1')}>89 <img src="./img/v1.png" width={100} alt='img' />90 </button>91 <button className='btn border mx-1' onClick={() => this.renderClass('v2')}>92 <img src="./img/v2.png" width={100} alt='img' />93 </button>94 <button className='btn border' onClick={() => this.renderClass('v3')}>95 <img src="./img/v3.png" width={100} alt='img' />96 </button>97 <button className='btn border ml-1' onClick={() => this.renderClass('v4')}>98 <img src="./img/v4.png" width={100} alt='img' />99 </button>100 </div>101 <div className='classTwo mt-5'>102 <button className='btn border' onClick={() => this.renderClass('v5')}>103 <img src="./img/v5.png" width={100} alt='img' />104 </button>105 <button className='btn border mx-1' onClick={() => this.renderClass('v6')}>106 <img src="./img/v6.png" width={100} alt='img' />107 </button>108 <button className='btn border' onClick={() => this.renderClass('v7')}>109 <img src="./img/v7.png" width={100} alt='img' />110 </button>111 <button className='btn border ml-1' onClick={() => this.renderClass('v8')}>112 <img src="./img/v8.png" width={100} alt='img' />113 </button>114 </div>115 <div className='classTwo mt-5'>116 <button className='btn border' onClick={() => this.renderClass('v9')}>117 <img src="./img/v9.png" width={100} alt='img' />118 </button>119 </div>120 </div>121 </div>122 </div>123 )124 }...
WizardConfigure.js
Source:WizardConfigure.js
1import React from 'react'2import PropTypes from 'prop-types'3import { accountStore } from 'stores/account'4import WizardConfigureGeneric from '../Common/WizardConfigure/WizardConfigureGeneric'5import WizardConfigureGmail from '../Common/WizardConfigure/WizardConfigureGmail'6import WizardConfigureMicrosoft from '../Common/WizardConfigure/WizardConfigureMicrosoft'7import WizardConfigureContainer from '../Common/WizardConfigure/WizardConfigureContainer'8import WizardConfigureDefaultLayout from '../Common/WizardConfigure/WizardConfigureDefaultLayout'9import SERVICE_TYPES from 'shared/Models/ACAccounts/ServiceTypes'10export default class WizardConfigure extends React.Component {11 /* **************************************************************************/12 // Class13 /* **************************************************************************/14 static propTypes = {15 serviceId: PropTypes.string.isRequired,16 onRequestCancel: PropTypes.func.isRequired17 }18 /* **************************************************************************/19 // Component lifecycle20 /* **************************************************************************/21 componentDidMount () {22 accountStore.listen(this.accountUpdated)23 }24 componentWillUnmount () {25 accountStore.unlisten(this.accountUpdated)26 }27 componentWillReceiveProps (nextProps) {28 if (this.props.mailboxId !== nextProps.mailboxId) {29 this.setState({30 serviceType: (accountStore.getState().getService(nextProps.serviceId) || {}).type31 })32 }33 }34 /* **************************************************************************/35 // Data lifecycle36 /* **************************************************************************/37 state = {38 serviceType: (accountStore.getState().getService(this.props.serviceId) || {}).type39 }40 accountUpdated = (accountState) => {41 this.setState({42 serviceType: (accountState.getService(this.props.serviceId) || {}).type43 })44 }45 /* **************************************************************************/46 // Rendering47 /* **************************************************************************/48 render () {49 const { onRequestCancel, serviceId, ...passProps } = this.props50 const { serviceType } = this.state51 let RenderClass52 switch (serviceType) {53 case SERVICE_TYPES.GENERIC:54 RenderClass = WizardConfigureGeneric55 break56 case SERVICE_TYPES.GOOGLE_MAIL:57 case SERVICE_TYPES.GOOGLE_INBOX:58 RenderClass = WizardConfigureGmail59 break60 case SERVICE_TYPES.MICROSOFT_MAIL:61 RenderClass = WizardConfigureMicrosoft62 break63 case SERVICE_TYPES.CONTAINER:64 RenderClass = WizardConfigureContainer65 break66 default:67 RenderClass = WizardConfigureDefaultLayout68 break69 }70 return (<RenderClass onRequestCancel={onRequestCancel} serviceId={serviceId} {...passProps} />)71 }...
main.js
Source:main.js
1$(document).ready(function () {2 const $posts = $("#list-arts")[0],3 BASEURL = "/articles",4 $categories = $('#block-tags')[0],5 $slider = $('#wrap-slider')[0],6 $featuredPost = $('#featured-post')[0]7 $mainPposts = $('#main-posts')[0];8 ////// CLASS API //////////9 class ArtApi {10 static fetch() {11 return fetch(BASEURL, { method: "get" }).then((res) => {12 return res.json();13 });14 }15 static remove(id) {16 return fetch(`delete/${id}`, { method: "delete" })17 .then((res) => { 18 if (!res.ok) { 19 return alert(res.statusText)20 } 21 return res.json() }22 )23 }24 };25 ////// api fetch ///////26 let rendering = () => {27 let renderClass = new RenderHTML();28 ArtApi.fetch().then((backendArticles) => {29 articles = backendArticles.concat();30 articles.forEach((item, index) => {31 let dataPost = renderClass.getDataPost(item);32 renderClass.getCategories(item);33 if (renderClass.randomPost == index) renderClass.showRandomPost(item, dataPost);34 if (index < 5) {35 renderClass.getSlider(item, dataPost);36 indexHtml.cardsEmpty = `<div class="col-12 col-sm-6"><h2> No posts </h2></div>`;37 } else {38 indexHtml.cardsEmpty = '';39 renderClass.getCards(item, dataPost);40 }41 });42 $featuredPost.innerHTML = indexHtml.featuredPost;43 $categories.innerHTML = indexHtml.categories;44 $posts.innerHTML = indexHtml.cardsEmpty + indexHtml.cards;45 $slider.innerHTML = indexHtml.slider;46 indexHtml.categories = '';47 indexHtml.cards = '';48 indexHtml.slider = '';49 renderClass.Set = new Set();50 })51 .then(() => {52 let script = document.createElement('script');53 let body = $('body')[0];54 script.type = 'text/javascript';55 script.src = '/public/js/staticHtml.js';56 body.appendChild(script);57 $(".remove_post").click(function () {58 var question = confirm('Are you sure want to delete this post?');59 if (question) {60 const postId = $(this).attr("data-id");61 ArtApi.remove(postId).then((post) => {62 articles = articles.filter(function (item) {63 if (item._id !== post._id) {64 renderClass.getCategories(item);65 } else {66 $(`.card-post`).remove(`div[data-id='${postId}']`);67 if (articles.length <= 6) {68 $posts.innerHTML = `<div class="col-12 col-sm-6"><h2> No posts </h2></div>`;69 }70 }71 return item._id !== post._id;72 });73 $categories.innerHTML = indexHtml.categories;74 });75 };76 renderClass.Set = new Set();77 indexHtml.categories = '';78 });79 });80 }81 rendering();...
util.js
Source:util.js
1/**2 * å®ä¾åRender3 * 4 * @param {}5 * renderClass6 * @param {}7 * config8 * @return {}9 */10talent.qe.instanceRender = function(renderClass, config) {11 var str = "var render = new " + renderClass + "();";12 eval (str);13 render.setConfig(config);14 return render;15}16/**17 * invoke render18 * 19 * @param {}20 * renderClass21 * @param {}22 * config23 */24talent.qe.invokeRender = function(renderClass, config) {25 try {26 var render = talent.qe.instanceRender(renderClass, config);27 render.render();28 }catch (e) {29 alert("error message from talent.qe.invokeRender: render class=" + renderClass + "\r\n" + e);30 }31}32/**33 * åºç¡æ¸²æè
34 */35talent.qe.BaseRender = talent.Class.extend({36 /**37 * ææç渲æé½æä¸ä¸ªsetConfigæ¹æ³38 */39 setConfig:function (config) {40 this.config = config;41 },42 init : function (){43 44 }45});46/**47 * åºç¡å建è
48 */49talent.qe.BaseCreator = talent.Class.extend({50 /**51 * ææç渲æé½æä¸ä¸ªsetConfigæ¹æ³52 */53 setConfig:function (config) {54 this.config = config;55 },56 getConfig:function() {57 return this.config;58 },59 init : function (){60 61 }...
Handlers.js
Source:Handlers.js
1import { todos } from "./app"2import { Render } from "./Render"3const renderClass = new Render()4export class Handlers {5 //mark todo as done6 handleCheckbox(e) {7 for (let i = 0; i < todos.length; i++) {8 if (todos[i].id === e.target.parentNode.id) {9 todos[i].done = !todos[i].done;10 renderClass.render()11 }12 }13 }14 //delete a todo15 deleteHandler(e) {16 let icons = document.querySelectorAll(".trashicon")17 for (let i = 0; i < icons.length; i++) {18 if (icons[i].id === e.target.id) {19 e.target.parentNode.classList.add("deletedElement")20 todos.splice(i, 1)21 setTimeout(() => renderClass.render(), 300)22 }23 }24 }25 //set due date for a todo26 calendarHandler(e, date) {27 for (let todo of todos) {28 if (todo.id == e.target.parentElement.id) {29 todo.dueDate = date30 renderClass.render()31 }32 }33 }...
StepWrapper.jsx
Source:StepWrapper.jsx
1import React from "react";2import Step from "./Step";3import "./stepWrapper.css";4function StepWrapper(props) {5 const { activeForm } = props; //form1=> success6 const steps = ["1", "2", "3"];7 return (8 <div className="step-wrapper">9 {steps.map((step, index) => (10 <Step11 step={step}12 key={index}13 renderClass={14 activeForm.substring(4) === step15 ? "active-step"16 : activeForm.substring(4) > step17 ? "success"18 : null19 }20 />21 ))}22 {/* <Step step="1" renderClass="active-step" />23 <Step step="2" renderClass="" />24 <Step step="3" renderClass="" /> */}25 </div>26 );27}...
Using AI Code Generation
1const { renderClass } = require('playwright/lib/server/supplements/recorder/recorderApp');2const { Page } = require('playwright/lib/server/supplements/recorder/recorderTypes');3const page = new Page();4const { html, css } = renderClass(page);5fs.writeFileSync('test.html', html);6fs.writeFileSync('test.css', css);7const { exec } = require('child_process');8exec('start test.html');9const { chromium } = require('playwright');10(async () => {11 const browser = await chromium.launch();12 const context = await browser.newContext();13 const page = await context.newPage();14 await page.click('#navbar > div.navbar__inner > div.navbar__items > div:nth-child(2) > a');15 await page.click('#navbar > div.navbar__inner > div.navbar__items > div:nth-child(3) > a');16 await page.click('#navbar > div.navbar__inner > div.navbar__items > div:nth-child(4) > a');17 await page.click('#navbar > div.navbar__inner > div.navbar__items > div:nth-child(5) > a');18 await page.click('#navbar > div.navbar__inner > div.navbar__items > div:nth-child(6) > a');19 await page.click('#navbar > div.navbar__inner > div.navbar__items > div:nth-child(7) > a');20 await page.click('#navbar > div
Using AI Code Generation
1const { renderClass } = require('@playwright/test/lib/test');2const { test } = require('@playwright/test');3test('test', async ({ page }) => {4 await renderClass(page, 'button', 'my-class');5});6const { test, expect } = require('@playwright/test');7test('test', async ({ page }) => {8 await page.click('text=Get started');9 await page.click('text=Docs');10 await page.click('text=API');11 await page.click('text=Test');12 await page.click('text=Test runner');13 await page.click('text=Test.fixtures');
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!!