Best Python code snippet using playwright-python
jquery.flot.touch.js
Source:jquery.flot.touch.js  
1/* global jQuery */2(function($) {3    'use strict';4    var options = {5        propagateSupportedGesture: false6    };7    function init(plot) {8        plot.hooks.processOptions.push(initTouchNavigation);9    }10    function initTouchNavigation(plot, options) {11        var gestureState = {12                twoTouches: false,13                currentTapStart: { x: 0, y: 0 },14                currentTapEnd: { x: 0, y: 0 },15                prevTap: { x: 0, y: 0 },16                currentTap: { x: 0, y: 0 },17                interceptedLongTap: false,18                isUnsupportedGesture: false,19                prevTapTime: null,20                tapStartTime: null,21                longTapTriggerId: null22            },23            maxDistanceBetweenTaps = 20,24            maxIntervalBetweenTaps = 500,25            maxLongTapDistance = 20,26            minLongTapDuration = 1500,27            pressedTapDuration = 125,28            mainEventHolder;29        function interpretGestures(e) {30            var o = plot.getOptions();31            if (!o.pan.active && !o.zoom.active) {32                return;33            }34            updateOnMultipleTouches(e);35            mainEventHolder.dispatchEvent(new CustomEvent('touchevent', { detail: e }));36            if (isPinchEvent(e)) {37                executeAction(e, 'pinch');38            } else {39                executeAction(e, 'pan');40                if (!wasPinchEvent(e)) {41                    if (isDoubleTap(e)) {42                        executeAction(e, 'doubleTap');43                    }44                    executeAction(e, 'tap');45                    executeAction(e, 'longTap');46                }47            }48        }49        function executeAction(e, gesture) {50            switch (gesture) {51                case 'pan':52                    pan[e.type](e);53                    break;54                case 'pinch':55                    pinch[e.type](e);56                    break;57                case 'doubleTap':58                    doubleTap.onDoubleTap(e);59                    break;60                case 'longTap':61                    longTap[e.type](e);62                    break;63                case 'tap':64                    tap[e.type](e);65                    break;66            }67        }68        function bindEvents(plot, eventHolder) {69            mainEventHolder = eventHolder[0];70            eventHolder[0].addEventListener('touchstart', interpretGestures, false);71            eventHolder[0].addEventListener('touchmove', interpretGestures, false);72            eventHolder[0].addEventListener('touchend', interpretGestures, false);73        }74        function shutdown(plot, eventHolder) {75            eventHolder[0].removeEventListener('touchstart', interpretGestures);76            eventHolder[0].removeEventListener('touchmove', interpretGestures);77            eventHolder[0].removeEventListener('touchend', interpretGestures);78            if (gestureState.longTapTriggerId) {79                clearTimeout(gestureState.longTapTriggerId);80                gestureState.longTapTriggerId = null;81            }82        }83        var pan = {84            touchstart: function(e) {85                updatePrevForDoubleTap();86                updateCurrentForDoubleTap(e);87                updateStateForLongTapStart(e);88                mainEventHolder.dispatchEvent(new CustomEvent('panstart', { detail: e }));89            },90            touchmove: function(e) {91                preventEventBehaviors(e);92                updateCurrentForDoubleTap(e);93                updateStateForLongTapEnd(e);94                if (!gestureState.isUnsupportedGesture) {95                    mainEventHolder.dispatchEvent(new CustomEvent('pandrag', { detail: e }));96                }97            },98            touchend: function(e) {99                preventEventBehaviors(e);100                if (wasPinchEvent(e)) {101                    mainEventHolder.dispatchEvent(new CustomEvent('pinchend', { detail: e }));102                    mainEventHolder.dispatchEvent(new CustomEvent('panstart', { detail: e }));103                } else if (noTouchActive(e)) {104                    mainEventHolder.dispatchEvent(new CustomEvent('panend', { detail: e }));105                }106            }107        };108        var pinch = {109            touchstart: function(e) {110                mainEventHolder.dispatchEvent(new CustomEvent('pinchstart', { detail: e }));111            },112            touchmove: function(e) {113                preventEventBehaviors(e);114                gestureState.twoTouches = isPinchEvent(e);115                if (!gestureState.isUnsupportedGesture) {116                    mainEventHolder.dispatchEvent(new CustomEvent('pinchdrag', { detail: e }));117                }118            },119            touchend: function(e) {120                preventEventBehaviors(e);121            }122        };123        var doubleTap = {124            onDoubleTap: function(e) {125                preventEventBehaviors(e);126                mainEventHolder.dispatchEvent(new CustomEvent('doubletap', { detail: e }));127            }128        };129        var longTap = {130            touchstart: function(e) {131                longTap.waitForLongTap(e);132            },133            touchmove: function(e) {134            },135            touchend: function(e) {136                if (gestureState.longTapTriggerId) {137                    clearTimeout(gestureState.longTapTriggerId);138                    gestureState.longTapTriggerId = null;139                }140            },141            isLongTap: function(e) {142                var currentTime = new Date().getTime(),143                    tapDuration = currentTime - gestureState.tapStartTime;144                if (tapDuration >= minLongTapDuration && !gestureState.interceptedLongTap) {145                    if (distance(gestureState.currentTapStart.x, gestureState.currentTapStart.y, gestureState.currentTapEnd.x, gestureState.currentTapEnd.y) < maxLongTapDistance) {146                        gestureState.interceptedLongTap = true;147                        return true;148                    }149                }150                return false;151            },152            waitForLongTap: function(e) {153                var longTapTrigger = function() {154                    if (longTap.isLongTap(e)) {155                        mainEventHolder.dispatchEvent(new CustomEvent('longtap', { detail: e }));156                    }157                    gestureState.longTapTriggerId = null;158                };159                if (!gestureState.longTapTriggerId) {160                    gestureState.longTapTriggerId = setTimeout(longTapTrigger, minLongTapDuration);161                }162            }163        };164        var tap = {165            touchstart: function(e) {166                gestureState.tapStartTime = new Date().getTime();167            },168            touchmove: function(e) {169            },170            touchend: function(e) {171                if (tap.isTap(e)) {172                    mainEventHolder.dispatchEvent(new CustomEvent('tap', { detail: e }));173                    preventEventBehaviors(e);174                }175            },176            isTap: function(e) {177                var currentTime = new Date().getTime(),178                    tapDuration = currentTime - gestureState.tapStartTime;179                if (tapDuration <= pressedTapDuration) {180                    if (distance(gestureState.currentTapStart.x, gestureState.currentTapStart.y, gestureState.currentTapEnd.x, gestureState.currentTapEnd.y) < maxLongTapDistance) {181                        return true;182                    }183                }184                return false;185            }186        };187        if (options.pan.enableTouch === true || options.zoom.enableTouch) {188            plot.hooks.bindEvents.push(bindEvents);189            plot.hooks.shutdown.push(shutdown);190        };191        function updatePrevForDoubleTap() {192            gestureState.prevTap = {193                x: gestureState.currentTap.x,194                y: gestureState.currentTap.y195            };196        };197        function updateCurrentForDoubleTap(e) {198            gestureState.currentTap = {199                x: e.touches[0].pageX,200                y: e.touches[0].pageY201            };202        }203        function updateStateForLongTapStart(e) {204            gestureState.tapStartTime = new Date().getTime();205            gestureState.interceptedLongTap = false;206            gestureState.currentTapStart = {207                x: e.touches[0].pageX,208                y: e.touches[0].pageY209            };210            gestureState.currentTapEnd = {211                x: e.touches[0].pageX,212                y: e.touches[0].pageY213            };214        };215        function updateStateForLongTapEnd(e) {216            gestureState.currentTapEnd = {217                x: e.touches[0].pageX,218                y: e.touches[0].pageY219            };220        };221        function isDoubleTap(e) {222            var currentTime = new Date().getTime(),223                intervalBetweenTaps = currentTime - gestureState.prevTapTime;224            if (intervalBetweenTaps >= 0 && intervalBetweenTaps < maxIntervalBetweenTaps) {225                if (distance(gestureState.prevTap.x, gestureState.prevTap.y, gestureState.currentTap.x, gestureState.currentTap.y) < maxDistanceBetweenTaps) {226                    e.firstTouch = gestureState.prevTap;227                    e.secondTouch = gestureState.currentTap;228                    return true;229                }230            }231            gestureState.prevTapTime = currentTime;232            return false;233        }234        function preventEventBehaviors(e) {235            if (!gestureState.isUnsupportedGesture) {236                e.preventDefault();237                if (!plot.getOptions().propagateSupportedGesture) {238                    e.stopPropagation();239                }240            }241        }242        function distance(x1, y1, x2, y2) {243            return Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));244        }245        function noTouchActive(e) {246            return (e.touches && e.touches.length === 0);247        }248        function wasPinchEvent(e) {249            return (gestureState.twoTouches && e.touches.length === 1);250        }251        function updateOnMultipleTouches(e) {252            if (e.touches.length >= 3) {253                gestureState.isUnsupportedGesture = true;254            } else {255                gestureState.isUnsupportedGesture = false;256            }257        }258        function isPinchEvent(e) {259            if (e.touches && e.touches.length >= 2) {260                if (e.touches[0].target === plot.getEventHolder() &&261                    e.touches[1].target === plot.getEventHolder()) {262                    return true;263                }264            }265            return false;266        }267    }268    $.plot.plugins.push({269        init: init,270        options: options,271        name: 'navigateTouch',272        version: '0.3'273    });...tapTarget.js
Source:tapTarget.js  
1(function ($) {2  var methods = {3  init: function (options) {4    return this.each(function() {5    var origin = $('#'+$(this).attr('data-activates'));6    var screen = $('body');7    // Creating tap target8    var tapTargetEl = $(this);9    var tapTargetWrapper = tapTargetEl.parent('.tap-target-wrapper');10    var tapTargetWave = tapTargetWrapper.find('.tap-target-wave');11    var tapTargetOriginEl = tapTargetWrapper.find('.tap-target-origin');12    var tapTargetContentEl = tapTargetEl.find('.tap-target-content');13    // Creating wrapper14    if (!tapTargetWrapper.length) {15      tapTargetWrapper = tapTargetEl.wrap($('<div class="tap-target-wrapper"></div>')).parent();16    }17    // Creating content18    if (!tapTargetContentEl.length) {19      tapTargetContentEl = $('<div class="tap-target-content"></div>');20      tapTargetEl.append(tapTargetContentEl);21    }22    // Creating foreground wave23    if (!tapTargetWave.length) {24      tapTargetWave = $('<div class="tap-target-wave"></div>');25      // Creating origin26      if (!tapTargetOriginEl.length) {27        tapTargetOriginEl = origin.clone(true, true);28        tapTargetOriginEl.addClass('tap-target-origin');29        tapTargetOriginEl.removeAttr('id');30        tapTargetOriginEl.removeAttr('style');31        tapTargetWave.append(tapTargetOriginEl);32      }33      tapTargetWrapper.append(tapTargetWave);34    }35    // Open36    var openTapTarget = function() {37      if (tapTargetWrapper.is('.open')) {38        return;39      }40      // Adding open class41      tapTargetWrapper.addClass('open');42      setTimeout(function() {43        tapTargetOriginEl.off('click.tapTarget').on('click.tapTarget', function(e) {44          closeTapTarget();45          tapTargetOriginEl.off('click.tapTarget');46        });47        $(document).off('click.tapTarget').on('click.tapTarget', function(e) {48          closeTapTarget();49          $(document).off('click.tapTarget');50        });51        var throttledCalc = Materialize.throttle(function() {52          calculateTapTarget();53        }, 200);54        $(window).off('resize.tapTarget').on('resize.tapTarget', throttledCalc);55      }, 0);56    };57    // Close58    var closeTapTarget = function(){59      if (!tapTargetWrapper.is('.open')) {60        return;61      }62      tapTargetWrapper.removeClass('open');63      tapTargetOriginEl.off('click.tapTarget')64      $(document).off('click.tapTarget');65      $(window).off('resize.tapTarget');66    };67    // Pre calculate68    var calculateTapTarget = function() {69      // Element or parent is fixed position?70      var isFixed = origin.css('position') === 'fixed';71      if (!isFixed) {72        var parents = origin.parents();73        for(var i = 0; i < parents.length; i++) {74          isFixed = $(parents[i]).css('position') == 'fixed';75          if (isFixed) {76            break;77          }78        }79      }80      // Calculating origin81      var originWidth = origin.outerWidth();82      var originHeight = origin.outerHeight();83      var originTop = isFixed ? origin.offset().top - $(document).scrollTop() : origin.offset().top;84      var originLeft = isFixed ? origin.offset().left - $(document).scrollLeft() : origin.offset().left;85      // Calculating screen86      var windowWidth = $(window).width();87      var windowHeight = $(window).height();88      var centerX = windowWidth / 2;89      var centerY = windowHeight / 2;90      var isLeft = originLeft <= centerX;91      var isRight = originLeft > centerX;92      var isTop = originTop <= centerY;93      var isBottom = originTop > centerY;94      var isCenterX = originLeft >= windowWidth*0.25 && originLeft <= windowWidth*0.75;95      var isCenterY = originTop >= windowHeight*0.25 && originTop <= windowHeight*0.75;96      // Calculating tap target97      var tapTargetWidth = tapTargetEl.outerWidth();98      var tapTargetHeight = tapTargetEl.outerHeight();99      var tapTargetTop = originTop + originHeight/2 - tapTargetHeight/2;100      var tapTargetLeft = originLeft + originWidth/2 - tapTargetWidth/2;101      var tapTargetPosition = isFixed ? 'fixed' : 'absolute';102      // Calculating content103      var tapTargetTextWidth = isCenterX ? tapTargetWidth : tapTargetWidth/2 + originWidth;104      var tapTargetTextHeight = tapTargetHeight/2;105      var tapTargetTextTop = isTop ? tapTargetHeight/2 : 0;106      var tapTargetTextBottom = 0;107      var tapTargetTextLeft = isLeft && !isCenterX ? tapTargetWidth/2 - originWidth : 0;108      var tapTargetTextRight = 0;109      var tapTargetTextPadding = originWidth;110      var tapTargetTextAlign = isBottom ? 'bottom' : 'top';111      // Calculating wave112      var tapTargetWaveWidth = originWidth > originHeight ? originWidth*2 : originWidth*2;113      var tapTargetWaveHeight = tapTargetWaveWidth;114      var tapTargetWaveTop = tapTargetHeight/2 - tapTargetWaveHeight/2;115      var tapTargetWaveLeft = tapTargetWidth/2 - tapTargetWaveWidth/2;116      // Setting tap target117      var tapTargetWrapperCssObj = {};118      tapTargetWrapperCssObj.top = isTop ? tapTargetTop : '';119      tapTargetWrapperCssObj.right = isRight ? windowWidth - tapTargetLeft - tapTargetWidth : '';120      tapTargetWrapperCssObj.bottom = isBottom ? windowHeight - tapTargetTop - tapTargetHeight : '';121      tapTargetWrapperCssObj.left = isLeft ? tapTargetLeft : '';122      tapTargetWrapperCssObj.position = tapTargetPosition;123      tapTargetWrapper.css(tapTargetWrapperCssObj);124      // Setting content125      tapTargetContentEl.css({126        width: tapTargetTextWidth,127        height: tapTargetTextHeight,128        top: tapTargetTextTop,129        right: tapTargetTextRight,130        bottom: tapTargetTextBottom,131        left: tapTargetTextLeft,132        padding: tapTargetTextPadding,133        verticalAlign: tapTargetTextAlign134      });135      // Setting wave136      tapTargetWave.css({137        top: tapTargetWaveTop,138        left: tapTargetWaveLeft,139        width: tapTargetWaveWidth,140        height: tapTargetWaveHeight141      });142    }143    if (options == 'open') {144      calculateTapTarget();145      openTapTarget();146    }147    if (options == 'close')148      closeTapTarget();149    });150  },151  open: function() {},152  close: function() {}153  };154  $.fn.tapTarget = function(methodOrOptions) {155  if (methods[methodOrOptions] || typeof methodOrOptions === 'object')156    return methods.init.apply( this, arguments );157  $.error( 'Method ' +  methodOrOptions + ' does not exist on jQuery.tap-target' );158  };...tap.js.uncompressed.js
Source:tap.js.uncompressed.js  
...31		//		|		on(node, tap.hold, function(e){});32		//		|		on(node, tap.doubletap, function(e){});33		//34		//		C. Used with dojox.gesture.tap.* directly35		//		|	dojox.gesture.tap(node, function(e){});36		//		|	dojox.gesture.tap.hold(node, function(e){});37		//		|	dojox.gesture.tap.doubletap(node, function(e){});38		//39		//		Though there is always a default gesture instance after being required, e.g40		//		|	require(['dojox/gesture/tap'], function(){...});41		//42		//		It's possible to create a new one with different parameter setting:43		//		|	var myTap = new dojox.gesture.tap.Tap({holdThreshold: 300});44		//		|	dojo.connect(node, myTap, function(e){});45		//		|	dojo.connect(node, myTap.hold, function(e){});46		//		|	dojo.connect(node, myTap.doubletap, function(e){});47	};48=====*/49kernel.experimental("dojox.gesture.tap");50// Declare an internal anonymous class which will only be exported51// by module return value e.g. dojox.gesture.tap.Tap...tap.js
Source:tap.js  
...31		//		|		on(node, tap.hold, function(e){});32		//		|		on(node, tap.doubletap, function(e){});33		//34		//		C. Used with dojox.gesture.tap.* directly35		//		|	dojox.gesture.tap(node, function(e){});36		//		|	dojox.gesture.tap.hold(node, function(e){});37		//		|	dojox.gesture.tap.doubletap(node, function(e){});38		//39		//		Though there is always a default gesture instance after being required, e.g40		//		|	require(['dojox/gesture/tap'], function(){...});41		//42		//		It's possible to create a new one with different parameter setting:43		//		|	var myTap = new dojox.gesture.tap.Tap({holdThreshold: 300});44		//		|	dojo.connect(node, myTap, function(e){});45		//		|	dojo.connect(node, myTap.hold, function(e){});46		//		|	dojo.connect(node, myTap.doubletap, function(e){});47	};48=====*/49kernel.experimental("dojox.gesture.tap");50// Declare an internal anonymous class which will only be exported51// by module return value e.g. dojox.gesture.tap.Tap...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!!
