]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/assets/iD/iD.js
Update to iD v2.18.3
[rails.git] / vendor / assets / iD / iD.js
index 9e36a035ea453d5d8f0b4517ad3b91c0eec433b0..6cc20080812c6fa2d2e2ee2ac2490ada2140c9ab 100644 (file)
 
                    var loc = extent.center();
                    context.map().centerEase(loc);
+                   // we could enter the mode multiple times, so reset follow for next time
+                   _follow = false;
                }
 
 
                _base = context.graph();
                _coalesceChanges = false;
 
-               loadActivePresets();
+               loadActivePresets(true);
 
                return entityEditor
                    .modified(false);
            };
 
 
-           function loadActivePresets() {
+           function loadActivePresets(isForNewSelection) {
 
                var graph = context.graph();
 
                    return _mainPresetIndex.item(pID);
                });
 
-               // A "weak" preset doesn't set any tags. (e.g. "Address")
-               var weakPreset = _activePresets.length === 1 &&
-                   Object.keys(_activePresets[0].addTags || {}).length === 0;
-               // Don't replace a weak preset with a fallback preset (e.g. "Point")
-               if (weakPreset && matches.length === 1 && matches[0].isFallback()) { return; }
+               if (!isForNewSelection) {
+                   // A "weak" preset doesn't set any tags. (e.g. "Address")
+                   var weakPreset = _activePresets.length === 1 &&
+                       !_activePresets[0].isFallback() &&
+                       Object.keys(_activePresets[0].addTags || {}).length === 0;
+                   // Don't replace a weak preset with a fallback preset (e.g. "Point")
+                   if (weakPreset && matches.length === 1 && matches[0].isFallback()) { return; }
+               }
 
                entityEditor.presets(matches);
            }
 
                        // some targets have default click events we don't want to override
                        var isOkayTarget = event.composedPath().some(function(node) {
-                           // clicking <label> affects its <input> by default
-                           return node.nodeName === 'LABEL' ||
+                           // we only care about element nodes
+                           return node.nodeType === 1 &&
+                               // clicking <input> focuses it and/or changes a value
+                               (node.nodeName === 'INPUT' ||
+                               // clicking <label> affects its <input> by default
+                               node.nodeName === 'LABEL' ||
                                // clicking <a> opens a hyperlink by default
-                               node.nodeName === 'A';
+                               node.nodeName === 'A');
                        });
                        if (isOkayTarget) { return; }
 
          var context = utilRebind({}, dispatch$1, 'on');
          var _deferred = new Set();
 
-         context.version = '2.18.2';
+         context.version = '2.18.3';
          context.privacyVersion = '20200407';
 
          // iD will alter the hash so cache the parameters intended to setup the session