13836ee4edbd6f1eb34a19bf4c1299b1
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.VIEWPORT_WIDTHS = exports.MIN_TOUCH_TARGET = exports.DEVICES = void 0;
exports.aspectRatio = aspectRatio;
exports.createSwipe = createSwipe;
exports.createTouchPress = createTouchPress;
exports.hasHorizontalOverflow = hasHorizontalOverflow;
exports.isNearAspect = isNearAspect;
exports.isTouchTargetOk = isTouchTargetOk;
exports.orientationFor = orientationFor;
var DEVICES = exports.DEVICES = {
  iphoneSE: {
    name: 'iPhone SE',
    width: 320,
    height: 568,
    deviceScaleFactor: 2
  },
  iphone13: {
    name: 'iPhone 13',
    width: 390,
    height: 844,
    deviceScaleFactor: 3
  },
  iphone14: {
    name: 'iPhone 14',
    width: 390,
    height: 844,
    deviceScaleFactor: 3
  },
  iphone15ProMax: {
    name: 'iPhone 15 Pro Max',
    width: 430,
    height: 932,
    deviceScaleFactor: 3
  },
  pixel5: {
    name: 'Pixel 5',
    width: 393,
    height: 851,
    deviceScaleFactor: 2.75
  },
  galaxyS21: {
    name: 'Samsung Galaxy S21',
    width: 360,
    height: 800,
    deviceScaleFactor: 3
  },
  ipad: {
    name: 'iPad',
    width: 768,
    height: 1024,
    deviceScaleFactor: 2
  },
  ipadPro: {
    name: 'iPad Pro',
    width: 1024,
    height: 1366,
    deviceScaleFactor: 2
  }
};
var VIEWPORT_WIDTHS = exports.VIEWPORT_WIDTHS = [320, 375, 414, 768];
var MIN_TOUCH_TARGET = exports.MIN_TOUCH_TARGET = 44;
function isTouchTargetOk(width, height) {
  var min = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : MIN_TOUCH_TARGET;
  return width >= min && height >= min;
}
function hasHorizontalOverflow(scrollWidth, clientWidth) {
  var tolerance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
  return scrollWidth > clientWidth + tolerance;
}
function aspectRatio(width, height) {
  if (height === 0) return 0;
  return width / height;
}
function isNearAspect(actual, expected) {
  var tolerance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.08;
  return Math.abs(actual - expected) <= tolerance;
}
function orientationFor(device, mode) {
  if (mode === 'portrait') {
    return {
      width: Math.min(device.width, device.height),
      height: Math.max(device.width, device.height)
    };
  }
  return {
    width: Math.max(device.width, device.height),
    height: Math.min(device.width, device.height)
  };
}
function createTouchPress(x, y) {
  return {
    type: 'press',
    x,
    y,
    durationMs: 50
  };
}
function createSwipe(from, to) {
  return {
    type: 'swipe',
    x: from.x,
    y: from.y,
    to,
    durationMs: 200
  };
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERVZJQ0VTIiwiZXhwb3J0cyIsImlwaG9uZVNFIiwibmFtZSIsIndpZHRoIiwiaGVpZ2h0IiwiZGV2aWNlU2NhbGVGYWN0b3IiLCJpcGhvbmUxMyIsImlwaG9uZTE0IiwiaXBob25lMTVQcm9NYXgiLCJwaXhlbDUiLCJnYWxheHlTMjEiLCJpcGFkIiwiaXBhZFBybyIsIlZJRVdQT1JUX1dJRFRIUyIsIk1JTl9UT1VDSF9UQVJHRVQiLCJpc1RvdWNoVGFyZ2V0T2siLCJtaW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJoYXNIb3Jpem9udGFsT3ZlcmZsb3ciLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwidG9sZXJhbmNlIiwiYXNwZWN0UmF0aW8iLCJpc05lYXJBc3BlY3QiLCJhY3R1YWwiLCJleHBlY3RlZCIsIk1hdGgiLCJhYnMiLCJvcmllbnRhdGlvbkZvciIsImRldmljZSIsIm1vZGUiLCJtYXgiLCJjcmVhdGVUb3VjaFByZXNzIiwieCIsInkiLCJ0eXBlIiwiZHVyYXRpb25NcyIsImNyZWF0ZVN3aXBlIiwiZnJvbSIsInRvIl0sInNvdXJjZXMiOlsidmlld3BvcnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaGFyZWQgdmlld3BvcnQgLyB0b3VjaCBoZWxwZXJzIGZvciB1bml0ICsgUGxheXdyaWdodCBzdWl0ZXMuXG4gKi9cblxuZXhwb3J0IGNvbnN0IERFVklDRVMgPSB7XG4gIGlwaG9uZVNFOiB7IG5hbWU6ICdpUGhvbmUgU0UnLCB3aWR0aDogMzIwLCBoZWlnaHQ6IDU2OCwgZGV2aWNlU2NhbGVGYWN0b3I6IDIgfSxcbiAgaXBob25lMTM6IHsgbmFtZTogJ2lQaG9uZSAxMycsIHdpZHRoOiAzOTAsIGhlaWdodDogODQ0LCBkZXZpY2VTY2FsZUZhY3RvcjogMyB9LFxuICBpcGhvbmUxNDogeyBuYW1lOiAnaVBob25lIDE0Jywgd2lkdGg6IDM5MCwgaGVpZ2h0OiA4NDQsIGRldmljZVNjYWxlRmFjdG9yOiAzIH0sXG4gIGlwaG9uZTE1UHJvTWF4OiB7IG5hbWU6ICdpUGhvbmUgMTUgUHJvIE1heCcsIHdpZHRoOiA0MzAsIGhlaWdodDogOTMyLCBkZXZpY2VTY2FsZUZhY3RvcjogMyB9LFxuICBwaXhlbDU6IHsgbmFtZTogJ1BpeGVsIDUnLCB3aWR0aDogMzkzLCBoZWlnaHQ6IDg1MSwgZGV2aWNlU2NhbGVGYWN0b3I6IDIuNzUgfSxcbiAgZ2FsYXh5UzIxOiB7IG5hbWU6ICdTYW1zdW5nIEdhbGF4eSBTMjEnLCB3aWR0aDogMzYwLCBoZWlnaHQ6IDgwMCwgZGV2aWNlU2NhbGVGYWN0b3I6IDMgfSxcbiAgaXBhZDogeyBuYW1lOiAnaVBhZCcsIHdpZHRoOiA3NjgsIGhlaWdodDogMTAyNCwgZGV2aWNlU2NhbGVGYWN0b3I6IDIgfSxcbiAgaXBhZFBybzogeyBuYW1lOiAnaVBhZCBQcm8nLCB3aWR0aDogMTAyNCwgaGVpZ2h0OiAxMzY2LCBkZXZpY2VTY2FsZUZhY3RvcjogMiB9LFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgRGV2aWNlS2V5ID0ga2V5b2YgdHlwZW9mIERFVklDRVM7XG5cbi8qKiBDbGFzc2ljIFFBIHdpZHRocyByZXF1ZXN0ZWQgaW4gdGhlIGF1ZGl0IGJyaWVmICovXG5leHBvcnQgY29uc3QgVklFV1BPUlRfV0lEVEhTID0gWzMyMCwgMzc1LCA0MTQsIDc2OF0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBNSU5fVE9VQ0hfVEFSR0VUID0gNDQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1RvdWNoVGFyZ2V0T2sod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIG1pbiA9IE1JTl9UT1VDSF9UQVJHRVQpOiBib29sZWFuIHtcbiAgcmV0dXJuIHdpZHRoID49IG1pbiAmJiBoZWlnaHQgPj0gbWluO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSG9yaXpvbnRhbE92ZXJmbG93KHNjcm9sbFdpZHRoOiBudW1iZXIsIGNsaWVudFdpZHRoOiBudW1iZXIsIHRvbGVyYW5jZSA9IDEpOiBib29sZWFuIHtcbiAgcmV0dXJuIHNjcm9sbFdpZHRoID4gY2xpZW50V2lkdGggKyB0b2xlcmFuY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3BlY3RSYXRpbyh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChoZWlnaHQgPT09IDApIHJldHVybiAwO1xuICByZXR1cm4gd2lkdGggLyBoZWlnaHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05lYXJBc3BlY3QoYWN0dWFsOiBudW1iZXIsIGV4cGVjdGVkOiBudW1iZXIsIHRvbGVyYW5jZSA9IDAuMDgpOiBib29sZWFuIHtcbiAgcmV0dXJuIE1hdGguYWJzKGFjdHVhbCAtIGV4cGVjdGVkKSA8PSB0b2xlcmFuY2U7XG59XG5cbi8qKiBTaW11bGF0ZSBSTiBEaW1lbnNpb25zIGNoYW5nZSBmb3Igb3JpZW50YXRpb24gdGVzdHMgKi9cbmV4cG9ydCBmdW5jdGlvbiBvcmllbnRhdGlvbkZvcihkZXZpY2U6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSwgbW9kZTogJ3BvcnRyYWl0JyB8ICdsYW5kc2NhcGUnKSB7XG4gIGlmIChtb2RlID09PSAncG9ydHJhaXQnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiBNYXRoLm1pbihkZXZpY2Uud2lkdGgsIGRldmljZS5oZWlnaHQpLFxuICAgICAgaGVpZ2h0OiBNYXRoLm1heChkZXZpY2Uud2lkdGgsIGRldmljZS5oZWlnaHQpLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogTWF0aC5tYXgoZGV2aWNlLndpZHRoLCBkZXZpY2UuaGVpZ2h0KSxcbiAgICBoZWlnaHQ6IE1hdGgubWluKGRldmljZS53aWR0aCwgZGV2aWNlLmhlaWdodCksXG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIFRvdWNoRXZlbnRMaWtlID0ge1xuICB0eXBlOiAncHJlc3MnIHwgJ2xvbmdQcmVzcycgfCAnc3dpcGUnO1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgZHVyYXRpb25Ncz86IG51bWJlcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb3VjaFByZXNzKHg6IG51bWJlciwgeTogbnVtYmVyKTogVG91Y2hFdmVudExpa2Uge1xuICByZXR1cm4geyB0eXBlOiAncHJlc3MnLCB4LCB5LCBkdXJhdGlvbk1zOiA1MCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3dpcGUoXG4gIGZyb206IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSxcbiAgdG86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSxcbik6IFRvdWNoRXZlbnRMaWtlICYgeyB0bzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9IH0ge1xuICByZXR1cm4geyB0eXBlOiAnc3dpcGUnLCB4OiBmcm9tLngsIHk6IGZyb20ueSwgdG8sIGR1cmF0aW9uTXM6IDIwMCB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUlPLElBQU1BLE9BQU8sR0FBQUMsT0FBQSxDQUFBRCxPQUFBLEdBQUc7RUFDckJFLFFBQVEsRUFBRTtJQUFFQyxJQUFJLEVBQUUsV0FBVztJQUFFQyxLQUFLLEVBQUUsR0FBRztJQUFFQyxNQUFNLEVBQUUsR0FBRztJQUFFQyxpQkFBaUIsRUFBRTtFQUFFLENBQUM7RUFDOUVDLFFBQVEsRUFBRTtJQUFFSixJQUFJLEVBQUUsV0FBVztJQUFFQyxLQUFLLEVBQUUsR0FBRztJQUFFQyxNQUFNLEVBQUUsR0FBRztJQUFFQyxpQkFBaUIsRUFBRTtFQUFFLENBQUM7RUFDOUVFLFFBQVEsRUFBRTtJQUFFTCxJQUFJLEVBQUUsV0FBVztJQUFFQyxLQUFLLEVBQUUsR0FBRztJQUFFQyxNQUFNLEVBQUUsR0FBRztJQUFFQyxpQkFBaUIsRUFBRTtFQUFFLENBQUM7RUFDOUVHLGNBQWMsRUFBRTtJQUFFTixJQUFJLEVBQUUsbUJBQW1CO0lBQUVDLEtBQUssRUFBRSxHQUFHO0lBQUVDLE1BQU0sRUFBRSxHQUFHO0lBQUVDLGlCQUFpQixFQUFFO0VBQUUsQ0FBQztF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