Best JavaScript code snippet using devicefarmer-stf
dragdrop.ts
Source:dragdrop.ts
1import {NgModule,Directive,OnDestroy,AfterViewInit,ElementRef,HostListener,Input,Output,EventEmitter,NgZone} from '@angular/core';2import {CommonModule} from '@angular/common';3import {DomHandler} from '../dom/domhandler';4@Directive({5 selector: '[pDraggable]'6})7export class Draggable implements AfterViewInit, OnDestroy {8 9 @Input('pDraggable') scope: string;10 @Input() pDraggableDisabled: boolean;11 12 @Input() dragEffect: string;13 14 @Input() dragHandle: string;15 16 @Output() onDragStart: EventEmitter<any> = new EventEmitter();17 18 @Output() onDragEnd: EventEmitter<any> = new EventEmitter();19 20 @Output() onDrag: EventEmitter<any> = new EventEmitter();21 22 handle: any;23 dragListener: any;24 mouseDownListener: any;25 mouseUpListener: any;26 27 constructor(public el: ElementRef, public zone: NgZone) {}28 29 ngAfterViewInit() {30 if (!this.pDraggableDisabled) {31 this.el.nativeElement.draggable = true;32 this.bindMouseListeners();33 }34 }35 bindDragListener() {36 if (!this.dragListener) {37 this.zone.runOutsideAngular(() => {38 this.dragListener = this.drag.bind(this);39 this.el.nativeElement.addEventListener('drag', this.dragListener);40 });41 }42 }43 unbindDragListener() {44 if (this.dragListener) {45 this.zone.runOutsideAngular(() => {46 this.el.nativeElement.removeEventListener('drag', this.dragListener);47 this.dragListener = null;48 });49 }50 }51 bindMouseListeners() {52 if (!this.mouseDownListener && !this.mouseUpListener) {53 this.zone.runOutsideAngular(() => {54 this.mouseDownListener = this.mousedown.bind(this);55 this.mouseUpListener = this.mouseup.bind(this);56 this.el.nativeElement.addEventListener('mousedown', this.mouseDownListener);57 this.el.nativeElement.addEventListener('mouseup', this.mouseUpListener);58 });59 }60 }61 unbindMouseListeners() {62 if (this.mouseDownListener && this.mouseUpListener) {63 this.zone.runOutsideAngular(() => {64 this.el.nativeElement.removeEventListener('mousedown', this.mouseDownListener);65 this.el.nativeElement.removeEventListener('mouseup', this.mouseUpListener);66 this.mouseDownListener = null;67 this.mouseUpListener = null;68 });69 }70 }71 drag(event) {72 this.onDrag.emit(event);73 }74 @HostListener('dragstart', ['$event']) 75 dragStart(event) {76 if(this.allowDrag()) {77 if(this.dragEffect) {78 event.dataTransfer.effectAllowed = this.dragEffect;79 }80 event.dataTransfer.setData('text', this.scope);81 82 this.onDragStart.emit(event);83 this.bindDragListener();84 }85 else {86 event.preventDefault();87 }88 }89 @HostListener('dragend', ['$event']) 90 dragEnd(event) {91 this.onDragEnd.emit(event);92 this.unbindDragListener();93 }94 95 mousedown(event) {96 this.handle = event.target;97 }98 mouseup(event) {99 this.handle = null;100 }101 102 allowDrag() : boolean {103 if(this.dragHandle && this.handle)104 return DomHandler.matches(this.handle, this.dragHandle);105 else106 return true;107 }108 ngOnDestroy() {109 this.unbindDragListener();110 this.unbindMouseListeners();111 }112 113}114@Directive({115 selector: '[pDroppable]'116})117export class Droppable implements AfterViewInit, OnDestroy {118 119 @Input('pDroppable') scope: string|string[];120 @Input() pDroppableDisabled: boolean;121 122 @Input() dropEffect: string;123 124 @Output() onDragEnter: EventEmitter<any> = new EventEmitter();125 126 @Output() onDragLeave: EventEmitter<any> = new EventEmitter();127 128 @Output() onDrop: EventEmitter<any> = new EventEmitter();129 130 constructor(public el: ElementRef, public zone: NgZone) {}131 dragOverListener: any;132 ngAfterViewInit() {133 if (!this.pDroppableDisabled) {134 this.bindDragOverListener();135 }136 }137 bindDragOverListener() {138 if (!this.dragOverListener) {139 this.zone.runOutsideAngular(() => {140 this.dragOverListener = this.dragOver.bind(this);141 this.el.nativeElement.addEventListener('dragover', this.dragOverListener);142 });143 }144 }145 unbindDragOverListener() {146 if (this.dragOverListener) {147 this.zone.runOutsideAngular(() => {148 this.el.nativeElement.removeEventListener('dragover', this.dragOverListener);149 this.dragOverListener = null;150 });151 }152 }153 dragOver(event) {154 event.preventDefault();155 }156 157 @HostListener('drop', ['$event'])158 drop(event) {159 if(this.allowDrop(event)) {160 event.preventDefault();161 this.onDrop.emit(event);162 }163 }164 165 @HostListener('dragenter', ['$event']) 166 dragEnter(event) {167 event.preventDefault();168 169 if(this.dropEffect) {170 event.dataTransfer.dropEffect = this.dropEffect;171 }172 173 this.onDragEnter.emit(event);174 }175 176 @HostListener('dragleave', ['$event']) 177 dragLeave(event) {178 event.preventDefault();179 180 this.onDragLeave.emit(event);181 }182 183 allowDrop(event): boolean {184 let dragScope = event.dataTransfer.getData('text');185 if(typeof (this.scope) == "string" && dragScope == this.scope) {186 return true;187 }188 else if(this.scope instanceof Array) {189 for(let j = 0; j < this.scope.length; j++) {190 if(dragScope == this.scope[j]) {191 return true;192 }193 }194 }195 return false;196 }197 ngOnDestroy() {198 this.unbindDragOverListener();199 }200}201@NgModule({202 imports: [CommonModule],203 exports: [Draggable,Droppable],204 declarations: [Draggable,Droppable]205})...
tab-drag.directive.ts
Source:tab-drag.directive.ts
1import {Directive,OnDestroy,AfterViewInit,ElementRef,HostListener,Input,Output,EventEmitter,NgZone,NgModule} from '@angular/core';2import {SofDomHandler} from 'ng-softilys/dom';34@Directive({5 selector: '[tab-drag]',6 providers: [SofDomHandler]7})8export class TabDragDirective implements AfterViewInit, OnDestroy {9 10 @Input('tab-drag') scope: string;1112 @Input() draggableDisabled: boolean;13 14 @Input() dragEffect: string;15 16 @Input() dragHandle: string;17 18 @Output() onDragStart: EventEmitter<any> = new EventEmitter();19 20 @Output() onDragEnd: EventEmitter<any> = new EventEmitter();21 22 @Output() onDrag: EventEmitter<any> = new EventEmitter();23 24 handle: any;2526 dragListener: any;2728 mouseDownListener: any;2930 mouseUpListener: any;31 32 constructor(public el: ElementRef, public domHandler: SofDomHandler, public zone: NgZone) {}33 34 ngAfterViewInit() {35 if (!this.draggableDisabled) {36 this.el.nativeElement.draggable = true;37 this.bindMouseListeners();38 }39 }4041 bindDragListener() {42 if (!this.dragListener) {43 this.zone.runOutsideAngular(() => {44 this.dragListener = this.drag.bind(this);45 this.el.nativeElement.addEventListener('drag', this.dragListener);46 });47 }48 }4950 unbindDragListener() {51 if (this.dragListener) {52 this.zone.runOutsideAngular(() => {53 this.el.nativeElement.removeEventListener('drag', this.dragListener);54 this.dragListener = null;55 });56 }57 }5859 bindMouseListeners() {60 if (!this.mouseDownListener && !this.mouseUpListener) {61 this.zone.runOutsideAngular(() => {62 this.mouseDownListener = this.mousedown.bind(this);63 this.mouseUpListener = this.mouseup.bind(this);64 this.el.nativeElement.addEventListener('mousedown', this.mouseDownListener);65 this.el.nativeElement.addEventListener('mouseup', this.mouseUpListener);66 });67 }68 }6970 unbindMouseListeners() {71 if (this.mouseDownListener && this.mouseUpListener) {72 this.zone.runOutsideAngular(() => {73 this.el.nativeElement.removeEventListener('mousedown', this.mouseDownListener);74 this.el.nativeElement.removeEventListener('mouseup', this.mouseUpListener);75 this.mouseDownListener = null;76 this.mouseUpListener = null;77 });78 }79 }8081 drag(event) {82 this.onDrag.emit(event);83 }8485 @HostListener('dragstart', ['$event']) 86 dragStart(event) {87 if(this.allowDrag()) {88 if(this.dragEffect) {89 event.dataTransfer.effectAllowed = this.dragEffect;90 }91 event.dataTransfer.setData('text', this.scope);92 93 this.onDragStart.emit(event);9495 this.bindDragListener();96 }97 else {98 event.preventDefault();99 }100 }101102 @HostListener('dragend', ['$event']) 103 dragEnd(event) {104 this.onDragEnd.emit(event);105 this.unbindDragListener();106 }107 108 mousedown(event) {109 this.handle = event.target;110 }111112 mouseup(event) {113 this.handle = null;114 }115 116 allowDrag() : boolean {117 if(this.dragHandle && this.handle)118 return this.domHandler.matches(this.handle, this.dragHandle);119 else120 return true;121 }122123 ngOnDestroy() {124 this.unbindDragListener();125 this.unbindMouseListeners();126 }127}128129@NgModule({130 imports: [],131 declarations: [TabDragDirective],132 exports: [TabDragDirective]133 })
...
testMatchingCards.ts
Source:testMatchingCards.ts
1import {2 authStore, lobbyStore, 3} from "../../store"4const isInGame = () => Boolean(lobbyStore.players[authStore.nickname])5export const testMatchingCards = (): void => {6 const isMyTurn = isInGame() && lobbyStore.current.turn === lobbyStore.players[authStore.nickname].index7 let hasPlayableCard = false8 if (isInGame()) lobbyStore.players[authStore.nickname].hand.forEach((card) => {9 const [lastCard] = lobbyStore.current.discard.slice(-1)10 const { currentColor } = lobbyStore.current 11 const isSpecialCard = card.color === 'special'12 const isSameType = card.type === lastCard.type13 const isSameColor = card.color === currentColor14 if (isMyTurn && (isSpecialCard || isSameColor || isSameType)) {15 card.container.alpha = 116 card.isHoverable = true17 hasPlayableCard = true18 if (card.mousedownListener) return19 card.mousedownListener = async () => {20 card.moveTo(lobbyStore.discard.x, lobbyStore.discard.y)21 22 const index = lobbyStore.players[authStore.nickname].hand.findIndex(({ symbol }) => symbol === card.symbol)23 24 lobbyStore.playCard(index)25 lobbyStore.players[authStore.nickname].hand.splice(index, 1)26 27 await card.rotate(lobbyStore.discard.rotation)28 lobbyStore.discard.type = card.type29 lobbyStore.discard.color = card.color30 31 lobbyStore.discard.update()32 card.destroy()33 testMatchingCards()34 }35 36 card.graphics.addListener('mousedown', card.mousedownListener)37 } else {38 card.container.alpha = 0.539 card.isHoverable = false40 card.graphics.removeListener('mousedown', card.mousedownListener)41 card.mousedownListener = null42 }43 })44 if (!hasPlayableCard && isMyTurn && !lobbyStore.current.awaitingChoice) {45 lobbyStore.draw.container.alpha = 146 lobbyStore.draw.isHoverable = true47 if (lobbyStore.draw.mousedownListener) return48 lobbyStore.draw.mousedownListener = () => lobbyStore.drawCard()49 lobbyStore.draw.graphics.addListener('mousedown', lobbyStore.draw.mousedownListener)50 } else {51 lobbyStore.draw.container.alpha = 0.552 lobbyStore.draw.isHoverable = false53 if (lobbyStore.draw.mousedownListener) {54 lobbyStore.draw.graphics.removeListener('mousedown', lobbyStore.draw.mousedownListener)55 }56 lobbyStore.draw.mousedownListener = null57 }...
Using AI Code Generation
1var mouseDownListener = require('devicefarmer-stf').mouseDownListener;2var mouseMoveListener = require('devicefarmer-stf').mouseMoveListener;3var mouseUpListener = require('devicefarmer-stf').mouseUpListener;4var touchDownListener = require('devicefarmer-stf').touchDownListener;5var touchMoveListener = require('devicefarmer-stf').touchMoveListener;6var touchUpListener = require('devicefarmer-stf').touchUpListener;7var keyDownListener = require('devicefarmer-stf').keyDownListener;8var keyUpListener = require('devicefarmer-stf').keyUpListener;9mouseDownListener(function(mouseDownEvent) {10 console.log("Mouse Down Event: " + JSON.stringify(mouseDownEvent));11});12mouseMoveListener(function(mouseMoveEvent) {13 console.log("Mouse Move Event: " + JSON.stringify(mouseMoveEvent));14});15mouseUpListener(function(mouseUpEvent) {16 console.log("Mouse Up Event: " + JSON.stringify(mouseUpEvent));17});18touchDownListener(function(touchDownEvent) {19 console.log("Touch Down Event: " + JSON.stringify(touchDownEvent));20});21touchMoveListener(function(touchMoveEvent) {22 console.log("Touch Move Event: " + JSON.stringify(touchMoveEvent));23});24touchUpListener(function(touchUpEvent) {25 console.log("Touch Up Event: " + JSON.stringify(touchUpEvent));26});27keyDownListener(function(keyDownEvent) {28 console.log("Key Down Event: " + JSON.stringify(keyDownEvent));29});30keyUpListener(function(keyUpEvent) {31 console.log("Key Up Event: " + JSON.stringify(keyUpEvent));32});33keyUpListener(function(keyUpEvent) {
Using AI Code Generation
1var stf = require('devicefarmer-stf');2var device = stf.getDevice();3device.mouseDownListener(function(err, data) {4 if (err) {5 console.log(err);6 } else {7 console.log(data);8 }9});10var stf = require('devicefarmer-stf');11var device = stf.getDevice();12device.mouseUpListener(function(err, data) {13 if (err) {14 console.log(err);15 } else {16 console.log(data);17 }18});19var stf = require('devicefarmer-stf');20var device = stf.getDevice();21device.mouseMoveListener(function(err, data) {22 if (err) {23 console.log(err);24 } else {25 console.log(data);26 }27});28var stf = require('devicefarmer-stf');29var device = stf.getDevice();30device.mouseWheelListener(function(err, data) {31 if (err) {32 console.log(err);33 } else {34 console.log(data);35 }36});37var stf = require('devicefarmer-stf');38var device = stf.getDevice();39device.touchDownListener(function(err, data) {40 if (err) {41 console.log(err);42 } else {43 console.log(data);44 }45});46var stf = require('devicefarmer-stf');47var device = stf.getDevice();48device.touchUpListener(function(err, data) {49 if (err) {50 console.log(err);51 } else {52 console.log(data);53 }54});55var stf = require('devicefarmer-stf');56var device = stf.getDevice();57device.touchMoveListener(function(err, data) {58 if (err) {59 console.log(err);60 } else {61 console.log(data);62 }63});64var stf = require('devicefarmer-stf');
Using AI Code Generation
1var stf = require('devicefarmer-stf')2stf.mouseDownListener(function (err, data) {3 console.log(data)4})5var stf = require('devicefarmer-stf')6stf.mouseUpListener(function (err, data) {7 console.log(data)8})9var stf = require('devicefarmer-stf')10stf.mouseMoveListener(function (err, data) {11 console.log(data)12})13var stf = require('devicefarmer-stf')14stf.mouseWheelListener(function (err, data) {15 console.log(data)16})17var stf = require('devicefarmer-stf')18stf.keyDownListener(function (err, data) {19 console.log(data)20})21var stf = require('devicefarmer-stf')22stf.keyUpListener(function (err, data) {23 console.log(data)24})25var stf = require('devicefarmer-stf')26stf.keyCharListener(function (err, data) {27 console.log(data)28})29var stf = require('devicefarmer-stf')30stf.touchDownListener(function (err, data) {31 console.log(data)32})33var stf = require('devicefarmer-stf')34stf.touchUpListener(function (err, data) {35 console.log(data)36})37var stf = require('devicefarmer-stf')38stf.touchMoveListener(function (err, data) {39 console.log(data)40})41var stf = require('devicefarmer-stf')42stf.touchCancelListener(function (err, data) {43 console.log(data)44})
Using AI Code Generation
1var stf = require('devicefarmer-stf');2device.mouseDownListener(function(x, y) {3 console.log('Mouse down at (' + x + ', ' + y + ')');4});5var stf = require('devicefarmer-stf');6device.mouseUpListener(function(x, y) {7 console.log('Mouse up at (' + x + ', ' + y + ')');8});9var stf = require('devicefarmer-stf');10device.mouseMoveListener(function(x, y) {11 console.log('Mouse move at (' + x + ', ' + y + ')');12});13var stf = require('devicefarmer-stf');14device.mouseWheelListener(function(x, y) {15 console.log('Mouse wheel at (' + x + ', ' + y + ')');16});17var stf = require('devicefarmer-stf');18device.keyDownListener(function(keyCode, metaState) {19 console.log('Key down with key code ' + keyCode + ' and meta state ' + metaState);20});21var stf = require('devicefarmer-stf');22device.keyUpListener(function(keyCode, metaState) {23 console.log('Key up with key code ' + keyCode + ' and meta state ' + metaState);24});25var stf = require('devicefarmer-stf');26device.keyCharListener(function(charCode, metaState) {27 console.log('Key char with char code ' + charCode + ' and meta state ' + meta
Using AI Code Generation
1var stf = require('devicefarmer-stf');2 if (err) {3 console.log('Error: ' + err);4 return;5 }6 client.getDevices(function(err, devices) {7 if (err) {8 console.log('Error: ' + err);9 return;10 }11 for (var i = 0; i < devices.length; i++) {12 var device = devices[i];13 stf.use(device, function(err, api) {14 if (err) {15 console.log('Error: ' + err);16 return;17 }18 api.mouseDownListener(function(err, data) {19 if (err) {20 console.log('Error: ' + err);21 return;22 }23 console.log('Mouse down at ' + data.x + ',' + data.y);24 });25 });26 }27 });28});29var stf = require('devicefarmer-stf');30 if (err) {31 console.log('Error: ' + err);32 return;33 }34 client.getDevices(function(err, devices) {35 if (err) {36 console.log('Error: ' + err);37 return;38 }39 for (var i = 0; i < devices.length; i++) {40 var device = devices[i];41 stf.use(device, function(err, api) {42 if (err) {43 console.log('Error: ' + err);44 return;45 }46 api.mouseUpListener(function(err, data) {47 if (err) {48 console.log('Error: ' + err);49 return;50 }51 console.log('Mouse up at ' + data.x + ',' + data.y);52 });53 });54 }55 });56});57var stf = require('devicefarmer-stf');58 if (err) {59 console.log('Error: ' + err);60 return;61 }62 client.getDevices(function(err, devices) {63 if (err
Using AI Code Generation
1var stf = require('devicefarmer-stf');2device.mouseDownListener(function (x, y) {3 console.log('mouseDownListener: ' + x + ', ' + y);4});5var stf = require('devicefarmer-stf');6device.mouseUpListener(function (x, y) {7 console.log('mouseUpListener: ' + x + ', ' + y);8});9var stf = require('devicefarmer-stf');10device.mouseMoveListener(function (x, y) {11 console.log('mouseMoveListener: ' + x + ', ' + y);12});13var stf = require('devicefarmer-stf');14device.mouseWheelListener(function (x, y) {15 console.log('mouseWheelListener: ' + x + ', ' + y);16});17var stf = require('devicefarmer-stf');18device.touchDownListener(function (x, y) {19 console.log('touchDownListener: ' + x + ', ' + y);20});21var stf = require('devicefarmer-stf');22device.touchUpListener(function (x, y) {23 console.log('touchUpListener: ' + x + ', ' + y);24});25var stf = require('devicefarmer-stf');26device.touchMoveListener(function (x, y) {27 console.log('touchMoveListener: ' + x + ', ' + y);28});
Using AI Code Generation
1var stf = require('devicefarmer-stf');2var dev = device.getDevice('0123456789ABCDEF');3dev.mouseDownListener(function (err, data) {4 if (err) {5 console.log(err);6 } else {7 console.log(data);8 }9});10var stf = require('devicefarmer-stf');11var dev = device.getDevice('0123456789ABCDEF');12dev.mouseUpListener(function (err, data) {13 if (err) {14 console.log(err);15 } else {16 console.log(data);17 }18});19var stf = require('devicefarmer-stf');20var dev = device.getDevice('0123456789ABCDEF');21dev.mouseMoveListener(function (err, data) {22 if (err) {23 console.log(err);24 } else {25 console.log(data);26 }27});28var stf = require('devicefarmer-stf');29var dev = device.getDevice('0123456789ABCDEF');30dev.mouseWheelListener(function (err, data) {31 if (err) {32 console.log(err);33 } else {34 console.log(data);35 }36});37var stf = require('devicefarmer-stf');38var dev = device.getDevice('0123456789ABCDEF');39dev.touchDownListener(function (err, data) {40 if (err) {41 console.log(err);42 } else {43 console.log(data);44 }45});46var stf = require('devicefarmer-stf');47var dev = device.getDevice('0123456789ABCDEF');48dev.touchUpListener(function (err, data) {
Using AI Code Generation
1var stf = require('devicefarmer-stf');2var deviceSerial = '0123456789ABCDEF';3var options = {4};5device.mouseDownListener(deviceSerial, options, function(err, data) {6 console.log('mouseDownListener', err, data);7});8var stf = require('devicefarmer-stf');9var deviceSerial = '0123456789ABCDEF';10var options = {11};12device.mouseUpListener(deviceSerial, options, function(err, data) {13 console.log('mouseUpListener', err, data);14});15var stf = require('devicefarmer-stf');16var deviceSerial = '0123456789ABCDEF';17var options = {18};19device.mouseMoveListener(deviceSerial, options, function(err, data) {20 console.log('mouseMoveListener', err, data);21});22var stf = require('devicefarmer-stf');23var deviceSerial = '0123456789ABCDEF';24var options = {25};26device.mouseWheelListener(deviceSerial, options, function(err, data) {27 console.log('mouseWheelListener', err, data);28});29var stf = require('devicefarmer-stf');30var deviceSerial = '0123456789ABCDEF';31var options = {32};
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!!