@@ -524,14 +524,13 @@ export var MapMLLayer = L.Layer.extend({
524
524
opacity . value = this . _container . style . opacity || '1.0' ;
525
525
526
526
fieldset . setAttribute ( "aria-grabbed" , "false" ) ;
527
- //fieldset.draggable = true;
528
527
529
- fieldset . onmousedown = ( e ) => {
530
- e . preventDefault ( ) ;
531
- if ( e . target . tagName . toLowerCase ( ) === "input" ) return ;
528
+ fieldset . onmousedown = ( downEvent ) => {
529
+ if ( downEvent . target . tagName . toLowerCase ( ) === "input" ) return ;
530
+ downEvent . preventDefault ( ) ;
532
531
let control = fieldset ,
533
532
controls = fieldset . parentNode ,
534
- moving = false , yPos = e . clientY ;
533
+ moving = false , yPos = downEvent . clientY ;
535
534
536
535
document . body . onmousemove = ( moveEvent ) => {
537
536
moveEvent . preventDefault ( ) ;
@@ -543,14 +542,17 @@ export var MapMLLayer = L.Layer.extend({
543
542
if ( controls && ! moving ||
544
543
controls . getBoundingClientRect ( ) . top > control . getBoundingClientRect ( ) . top ||
545
544
controls . getBoundingClientRect ( ) . bottom < control . getBoundingClientRect ( ) . bottom ) return ;
546
-
545
+
546
+ for ( let c of controls . children ) {
547
+ c . querySelector ( "summary" ) . classList . add ( "mapml-draggable" ) ;
548
+ }
549
+
547
550
let x = moveEvent . clientX , y = moveEvent . clientY ,
548
551
elementAt = root . elementFromPoint ( x , y ) ,
549
552
swapControl = ! elementAt || ! elementAt . closest ( "fieldset" ) ? control : elementAt . closest ( "fieldset" ) ;
550
553
551
554
swapControl = offset <= swapControl . offsetHeight ? control : swapControl ;
552
-
553
- control . querySelector ( "summary" ) . classList . add ( "mapml-drag-active" ) ;
555
+
554
556
control . setAttribute ( "aria-grabbed" , 'true' ) ;
555
557
control . setAttribute ( "aria-dropeffect" , "move" ) ;
556
558
if ( swapControl && controls === swapControl . parentNode ) {
@@ -561,79 +563,25 @@ export var MapMLLayer = L.Layer.extend({
561
563
} ;
562
564
563
565
document . body . onmouseup = ( ) => {
564
- control . querySelector ( "summary" ) . classList . remove ( "mapml-drag-active" ) ;
565
566
control . setAttribute ( "aria-grabbed" , "false" ) ;
566
567
control . removeAttribute ( "aria-dropeffect" ) ;
567
568
let controlsElems = controls . children ,
568
- layers = map . getPane ( "overlayPane" ) . children ,
569
569
zIndex = 1 ;
570
570
for ( let c of controlsElems ) {
571
571
let layerEl = c . querySelector ( "span" ) . layer . _layerEl ;
572
+
572
573
layerEl . setAttribute ( "data-moving" , "" ) ;
573
574
viewer . insertAdjacentElement ( "beforeend" , layerEl ) ;
574
575
layerEl . removeAttribute ( "data-moving" ) ;
575
-
576
- for ( let layer of layers ) {
577
- if ( c . querySelector ( "span" ) . layer . _container == layer ) {
578
- layer . style [ "z-index" ] = zIndex ;
579
- zIndex ++ ;
580
- }
581
- }
576
+
577
+ c . querySelector ( "summary" ) . classList . remove ( "mapml-draggable" ) ;
578
+ layerEl . _layer . setZIndex ( zIndex ) ;
579
+ zIndex ++ ;
582
580
}
583
581
document . body . onmousemove = document . body . onmouseup = null ;
584
582
} ;
585
583
} ;
586
584
587
- //old version of dragging
588
- /* fieldset.onmouseup = (e) => {
589
- //e.target.closest("fieldset").draggable = true;
590
- };
591
-
592
- fieldset.ondrag = (e) => {
593
- e.preventDefault();
594
- let control = e.target,
595
- controls = e.target.parentNode,
596
- x = e.clientX, y = e.clientY,
597
- elementAt = root.elementFromPoint(x, y),
598
- swapControl = !elementAt || !elementAt.closest("fieldset") || elementAt.closest("fieldset").draggable === false ? control : elementAt.closest("fieldset");
599
-
600
- // Fixes flickering by only moving element when there is enough space
601
- let offset = e.offsetY < 0 ? Math.abs(e.offsetY*2) : Math.abs(e.offsetY);
602
- swapControl = offset <= swapControl.offsetHeight ? control : swapControl;
603
-
604
- control.style.opacity = "0";
605
- control.classList.add("leaflet-dragging");
606
- control.setAttribute("aria-grabbed", 'true');
607
- control.setAttribute("aria-dropeffect", "move");
608
- if(swapControl && controls === swapControl.parentNode){
609
- swapControl = swapControl !== control.nextSibling? swapControl : swapControl.nextSibling;
610
- controls.insertBefore(control, swapControl);
611
- }
612
- };
613
- fieldset.ondragend = (e) => {
614
- e.preventDefault();
615
- e.target.style.opacity = null;
616
- e.target.classList.remove("leaflet-dragging");
617
- e.target.setAttribute("aria-grabbed", "false");
618
- e.target.removeAttribute("aria-dropeffect");
619
- let controls = e.target.parentNode.children,
620
- layers = map.getPane("overlayPane").children,
621
- zIndex = 1;
622
- for(let control of controls){
623
- let layerEl = control.querySelector("span").layer._layerEl;
624
- layerEl.setAttribute("data-moving","");
625
- viewer.insertAdjacentElement("beforeend", layerEl);
626
- layerEl.removeAttribute("data-moving");
627
-
628
- for (let layer of layers){
629
- if(control.querySelector("span").layer._container == layer){
630
- layer.style["z-index"] = zIndex;
631
- zIndex++;
632
- }
633
- }
634
- }
635
- }; */
636
-
637
585
L . DomEvent . on ( opacity , 'change' , this . _changeOpacity , this ) ;
638
586
639
587
fieldset . appendChild ( details ) ;
0 commit comments