yummy-guide-generic-administrate 0.3.1 → 0.3.2
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.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2e28359ae136f4efa7cb334c6cb9eb4f3001371d02b8104c68bf8924fa052692
|
|
4
|
+
data.tar.gz: 7f38757520d5d46d9a7fbd1f095e0659a31d65be38f9cc91baa08f4e7e7a4228
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3fcc34c49df48b58a1c81f1d14dc31ea0fc6df8b950a8390a86cace55d3adbbd1067f9326ffb12dd821524230e226d0c9db6771224c02230252adb4b29493977
|
|
7
|
+
data.tar.gz: 23dfaaf929e5bbd3afa4fa422ffe3a13bb3a45c5f5190a317884359ad56173b514a7052cd569d27e17cd28632bdd229819b343530159a4cf71ba615dc60f4e77
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var WRAPPER_SELECTOR = '[data-fixed-header-scroll], .scroll-table, .home-table__wrapper, .table-wrap, .af__table__content';
|
|
4
4
|
var resizeObservers = new WeakMap();
|
|
5
5
|
var observedScrolls = new WeakMap();
|
|
6
|
+
var observedFixedScrolls = new WeakMap();
|
|
6
7
|
var scrollSyncStates = new WeakMap();
|
|
7
8
|
|
|
8
9
|
function directCells(row) {
|
|
@@ -232,10 +233,61 @@
|
|
|
232
233
|
if (!scroll || !fixedScroll) return;
|
|
233
234
|
|
|
234
235
|
var left = typeof scrollLeft === 'number' ? scrollLeft : scroll.scrollLeft;
|
|
236
|
+
var state = ensureScrollSyncState(scroll);
|
|
237
|
+
var currentLeft = preciseNumber(fixedScroll.scrollLeft);
|
|
235
238
|
|
|
239
|
+
if (Math.abs(currentLeft - left) < 0.5) {
|
|
240
|
+
state.ignoredFixedScrollLeft = null;
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
state.ignoredFixedScrollLeft = preciseNumber(left);
|
|
236
245
|
fixedScroll.scrollLeft = left;
|
|
237
246
|
}
|
|
238
247
|
|
|
248
|
+
function syncSourceScroll(scroll, fixedScroll, scrollLeft) {
|
|
249
|
+
if (!scroll || !fixedScroll) return;
|
|
250
|
+
|
|
251
|
+
var left = typeof scrollLeft === 'number' ? scrollLeft : fixedScroll.scrollLeft;
|
|
252
|
+
var state = ensureScrollSyncState(scroll);
|
|
253
|
+
var currentLeft = preciseNumber(scroll.scrollLeft);
|
|
254
|
+
|
|
255
|
+
if (Math.abs(currentLeft - left) < 0.5) {
|
|
256
|
+
state.ignoredSourceScrollLeft = null;
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
state.ignoredSourceScrollLeft = preciseNumber(left);
|
|
261
|
+
scroll.scrollLeft = left;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
function ensureScrollSyncState(scroll) {
|
|
265
|
+
var state = scrollSyncStates.get(scroll);
|
|
266
|
+
|
|
267
|
+
if (state) return state;
|
|
268
|
+
|
|
269
|
+
state = {
|
|
270
|
+
sourceFrame: null,
|
|
271
|
+
fixedFrame: null,
|
|
272
|
+
sourceScrollLeft: 0,
|
|
273
|
+
fixedScrollLeft: 0,
|
|
274
|
+
ignoredSourceScrollLeft: null,
|
|
275
|
+
ignoredFixedScrollLeft: null
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
scrollSyncStates.set(scroll, state);
|
|
279
|
+
return state;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
function consumeIgnoredScrollLeft(state, key, scrollLeft) {
|
|
283
|
+
if (!state || state[key] === null || typeof state[key] === 'undefined') return false;
|
|
284
|
+
|
|
285
|
+
var ignoredLeft = state[key];
|
|
286
|
+
state[key] = null;
|
|
287
|
+
|
|
288
|
+
return Math.abs(ignoredLeft - preciseNumber(scrollLeft)) < 0.5;
|
|
289
|
+
}
|
|
290
|
+
|
|
239
291
|
function fixedHeaderTableClassName(sourceTable) {
|
|
240
292
|
var excludedClasses = {
|
|
241
293
|
'table-with-fixed-header': true,
|
|
@@ -508,35 +560,57 @@
|
|
|
508
560
|
});
|
|
509
561
|
}
|
|
510
562
|
|
|
511
|
-
function
|
|
563
|
+
function observeSourceScroll(scroll) {
|
|
512
564
|
if (observedScrolls.has(scroll)) return;
|
|
513
565
|
|
|
514
566
|
scroll.addEventListener('scroll', function() {
|
|
515
|
-
var state =
|
|
567
|
+
var state = ensureScrollSyncState(scroll);
|
|
568
|
+
if (consumeIgnoredScrollLeft(state, 'ignoredSourceScrollLeft', scroll.scrollLeft)) return;
|
|
569
|
+
|
|
516
570
|
state.scrollLeft = scroll.scrollLeft;
|
|
571
|
+
state.sourceScrollLeft = scroll.scrollLeft;
|
|
517
572
|
|
|
518
|
-
if (state.
|
|
573
|
+
if (state.sourceFrame) return;
|
|
519
574
|
|
|
520
|
-
state.
|
|
575
|
+
state.sourceFrame = window.requestAnimationFrame(function() {
|
|
521
576
|
var slot = ensureFixedHeaderSlot(scroll);
|
|
522
|
-
state.
|
|
523
|
-
syncFixedHeaderScroll(scroll, slot
|
|
577
|
+
state.sourceFrame = null;
|
|
578
|
+
syncFixedHeaderScroll(scroll, ensureFixedHeaderScrollViewport(slot), state.sourceScrollLeft);
|
|
524
579
|
});
|
|
525
|
-
|
|
526
|
-
scrollSyncStates.set(scroll, state);
|
|
527
580
|
}, { passive: true });
|
|
528
581
|
|
|
529
582
|
observedScrolls.set(scroll, true);
|
|
530
583
|
}
|
|
531
584
|
|
|
585
|
+
function observeFixedHeaderViewport(scroll, fixedScroll) {
|
|
586
|
+
if (!fixedScroll || observedFixedScrolls.get(fixedScroll) === scroll) return;
|
|
587
|
+
|
|
588
|
+
fixedScroll.addEventListener('scroll', function() {
|
|
589
|
+
var state = ensureScrollSyncState(scroll);
|
|
590
|
+
if (consumeIgnoredScrollLeft(state, 'ignoredFixedScrollLeft', fixedScroll.scrollLeft)) return;
|
|
591
|
+
|
|
592
|
+
state.fixedScrollLeft = fixedScroll.scrollLeft;
|
|
593
|
+
|
|
594
|
+
if (state.fixedFrame) return;
|
|
595
|
+
|
|
596
|
+
state.fixedFrame = window.requestAnimationFrame(function() {
|
|
597
|
+
state.fixedFrame = null;
|
|
598
|
+
syncSourceScroll(scroll, fixedScroll, state.fixedScrollLeft);
|
|
599
|
+
});
|
|
600
|
+
}, { passive: true });
|
|
601
|
+
|
|
602
|
+
observedFixedScrolls.set(fixedScroll, scroll);
|
|
603
|
+
}
|
|
604
|
+
|
|
532
605
|
function initializeFixedHeaderForScroll(scroll) {
|
|
533
606
|
var sourceTable = activeSourceTable(scroll);
|
|
534
607
|
if (!sourceTable) return;
|
|
535
608
|
|
|
536
609
|
var slot = ensureFixedHeaderSlot(scroll);
|
|
537
610
|
buildFixedTableHeader(slot, scroll, sourceTable);
|
|
611
|
+
observeFixedHeaderViewport(scroll, slot.querySelector('.table-fixed-header__scroll'));
|
|
538
612
|
observeFixedHeader(scroll);
|
|
539
|
-
|
|
613
|
+
observeSourceScroll(scroll);
|
|
540
614
|
}
|
|
541
615
|
|
|
542
616
|
function initializeFixedHeaders(root) {
|