bunnyquery 1.8.15 → 1.8.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bunnyquery.js CHANGED
@@ -2440,6 +2440,7 @@ Index the REMAINING windows - one record per row/item, looking at any page image
2440
2440
  var ROW_POS_ATTR = "data-row-pos";
2441
2441
  var MAX_ALTS = 2;
2442
2442
  var ALT_SCAN_LIMIT = 64;
2443
+ var MAX_RETURN_SETTLES = 3;
2443
2444
  var UNKNOWN_ROW_POS = "\0?";
2444
2445
  function createScrollAnchor(options) {
2445
2446
  var held = null;
@@ -2527,6 +2528,7 @@ Index the REMAINING windows - one record per row/item, looking at any page image
2527
2528
  var parked = null;
2528
2529
  var parkedStuck = false;
2529
2530
  var returning = false;
2531
+ var returnBudget = 0;
2530
2532
  var wroteTop = -1;
2531
2533
  var restoreExact = true;
2532
2534
  var restorePinned = false;
@@ -2622,17 +2624,13 @@ Index the REMAINING windows - one record per row/item, looking at any page image
2622
2624
  }
2623
2625
  function remember() {
2624
2626
  var b0 = options.getBox();
2625
- if (returning && b0 && b0.scrollTop !== wroteTop) {
2626
- parked = null;
2627
- parkedStuck = false;
2628
- returning = false;
2629
- }
2627
+ if (returning && b0 && b0.scrollTop !== wroteTop) release();
2630
2628
  if (frozen()) return;
2631
2629
  held = capture();
2632
2630
  }
2633
2631
  function hold() {
2634
2632
  if (frozen()) return;
2635
- if (sawFrozen || returning) {
2633
+ if (sawFrozen) {
2636
2634
  settleReturn();
2637
2635
  return;
2638
2636
  }
@@ -2675,6 +2673,13 @@ Index the REMAINING windows - one record per row/item, looking at any page image
2675
2673
  parked = capture();
2676
2674
  parkedStuck = !!options.isStuck();
2677
2675
  returning = true;
2676
+ returnBudget = MAX_RETURN_SETTLES;
2677
+ }
2678
+ function release() {
2679
+ parked = null;
2680
+ parkedStuck = false;
2681
+ returning = false;
2682
+ returnBudget = 0;
2678
2683
  }
2679
2684
  function pinBottom() {
2680
2685
  var box = options.getBox();
@@ -2684,7 +2689,16 @@ Index the REMAINING windows - one record per row/item, looking at any page image
2684
2689
  }
2685
2690
  function settleReturn() {
2686
2691
  if (frozen()) return false;
2692
+ var wasFrozen = sawFrozen;
2687
2693
  sawFrozen = false;
2694
+ if (!returning && !wasFrozen) return false;
2695
+ if (returning) {
2696
+ if (returnBudget <= 0) {
2697
+ release();
2698
+ return false;
2699
+ }
2700
+ returnBudget--;
2701
+ }
2688
2702
  if (parkedStuck) {
2689
2703
  pinBottom();
2690
2704
  return true;
@@ -2694,7 +2708,12 @@ Index the REMAINING windows - one record per row/item, looking at any page image
2694
2708
  restorePinned = false;
2695
2709
  restore(target, true);
2696
2710
  parked = !restorePinned || !restoreExact ? target : null;
2697
- returning = !!parked;
2711
+ returning = !!parked && returnBudget > 0;
2712
+ if (!returning) {
2713
+ parked = null;
2714
+ parkedStuck = false;
2715
+ returnBudget = 0;
2716
+ }
2698
2717
  return false;
2699
2718
  }
2700
2719
  function isReturning() {
@@ -2720,9 +2739,7 @@ Index the REMAINING windows - one record per row/item, looking at any page image
2720
2739
  }
2721
2740
  function forget() {
2722
2741
  held = null;
2723
- parked = null;
2724
- parkedStuck = false;
2725
- returning = false;
2742
+ release();
2726
2743
  }
2727
2744
  return {
2728
2745
  capture,
@@ -2733,6 +2750,7 @@ Index the REMAINING windows - one record per row/item, looking at any page image
2733
2750
  park,
2734
2751
  settleReturn,
2735
2752
  isReturning,
2753
+ release,
2736
2754
  pinBottom,
2737
2755
  isFrozen: frozen,
2738
2756
  thaw,
@@ -6547,7 +6565,7 @@ Index the REMAINING windows - one record per row/item, looking at any page image
6547
6565
  (function() {
6548
6566
  var MCP_PROD = "https://mcp.broadwayinc.computer";
6549
6567
  var MCP_DEV = "https://mcp-dev.broadwayinc.computer";
6550
- var BQ_VERSION = "1.8.14" ;
6568
+ var BQ_VERSION = "1.8.16" ;
6551
6569
  var ATTACHMENT_URL_EXPIRES_SECONDS = 600;
6552
6570
  var GOOGLE_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
6553
6571
  var GOOGLE_TOKEN_URL = "https://oauth2.googleapis.com/token";
@@ -8542,12 +8560,21 @@ Index the REMAINING windows - one record per row/item, looking at any page image
8542
8560
  }
8543
8561
  var _touchStartY = 0;
8544
8562
  function onMessagesWheel(e) {
8563
+ chatScrollAnchor.release();
8545
8564
  if (e.deltaY < 0) CS.stickToBottom = false;
8546
8565
  }
8547
8566
  function onMessagesTouchStart(e) {
8567
+ chatScrollAnchor.release();
8548
8568
  _touchStartY = e.touches && e.touches[0] ? e.touches[0].clientY : 0;
8549
8569
  }
8570
+ function onMessagesKeyDown() {
8571
+ chatScrollAnchor.release();
8572
+ }
8573
+ function onMessagesPointerDown() {
8574
+ chatScrollAnchor.release();
8575
+ }
8550
8576
  function onMessagesTouchMove(e) {
8577
+ chatScrollAnchor.release();
8551
8578
  var y = e.touches && e.touches[0] ? e.touches[0].clientY : 0;
8552
8579
  if (y > _touchStartY + 4) CS.stickToBottom = false;
8553
8580
  }
@@ -10445,6 +10472,8 @@ Index the REMAINING windows - one record per row/item, looking at any page image
10445
10472
  box.addEventListener("wheel", onMessagesWheel, { passive: true });
10446
10473
  box.addEventListener("touchstart", onMessagesTouchStart, { passive: true });
10447
10474
  box.addEventListener("touchmove", onMessagesTouchMove, { passive: true });
10475
+ box.addEventListener("keydown", onMessagesKeyDown, { passive: true });
10476
+ box.addEventListener("pointerdown", onMessagesPointerDown, { passive: true });
10448
10477
  box.addEventListener("load", onMessagesImageSettled, true);
10449
10478
  box.addEventListener("error", onMessagesImageSettled, true);
10450
10479
  if (document.fonts && document.fonts.addEventListener) {
package/dist/engine.cjs CHANGED
@@ -2582,6 +2582,7 @@ var ROW_KEY_ATTR = "data-row-key";
2582
2582
  var ROW_POS_ATTR = "data-row-pos";
2583
2583
  var MAX_ALTS = 2;
2584
2584
  var ALT_SCAN_LIMIT = 64;
2585
+ var MAX_RETURN_SETTLES = 3;
2585
2586
  var UNKNOWN_ROW_POS = "\0?";
2586
2587
  function createScrollAnchor(options) {
2587
2588
  var held = null;
@@ -2669,6 +2670,7 @@ function createScrollAnchor(options) {
2669
2670
  var parked = null;
2670
2671
  var parkedStuck = false;
2671
2672
  var returning = false;
2673
+ var returnBudget = 0;
2672
2674
  var wroteTop = -1;
2673
2675
  var restoreExact = true;
2674
2676
  var restorePinned = false;
@@ -2764,17 +2766,13 @@ function createScrollAnchor(options) {
2764
2766
  }
2765
2767
  function remember() {
2766
2768
  var b0 = options.getBox();
2767
- if (returning && b0 && b0.scrollTop !== wroteTop) {
2768
- parked = null;
2769
- parkedStuck = false;
2770
- returning = false;
2771
- }
2769
+ if (returning && b0 && b0.scrollTop !== wroteTop) release();
2772
2770
  if (frozen()) return;
2773
2771
  held = capture();
2774
2772
  }
2775
2773
  function hold() {
2776
2774
  if (frozen()) return;
2777
- if (sawFrozen || returning) {
2775
+ if (sawFrozen) {
2778
2776
  settleReturn();
2779
2777
  return;
2780
2778
  }
@@ -2817,6 +2815,13 @@ function createScrollAnchor(options) {
2817
2815
  parked = capture();
2818
2816
  parkedStuck = !!options.isStuck();
2819
2817
  returning = true;
2818
+ returnBudget = MAX_RETURN_SETTLES;
2819
+ }
2820
+ function release() {
2821
+ parked = null;
2822
+ parkedStuck = false;
2823
+ returning = false;
2824
+ returnBudget = 0;
2820
2825
  }
2821
2826
  function pinBottom() {
2822
2827
  var box = options.getBox();
@@ -2826,7 +2831,16 @@ function createScrollAnchor(options) {
2826
2831
  }
2827
2832
  function settleReturn() {
2828
2833
  if (frozen()) return false;
2834
+ var wasFrozen = sawFrozen;
2829
2835
  sawFrozen = false;
2836
+ if (!returning && !wasFrozen) return false;
2837
+ if (returning) {
2838
+ if (returnBudget <= 0) {
2839
+ release();
2840
+ return false;
2841
+ }
2842
+ returnBudget--;
2843
+ }
2830
2844
  if (parkedStuck) {
2831
2845
  pinBottom();
2832
2846
  return true;
@@ -2836,7 +2850,12 @@ function createScrollAnchor(options) {
2836
2850
  restorePinned = false;
2837
2851
  restore(target, true);
2838
2852
  parked = !restorePinned || !restoreExact ? target : null;
2839
- returning = !!parked;
2853
+ returning = !!parked && returnBudget > 0;
2854
+ if (!returning) {
2855
+ parked = null;
2856
+ parkedStuck = false;
2857
+ returnBudget = 0;
2858
+ }
2840
2859
  return false;
2841
2860
  }
2842
2861
  function isReturning() {
@@ -2862,9 +2881,7 @@ function createScrollAnchor(options) {
2862
2881
  }
2863
2882
  function forget() {
2864
2883
  held = null;
2865
- parked = null;
2866
- parkedStuck = false;
2867
- returning = false;
2884
+ release();
2868
2885
  }
2869
2886
  return {
2870
2887
  capture,
@@ -2875,6 +2892,7 @@ function createScrollAnchor(options) {
2875
2892
  park,
2876
2893
  settleReturn,
2877
2894
  isReturning,
2895
+ release,
2878
2896
  pinBottom,
2879
2897
  isFrozen: frozen,
2880
2898
  thaw,