X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/7e5cbe87ed37f9cba8224fa4049047d7f981f66a..e2f071869f1986a6e4006f4ead04fbcfe3ca17c7:/vendor/assets/iD/iD.js
diff --git a/vendor/assets/iD/iD.js b/vendor/assets/iD/iD.js
index 511fdbe1b..e391c7aa2 100644
--- a/vendor/assets/iD/iD.js
+++ b/vendor/assets/iD/iD.js
@@ -9,8 +9,8 @@
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all) => {
- for (var name2 in all)
- __defProp(target, name2, { get: all[name2], enumerable: true });
+ for (var name in all)
+ __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
@@ -20,7 +20,10 @@
}
return to;
};
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
+ mod
+ ));
// node_modules/diacritics/index.js
var require_diacritics = __commonJS({
@@ -3111,19 +3114,19 @@
all: function() {
return this._all(this.data, []);
},
- search: function(bbox) {
+ search: function(bbox2) {
var node = this.data, result = [], toBBox = this.toBBox;
- if (!intersects(bbox, node))
+ if (!intersects(bbox2, node))
return result;
var nodesToSearch = [], i2, len, child, childBBox;
while (node) {
for (i2 = 0, len = node.children.length; i2 < len; i2++) {
child = node.children[i2];
childBBox = node.leaf ? toBBox(child) : child;
- if (intersects(bbox, childBBox)) {
+ if (intersects(bbox2, childBBox)) {
if (node.leaf)
result.push(child);
- else if (contains(bbox, childBBox))
+ else if (contains(bbox2, childBBox))
this._all(child, result);
else
nodesToSearch.push(child);
@@ -3133,17 +3136,17 @@
}
return result;
},
- collides: function(bbox) {
+ collides: function(bbox2) {
var node = this.data, toBBox = this.toBBox;
- if (!intersects(bbox, node))
+ if (!intersects(bbox2, node))
return false;
var nodesToSearch = [], i2, len, child, childBBox;
while (node) {
for (i2 = 0, len = node.children.length; i2 < len; i2++) {
child = node.children[i2];
childBBox = node.leaf ? toBBox(child) : child;
- if (intersects(bbox, childBBox)) {
- if (node.leaf || contains(bbox, childBBox))
+ if (intersects(bbox2, childBBox)) {
+ if (node.leaf || contains(bbox2, childBBox))
return true;
nodesToSearch.push(child);
}
@@ -3188,7 +3191,7 @@
remove: function(item, equalsFn) {
if (!item)
return this;
- var node = this.data, bbox = this.toBBox(item), path = [], indexes = [], i2, parent, index, goingUp;
+ var node = this.data, bbox2 = this.toBBox(item), path = [], indexes = [], i2, parent, index, goingUp;
while (node || path.length) {
if (!node) {
node = path.pop();
@@ -3205,7 +3208,7 @@
return this;
}
}
- if (!goingUp && !node.leaf && contains(node, bbox)) {
+ if (!goingUp && !node.leaf && contains(node, bbox2)) {
path.push(node);
indexes.push(i2);
i2 = 0;
@@ -3270,7 +3273,7 @@
calcBBox(node, this.toBBox);
return node;
},
- _chooseSubtree: function(bbox, node, level, path) {
+ _chooseSubtree: function(bbox2, node, level, path) {
var i2, len, child, targetNode, area, enlargement, minArea, minEnlargement;
while (true) {
path.push(node);
@@ -3280,7 +3283,7 @@
for (i2 = 0, len = node.children.length; i2 < len; i2++) {
child = node.children[i2];
area = bboxArea(child);
- enlargement = enlargedArea(bbox, child) - area;
+ enlargement = enlargedArea(bbox2, child) - area;
if (enlargement < minEnlargement) {
minEnlargement = enlargement;
minArea = area < minArea ? area : minArea;
@@ -3297,10 +3300,10 @@
return node;
},
_insert: function(item, level, isNode) {
- var toBBox = this.toBBox, bbox = isNode ? item : toBBox(item), insertPath = [];
- var node = this._chooseSubtree(bbox, this.data, level, insertPath);
+ var toBBox = this.toBBox, bbox2 = isNode ? item : toBBox(item), insertPath = [];
+ var node = this._chooseSubtree(bbox2, this.data, level, insertPath);
node.children.push(item);
- extend2(node, bbox);
+ extend2(node, bbox2);
while (level >= 0) {
if (insertPath[level].children.length > this._maxEntries) {
this._split(insertPath, level);
@@ -3308,7 +3311,7 @@
} else
break;
}
- this._adjustParentBBoxes(bbox, insertPath, level);
+ this._adjustParentBBoxes(bbox2, insertPath, level);
},
_split: function(insertPath, level) {
var node = insertPath[level], M = node.children.length, m = this._minEntries;
@@ -3371,9 +3374,9 @@
}
return margin;
},
- _adjustParentBBoxes: function(bbox, path, level) {
+ _adjustParentBBoxes: function(bbox2, path, level) {
for (var i2 = level; i2 >= 0; i2--) {
- extend2(path[i2], bbox);
+ extend2(path[i2], bbox2);
}
},
_condense: function(path) {
@@ -3392,7 +3395,10 @@
var compareArr = ["return a", " - b", ";"];
this.compareMinX = new Function("a", "b", compareArr.join(format2[0]));
this.compareMinY = new Function("a", "b", compareArr.join(format2[1]));
- this.toBBox = new Function("a", "return {minX: a" + format2[0] + ", minY: a" + format2[1] + ", maxX: a" + format2[2] + ", maxY: a" + format2[3] + "};");
+ this.toBBox = new Function(
+ "a",
+ "return {minX: a" + format2[0] + ", minY: a" + format2[1] + ", maxX: a" + format2[2] + ", maxY: a" + format2[3] + "};"
+ );
}
};
function findItem(item, items, equalsFn) {
@@ -3485,14 +3491,14 @@
module2.exports = lineclip2;
lineclip2.polyline = lineclip2;
lineclip2.polygon = polygonclip2;
- function lineclip2(points, bbox, result) {
- var len = points.length, codeA = bitCode2(points[0], bbox), part = [], i2, a, b, codeB, lastCode;
+ function lineclip2(points, bbox2, result) {
+ var len = points.length, codeA = bitCode2(points[0], bbox2), part = [], i2, a, b, codeB, lastCode;
if (!result)
result = [];
for (i2 = 1; i2 < len; i2++) {
a = points[i2 - 1];
b = points[i2];
- codeB = lastCode = bitCode2(b, bbox);
+ codeB = lastCode = bitCode2(b, bbox2);
while (true) {
if (!(codeA | codeB)) {
part.push(a);
@@ -3509,11 +3515,11 @@
} else if (codeA & codeB) {
break;
} else if (codeA) {
- a = intersect2(a, b, codeA, bbox);
- codeA = bitCode2(a, bbox);
+ a = intersect2(a, b, codeA, bbox2);
+ codeA = bitCode2(a, bbox2);
} else {
- b = intersect2(a, b, codeB, bbox);
- codeB = bitCode2(b, bbox);
+ b = intersect2(a, b, codeB, bbox2);
+ codeB = bitCode2(b, bbox2);
}
}
codeA = lastCode;
@@ -3522,17 +3528,17 @@
result.push(part);
return result;
}
- function polygonclip2(points, bbox) {
+ function polygonclip2(points, bbox2) {
var result, edge, prev, prevInside, i2, p, inside;
for (edge = 1; edge <= 8; edge *= 2) {
result = [];
prev = points[points.length - 1];
- prevInside = !(bitCode2(prev, bbox) & edge);
+ prevInside = !(bitCode2(prev, bbox2) & edge);
for (i2 = 0; i2 < points.length; i2++) {
p = points[i2];
- inside = !(bitCode2(p, bbox) & edge);
+ inside = !(bitCode2(p, bbox2) & edge);
if (inside !== prevInside)
- result.push(intersect2(prev, p, edge, bbox));
+ result.push(intersect2(prev, p, edge, bbox2));
if (inside)
result.push(p);
prev = p;
@@ -3544,18 +3550,18 @@
}
return result;
}
- function intersect2(a, b, edge, bbox) {
- return edge & 8 ? [a[0] + (b[0] - a[0]) * (bbox[3] - a[1]) / (b[1] - a[1]), bbox[3]] : edge & 4 ? [a[0] + (b[0] - a[0]) * (bbox[1] - a[1]) / (b[1] - a[1]), bbox[1]] : edge & 2 ? [bbox[2], a[1] + (b[1] - a[1]) * (bbox[2] - a[0]) / (b[0] - a[0])] : edge & 1 ? [bbox[0], a[1] + (b[1] - a[1]) * (bbox[0] - a[0]) / (b[0] - a[0])] : null;
+ function intersect2(a, b, edge, bbox2) {
+ return edge & 8 ? [a[0] + (b[0] - a[0]) * (bbox2[3] - a[1]) / (b[1] - a[1]), bbox2[3]] : edge & 4 ? [a[0] + (b[0] - a[0]) * (bbox2[1] - a[1]) / (b[1] - a[1]), bbox2[1]] : edge & 2 ? [bbox2[2], a[1] + (b[1] - a[1]) * (bbox2[2] - a[0]) / (b[0] - a[0])] : edge & 1 ? [bbox2[0], a[1] + (b[1] - a[1]) * (bbox2[0] - a[0]) / (b[0] - a[0])] : null;
}
- function bitCode2(p, bbox) {
+ function bitCode2(p, bbox2) {
var code = 0;
- if (p[0] < bbox[0])
+ if (p[0] < bbox2[0])
code |= 1;
- else if (p[0] > bbox[2])
+ else if (p[0] > bbox2[2])
code |= 2;
- if (p[1] < bbox[1])
+ if (p[1] < bbox2[1])
code |= 4;
- else if (p[1] > bbox[3])
+ else if (p[1] > bbox2[3])
code |= 8;
return code;
}
@@ -3601,16 +3607,16 @@
return multi && output.length ? output : null;
}
query.tree = tree;
- query.bbox = function queryBBox(bbox) {
+ query.bbox = function queryBBox(bbox2) {
var output = [];
var result = tree.search({
- minX: bbox[0],
- minY: bbox[1],
- maxX: bbox[2],
- maxY: bbox[3]
+ minX: bbox2[0],
+ minY: bbox2[1],
+ maxX: bbox2[2],
+ maxY: bbox2[3]
});
for (var i3 = 0; i3 < result.length; i3++) {
- if (polygonIntersectsBBox(result[i3].coords, bbox)) {
+ if (polygonIntersectsBBox(result[i3].coords, bbox2)) {
output.push(result[i3].props);
}
}
@@ -3618,15 +3624,15 @@
};
return query;
}
- function polygonIntersectsBBox(polygon2, bbox) {
+ function polygonIntersectsBBox(polygon2, bbox2) {
var bboxCenter = [
- (bbox[0] + bbox[2]) / 2,
- (bbox[1] + bbox[3]) / 2
+ (bbox2[0] + bbox2[2]) / 2,
+ (bbox2[1] + bbox2[3]) / 2
];
if (insidePolygon(polygon2, bboxCenter))
return true;
for (var i2 = 0; i2 < polygon2.length; i2++) {
- if (lineclip2(polygon2[i2], bbox).length > 0)
+ if (lineclip2(polygon2[i2], bbox2).length > 0)
return true;
}
return false;
@@ -3755,7 +3761,9 @@
}
var [lng, lat] = center;
if (typeof lng !== "number" || typeof lat !== "number") {
- throw new Error(`ERROR! Longitude and Latitude has to be numbers but where ${typeof lng} and ${typeof lat}`);
+ throw new Error(
+ `ERROR! Longitude and Latitude has to be numbers but where ${typeof lng} and ${typeof lat}`
+ );
}
if (lng > 180 || lng < -180) {
throw new Error(`ERROR! Longitude has to be between -180 and 180 but was ${lng}`);
@@ -3863,8 +3871,13 @@
var lat1 = toRadians(c1[1]);
var lon1 = toRadians(c1[0]);
var dByR = distance / earthRadius2;
- var lat = Math.asin(Math.sin(lat1) * Math.cos(dByR) + Math.cos(lat1) * Math.sin(dByR) * Math.cos(bearing));
- var lon = lon1 + Math.atan2(Math.sin(bearing) * Math.sin(dByR) * Math.cos(lat1), Math.cos(dByR) - Math.sin(lat1) * Math.sin(lat));
+ var lat = Math.asin(
+ Math.sin(lat1) * Math.cos(dByR) + Math.cos(lat1) * Math.sin(dByR) * Math.cos(bearing)
+ );
+ var lon = lon1 + Math.atan2(
+ Math.sin(bearing) * Math.sin(dByR) * Math.cos(lat1),
+ Math.cos(dByR) - Math.sin(lat1) * Math.sin(lat)
+ );
return [toDegrees(lon), toDegrees(lat)];
}
module2.exports = function circleToPolygon2(center, radius, options2) {
@@ -3876,7 +3889,14 @@
var start2 = toRadians(bearing);
var coordinates = [];
for (var i2 = 0; i2 < n2; ++i2) {
- coordinates.push(offset(center, radius, earthRadius2, start2 + direction * 2 * Math.PI * -i2 / n2));
+ coordinates.push(
+ offset(
+ center,
+ radius,
+ earthRadius2,
+ start2 + direction * 2 * Math.PI * -i2 / n2
+ )
+ );
}
coordinates.push(coordinates[0]);
return {
@@ -4377,14 +4397,14 @@
return this._root === null;
};
Object.defineProperty(Tree2.prototype, "size", {
- get: function get3() {
+ get: function get4() {
return this._size;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Tree2.prototype, "root", {
- get: function get3() {
+ get: function get4() {
return this._root;
},
enumerable: true,
@@ -4520,8 +4540,8 @@
sort(keys, values, left, j2, compare);
sort(keys, values, j2 + 1, right, compare);
}
- var isInBbox = function isInBbox2(bbox, point) {
- return bbox.ll.x <= point.x && point.x <= bbox.ur.x && bbox.ll.y <= point.y && point.y <= bbox.ur.y;
+ var isInBbox = function isInBbox2(bbox2, point2) {
+ return bbox2.ll.x <= point2.x && point2.x <= bbox2.ur.x && bbox2.ll.y <= point2.y && point2.y <= bbox2.ur.y;
};
var getBboxOverlap = function getBboxOverlap2(b1, b2) {
if (b2.ur.x < b1.ll.x || b1.ur.x < b2.ll.x || b2.ur.y < b1.ll.y || b1.ur.y < b2.ll.y)
@@ -4718,13 +4738,13 @@
return 0;
}
}]);
- function SweepEvent2(point, isLeft) {
+ function SweepEvent2(point2, isLeft) {
_classCallCheck(this, SweepEvent2);
- if (point.events === void 0)
- point.events = [this];
+ if (point2.events === void 0)
+ point2.events = [this];
else
- point.events.push(this);
- this.point = point;
+ point2.events.push(this);
+ this.point = point2;
this.isLeft = isLeft;
}
_createClass(SweepEvent2, [{
@@ -4924,7 +4944,7 @@
}
}, {
key: "bbox",
- value: function bbox() {
+ value: function bbox2() {
var y12 = this.leftSE.point.y;
var y2 = this.rightSE.point.y;
return {
@@ -4953,26 +4973,26 @@
}
}, {
key: "comparePoint",
- value: function comparePoint(point) {
- if (this.isAnEndpoint(point))
+ value: function comparePoint(point2) {
+ if (this.isAnEndpoint(point2))
return 0;
var lPt = this.leftSE.point;
var rPt = this.rightSE.point;
var v = this.vector();
if (lPt.x === rPt.x) {
- if (point.x === lPt.x)
+ if (point2.x === lPt.x)
return 0;
- return point.x < lPt.x ? 1 : -1;
+ return point2.x < lPt.x ? 1 : -1;
}
- var yDist = (point.y - lPt.y) / v.y;
+ var yDist = (point2.y - lPt.y) / v.y;
var xFromYDist = lPt.x + yDist * v.x;
- if (point.x === xFromYDist)
+ if (point2.x === xFromYDist)
return 0;
- var xDist = (point.x - lPt.x) / v.x;
+ var xDist = (point2.x - lPt.x) / v.x;
var yFromXDist = lPt.y + xDist * v.y;
- if (point.y === yFromXDist)
+ if (point2.y === yFromXDist)
return 0;
- return point.y < yFromXDist ? -1 : 1;
+ return point2.y < yFromXDist ? -1 : 1;
}
}, {
key: "getIntersection",
@@ -5026,11 +5046,11 @@
}
}, {
key: "split",
- value: function split2(point) {
+ value: function split2(point2) {
var newEvents = [];
- var alreadyLinked = point.events !== void 0;
- var newLeftSE = new SweepEvent(point, true);
- var newRightSE = new SweepEvent(point, false);
+ var alreadyLinked = point2.events !== void 0;
+ var newLeftSE = new SweepEvent(point2, true);
+ var newRightSE = new SweepEvent(point2, false);
var oldRightSE = this.rightSE;
this.replaceRightSE(newRightSE);
newEvents.push(newRightSE);
@@ -5276,19 +5296,19 @@
if (typeof geomRing[i2][0] !== "number" || typeof geomRing[i2][1] !== "number") {
throw new Error("Input geometry is not a valid Polygon or MultiPolygon");
}
- var point = rounder.round(geomRing[i2][0], geomRing[i2][1]);
- if (point.x === prevPoint.x && point.y === prevPoint.y)
+ var point2 = rounder.round(geomRing[i2][0], geomRing[i2][1]);
+ if (point2.x === prevPoint.x && point2.y === prevPoint.y)
continue;
- this.segments.push(Segment.fromRing(prevPoint, point, this));
- if (point.x < this.bbox.ll.x)
- this.bbox.ll.x = point.x;
- if (point.y < this.bbox.ll.y)
- this.bbox.ll.y = point.y;
- if (point.x > this.bbox.ur.x)
- this.bbox.ur.x = point.x;
- if (point.y > this.bbox.ur.y)
- this.bbox.ur.y = point.y;
- prevPoint = point;
+ this.segments.push(Segment.fromRing(prevPoint, point2, this));
+ if (point2.x < this.bbox.ll.x)
+ this.bbox.ll.x = point2.x;
+ if (point2.y < this.bbox.ll.y)
+ this.bbox.ll.y = point2.y;
+ if (point2.x > this.bbox.ur.x)
+ this.bbox.ur.x = point2.x;
+ if (point2.y > this.bbox.ur.y)
+ this.bbox.ur.y = point2.y;
+ prevPoint = point2;
}
if (firstPoint.x !== prevPoint.x || firstPoint.y !== prevPoint.y) {
this.segments.push(Segment.fromRing(prevPoint, firstPoint, this));
@@ -5868,7 +5888,7 @@
"node_modules/geojson-precision/index.js"(exports2, module2) {
(function() {
function parse(t, coordinatePrecision, extrasPrecision) {
- function point(p) {
+ function point2(p) {
return p.map(function(e, index) {
if (index < 2) {
return 1 * e.toFixed(coordinatePrecision);
@@ -5878,7 +5898,7 @@
});
}
function multi(l) {
- return l.map(point);
+ return l.map(point2);
}
function poly(p) {
return p.map(multi);
@@ -5892,7 +5912,7 @@
}
switch (obj.type) {
case "Point":
- obj.coordinates = point(obj.coordinates);
+ obj.coordinates = point2(obj.coordinates);
return obj;
case "LineString":
case "MultiPoint":
@@ -5954,13 +5974,13 @@
// node_modules/@aitodotai/json-stringify-pretty-compact/index.js
var require_json_stringify_pretty_compact = __commonJS({
"node_modules/@aitodotai/json-stringify-pretty-compact/index.js"(exports2, module2) {
- function isObject2(obj) {
+ function isObject3(obj) {
return typeof obj === "object" && obj !== null;
}
function forEach(obj, cb) {
if (Array.isArray(obj)) {
obj.forEach(cb);
- } else if (isObject2(obj)) {
+ } else if (isObject3(obj)) {
Object.keys(obj).forEach(function(key) {
var val = obj[key];
cb(val, key);
@@ -5969,9 +5989,9 @@
}
function getTreeDepth(obj) {
var depth = 0;
- if (Array.isArray(obj) || isObject2(obj)) {
+ if (Array.isArray(obj) || isObject3(obj)) {
forEach(obj, function(val) {
- if (Array.isArray(val) || isObject2(val)) {
+ if (Array.isArray(val) || isObject3(val)) {
var tmpDepth = getTreeDepth(val);
if (tmpDepth > depth) {
depth = tmpDepth;
@@ -5984,12 +6004,12 @@
}
function stringify3(obj, options2) {
options2 = options2 || {};
- var indent2 = JSON.stringify([1], null, get3(options2, "indent", 2)).slice(2, -3);
- var addMargin = get3(options2, "margins", false);
- var addArrayMargin = get3(options2, "arrayMargins", false);
- var addObjectMargin = get3(options2, "objectMargins", false);
- var maxLength = indent2 === "" ? Infinity : get3(options2, "maxLength", 80);
- var maxNesting = get3(options2, "maxNesting", Infinity);
+ var indent2 = JSON.stringify([1], null, get4(options2, "indent", 2)).slice(2, -3);
+ var addMargin = get4(options2, "margins", false);
+ var addArrayMargin = get4(options2, "arrayMargins", false);
+ var addObjectMargin = get4(options2, "objectMargins", false);
+ var maxLength = indent2 === "" ? Infinity : get4(options2, "maxLength", 80);
+ var maxNesting = get4(options2, "maxNesting", Infinity);
return function _stringify(obj2, currentIndent, reserved) {
if (obj2 && typeof obj2.toJSON === "function") {
obj2 = obj2.toJSON();
@@ -6010,7 +6030,7 @@
return prettified;
}
}
- if (isObject2(obj2)) {
+ if (isObject3(obj2)) {
var nextIndent = currentIndent + indent2;
var items = [];
var delimiters;
@@ -6019,13 +6039,19 @@
};
if (Array.isArray(obj2)) {
for (var index = 0; index < obj2.length; index++) {
- items.push(_stringify(obj2[index], nextIndent, comma(obj2, index)) || "null");
+ items.push(
+ _stringify(obj2[index], nextIndent, comma(obj2, index)) || "null"
+ );
}
delimiters = "[]";
} else {
Object.keys(obj2).forEach(function(key, index2, array2) {
var keyPart = JSON.stringify(key) + ": ";
- var value = _stringify(obj2[key], nextIndent, keyPart.length + comma(array2, index2));
+ var value = _stringify(
+ obj2[key],
+ nextIndent,
+ keyPart.length + comma(array2, index2)
+ );
if (value !== void 0) {
items.push(keyPart + value);
}
@@ -6066,8 +6092,8 @@
return string2 ? match : tokens[match];
});
}
- function get3(options2, name2, defaultValue) {
- return name2 in options2 ? options2[name2] : defaultValue;
+ function get4(options2, name, defaultValue) {
+ return name in options2 ? options2[name] : defaultValue;
}
module2.exports = stringify3;
}
@@ -6205,7 +6231,9 @@
function convertToInt32(bytes) {
var result = [];
for (var i2 = 0; i2 < bytes.length; i2 += 4) {
- result.push(bytes[i2] << 24 | bytes[i2 + 1] << 16 | bytes[i2 + 2] << 8 | bytes[i2 + 3]);
+ result.push(
+ bytes[i2] << 24 | bytes[i2 + 1] << 16 | bytes[i2 + 2] << 8 | bytes[i2 + 3]
+ );
}
return result;
}
@@ -7375,7 +7403,9 @@
var nativeObjectToString3 = objectProto3.toString;
var objectCtorString = funcToString.call(Object2);
var oldDash = root3._;
- var reIsNative = RegExp2("^" + funcToString.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
+ var reIsNative = RegExp2(
+ "^" + funcToString.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
+ );
var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol3 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto3.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol3 ? Symbol3.isConcatSpreadable : undefined2, symIterator = Symbol3 ? Symbol3.iterator : undefined2, symToStringTag3 = Symbol3 ? Symbol3.toStringTag : undefined2;
var defineProperty = function() {
try {
@@ -7407,7 +7437,7 @@
function object() {
}
return function(proto) {
- if (!isObject2(proto)) {
+ if (!isObject3(proto)) {
return {};
}
if (objectCreate) {
@@ -7746,7 +7776,7 @@
function baseAt(object, paths) {
var index = -1, length = paths.length, result2 = Array2(length), skip = object == null;
while (++index < length) {
- result2[index] = skip ? undefined2 : get3(object, paths[index]);
+ result2[index] = skip ? undefined2 : get4(object, paths[index]);
}
return result2;
}
@@ -7769,7 +7799,7 @@
if (result2 !== undefined2) {
return result2;
}
- if (!isObject2(value)) {
+ if (!isObject3(value)) {
return value;
}
var isArr = isArray2(value);
@@ -8116,7 +8146,7 @@
return true;
}
function baseIsNative(value) {
- if (!isObject2(value) || isMasked(value)) {
+ if (!isObject3(value) || isMasked(value)) {
return false;
}
var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
@@ -8156,7 +8186,7 @@
return result2;
}
function baseKeysIn(object) {
- if (!isObject2(object)) {
+ if (!isObject3(object)) {
return nativeKeysIn(object);
}
var isProto = isPrototype(object), result2 = [];
@@ -8191,7 +8221,7 @@
return matchesStrictComparable(toKey(path), srcValue);
}
return function(object) {
- var objValue = get3(object, path);
+ var objValue = get4(object, path);
return objValue === undefined2 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
};
}
@@ -8201,7 +8231,7 @@
}
baseFor(source, function(srcValue, key) {
stack || (stack = new Stack());
- if (isObject2(srcValue)) {
+ if (isObject3(srcValue)) {
baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
} else {
var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined2;
@@ -8241,7 +8271,7 @@
newValue = objValue;
if (isArguments(objValue)) {
newValue = toPlainObject(objValue);
- } else if (!isObject2(objValue) || isFunction(objValue)) {
+ } else if (!isObject3(objValue) || isFunction(objValue)) {
newValue = initCloneObject(srcValue);
}
} else {
@@ -8380,7 +8410,7 @@
return shuffleSelf(array2, baseClamp(n2, 0, array2.length));
}
function baseSet(object, path, value, customizer) {
- if (!isObject2(object)) {
+ if (!isObject3(object)) {
return object;
}
path = castPath(path, object);
@@ -8394,7 +8424,7 @@
var objValue = nested[key];
newValue = customizer ? customizer(objValue, key, nested) : undefined2;
if (newValue === undefined2) {
- newValue = isObject2(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};
+ newValue = isObject3(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};
}
}
assignValue(nested, key, newValue);
@@ -8844,7 +8874,7 @@
return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
}
var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args);
- return isObject2(result2) ? result2 : thisBinding;
+ return isObject3(result2) ? result2 : thisBinding;
};
}
function createCurry(func, bitmask, arity) {
@@ -8857,7 +8887,18 @@
var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder);
length -= holders.length;
if (length < arity) {
- return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, undefined2, args, holders, undefined2, undefined2, arity - length);
+ return createRecurry(
+ func,
+ bitmask,
+ createHybrid,
+ wrapper.placeholder,
+ undefined2,
+ args,
+ holders,
+ undefined2,
+ undefined2,
+ arity - length
+ );
}
var fn = this && this !== root3 && this instanceof wrapper ? Ctor : func;
return apply(fn, this, args);
@@ -8935,7 +8976,18 @@
length -= holdersCount;
if (isCurried && length < arity) {
var newHolders = replaceHolders(args, placeholder);
- return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, thisArg, args, newHolders, argPos, ary2, arity - length);
+ return createRecurry(
+ func,
+ bitmask,
+ createHybrid,
+ wrapper.placeholder,
+ thisArg,
+ args,
+ newHolders,
+ argPos,
+ ary2,
+ arity - length
+ );
}
var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func;
length = args.length;
@@ -9158,7 +9210,7 @@
return objValue;
}
function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
- if (isObject2(objValue) && isObject2(srcValue)) {
+ if (isObject3(objValue) && isObject3(srcValue)) {
stack.set(srcValue, objValue);
baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack);
stack["delete"](srcValue);
@@ -9506,7 +9558,7 @@
return !!length && (type3 == "number" || type3 != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
}
function isIterateeCall(value, index, object) {
- if (!isObject2(object)) {
+ if (!isObject3(object)) {
return false;
}
var type3 = typeof index;
@@ -9549,7 +9601,7 @@
return value === proto;
}
function isStrictComparable(value) {
- return value === value && !isObject2(value);
+ return value === value && !isObject3(value);
}
function matchesStrictComparable(key, srcValue) {
return function(object) {
@@ -10431,7 +10483,7 @@
throw new TypeError2(FUNC_ERROR_TEXT3);
}
wait = toNumber2(wait) || 0;
- if (isObject2(options2)) {
+ if (isObject3(options2)) {
leading = !!options2.leading;
maxing = "maxWait" in options2;
maxWait = maxing ? nativeMax2(toNumber2(options2.maxWait) || 0, wait) : maxWait;
@@ -10601,7 +10653,7 @@
if (typeof func != "function") {
throw new TypeError2(FUNC_ERROR_TEXT3);
}
- if (isObject2(options2)) {
+ if (isObject3(options2)) {
leading = "leading" in options2 ? !!options2.leading : leading;
trailing = "trailing" in options2 ? !!options2.trailing : trailing;
}
@@ -10666,7 +10718,7 @@
}
var isBuffer = nativeIsBuffer || stubFalse;
var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;
- function isElement(value) {
+ function isElement2(value) {
return isObjectLike2(value) && value.nodeType === 1 && !isPlainObject(value);
}
function isEmpty(value) {
@@ -10709,7 +10761,7 @@
return typeof value == "number" && nativeIsFinite(value);
}
function isFunction(value) {
- if (!isObject2(value)) {
+ if (!isObject3(value)) {
return false;
}
var tag = baseGetTag2(value);
@@ -10721,7 +10773,7 @@
function isLength(value) {
return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
- function isObject2(value) {
+ function isObject3(value) {
var type3 = typeof value;
return value != null && (type3 == "object" || type3 == "function");
}
@@ -10828,9 +10880,9 @@
if (isSymbol2(value)) {
return NAN2;
}
- if (isObject2(value)) {
+ if (isObject3(value)) {
var other = typeof value.valueOf == "function" ? value.valueOf() : value;
- value = isObject2(other) ? other + "" : other;
+ value = isObject3(other) ? other + "" : other;
}
if (typeof value != "string") {
return value === 0 ? value : +value;
@@ -10924,7 +10976,7 @@
function functionsIn(object) {
return object == null ? [] : baseFunctions(object, keysIn(object));
}
- function get3(object, path, defaultValue) {
+ function get4(object, path, defaultValue) {
var result2 = object == null ? undefined2 : baseGet(object, path);
return result2 === undefined2 ? defaultValue : result2;
}
@@ -11051,7 +11103,7 @@
var Ctor = object && object.constructor;
if (isArrLike) {
accumulator = isArr ? new Ctor() : [];
- } else if (isObject2(object)) {
+ } else if (isObject3(object)) {
accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};
} else {
accumulator = {};
@@ -11255,7 +11307,10 @@
options2 = assignInWith({}, options2, settings, customDefaultsAssignIn);
var imports = assignInWith({}, options2.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys);
var isEscaping, isEvaluating, index = 0, interpolate = options2.interpolate || reNoMatch, source = "__p += '";
- var reDelimiters = RegExp2((options2.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options2.evaluate || reNoMatch).source + "|$", "g");
+ var reDelimiters = RegExp2(
+ (options2.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options2.evaluate || reNoMatch).source + "|$",
+ "g"
+ );
var sourceURL = "//# sourceURL=" + (hasOwnProperty2.call(options2, "sourceURL") ? (options2.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++templateCounter + "]") + "\n";
string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {
interpolateValue || (interpolateValue = esTemplateValue);
@@ -11333,7 +11388,7 @@
}
function truncate(string, options2) {
var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION;
- if (isObject2(options2)) {
+ if (isObject3(options2)) {
var separator = "separator" in options2 ? options2.separator : separator;
length = "length" in options2 ? toInteger(options2.length) : length;
omission = "omission" in options2 ? baseToString2(options2.omission) : omission;
@@ -11463,13 +11518,13 @@
});
function mixin(object, source, options2) {
var props = keys(source), methodNames = baseFunctions(source, props);
- if (options2 == null && !(isObject2(source) && (methodNames.length || !props.length))) {
+ if (options2 == null && !(isObject3(source) && (methodNames.length || !props.length))) {
options2 = source;
source = object;
object = this;
methodNames = baseFunctions(source, keys(source));
}
- var chain2 = !(isObject2(options2) && "chain" in options2) || !!options2.chain, isFunc = isFunction(object);
+ var chain2 = !(isObject3(options2) && "chain" in options2) || !!options2.chain, isFunc = isFunction(object);
arrayEach(methodNames, function(methodName) {
var func = source[methodName];
object[methodName] = func;
@@ -11779,7 +11834,7 @@
lodash.forInRight = forInRight;
lodash.forOwn = forOwn;
lodash.forOwnRight = forOwnRight;
- lodash.get = get3;
+ lodash.get = get4;
lodash.gt = gt;
lodash.gte = gte;
lodash.has = has;
@@ -11798,7 +11853,7 @@
lodash.isBoolean = isBoolean;
lodash.isBuffer = isBuffer;
lodash.isDate = isDate;
- lodash.isElement = isElement;
+ lodash.isElement = isElement2;
lodash.isEmpty = isEmpty;
lodash.isEqual = isEqual;
lodash.isEqualWith = isEqualWith;
@@ -11815,7 +11870,7 @@
lodash.isNil = isNil;
lodash.isNull = isNull;
lodash.isNumber = isNumber2;
- lodash.isObject = isObject2;
+ lodash.isObject = isObject3;
lodash.isObjectLike = isObjectLike2;
lodash.isPlainObject = isPlainObject;
lodash.isRegExp = isRegExp;
@@ -12088,7 +12143,7 @@
var require_rbush_min = __commonJS({
"node_modules/rbush/rbush.min.js"(exports2, module2) {
!function(t, i2) {
- typeof exports2 == "object" && typeof module2 != "undefined" ? module2.exports = i2() : typeof define == "function" && define.amd ? define(i2) : (t = t || self).RBush = i2();
+ "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = i2() : "function" == typeof define && define.amd ? define(i2) : (t = t || self).RBush = i2();
}(exports2, function() {
"use strict";
function t(t2, r2, e3, a2, h2) {
@@ -12105,7 +12160,7 @@
for (; h3(n3[x], p2) > 0; )
x--;
}
- h3(n3[e4], p2) === 0 ? i2(n3, e4, x) : i2(n3, ++x, a3), x <= r3 && (e4 = x + 1), r3 <= x && (a3 = x - 1);
+ 0 === h3(n3[e4], p2) ? i2(n3, e4, x) : i2(n3, ++x, a3), x <= r3 && (e4 = x + 1), r3 <= x && (a3 = x - 1);
}
}(t2, r2, e3 || 0, a2 || t2.length - 1, h2 || n2);
}
@@ -12117,7 +12172,7 @@
return t2 < i3 ? -1 : t2 > i3 ? 1 : 0;
}
var r = function(t2) {
- t2 === void 0 && (t2 = 9), this._maxEntries = Math.max(4, t2), this._minEntries = Math.max(2, Math.ceil(0.4 * this._maxEntries)), this.clear();
+ void 0 === t2 && (t2 = 9), this._maxEntries = Math.max(4, t2), this._minEntries = Math.max(2, Math.ceil(0.4 * this._maxEntries)), this.clear();
};
function e(t2, i3, n3) {
if (!n3)
@@ -12231,7 +12286,7 @@
for (var n3, r2, a2, h2 = this.data, o2 = this.toBBox(t2), s2 = [], l2 = []; h2 || s2.length; ) {
if (h2 || (h2 = s2.pop(), r2 = s2[s2.length - 1], n3 = l2.pop(), a2 = true), h2.leaf) {
var f3 = e(t2, h2.children, i3);
- if (f3 !== -1)
+ if (-1 !== f3)
return h2.children.splice(f3, 1), s2.push(h2), this._condense(s2), this;
}
a2 || h2.leaf || !m(h2, o2) ? r2 ? (n3++, h2 = r2.children[n3], a2 = false) : h2 = null : (s2.push(h2), l2.push(n3), n3 = 0, r2 = h2, h2 = h2.children[0]);
@@ -12314,7 +12369,7 @@
o(i3[r2], t2);
}, r.prototype._condense = function(t2) {
for (var i3 = t2.length - 1, n3 = void 0; i3 >= 0; i3--)
- t2[i3].children.length === 0 ? i3 > 0 ? (n3 = t2[i3 - 1].children).splice(n3.indexOf(t2[i3]), 1) : this.clear() : a(t2[i3], this.toBBox);
+ 0 === t2[i3].children.length ? i3 > 0 ? (n3 = t2[i3 - 1].children).splice(n3.indexOf(t2[i3]), 1) : this.clear() : a(t2[i3], this.toBBox);
}, r;
});
}
@@ -13128,7 +13183,10 @@
return this.angleWithSep(b.x, b.y);
},
angleWithSep: function(x, y) {
- return Math.atan2(this.x * y - this.y * x, this.x * x + this.y * y);
+ return Math.atan2(
+ this.x * y - this.y * x,
+ this.x * x + this.y * y
+ );
},
_matMult: function(m) {
var x = m[0] * this.x + m[1] * this.y, y = m[2] * this.x + m[3] * this.y;
@@ -13641,7 +13699,7 @@
pluck,
isList,
isFunction,
- isObject: isObject2,
+ isObject: isObject3,
Global
};
function make_assign() {
@@ -13731,7 +13789,7 @@
function isFunction(val) {
return val && {}.toString.call(val) === "[object Function]";
}
- function isObject2(val) {
+ function isObject3(val) {
return val && {}.toString.call(val) === "[object Object]";
}
}
@@ -13748,7 +13806,7 @@
var create2 = util.create;
var isList = util.isList;
var isFunction = util.isFunction;
- var isObject2 = util.isObject;
+ var isObject3 = util.isObject;
module2.exports = {
createStore
};
@@ -13890,7 +13948,7 @@
throw new Error("Plugins must be function values that return objects");
}
var pluginProperties = plugin.call(this);
- if (!isObject2(pluginProperties)) {
+ if (!isObject3(pluginProperties)) {
throw new Error("Plugins must return an object of function properties");
}
each(pluginProperties, function(pluginFnProp, propName) {
@@ -14397,7 +14455,9 @@
return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4);
});
}
- if (rx_one.test(text.replace(rx_two, "@").replace(rx_three, "]").replace(rx_four, ""))) {
+ if (rx_one.test(
+ text.replace(rx_two, "@").replace(rx_three, "]").replace(rx_four, "")
+ )) {
j = eval("(" + text + ")");
return typeof reviver === "function" ? walk({ "": j }, "") : j;
}
@@ -14466,14 +14526,14 @@
}
var viewClasses;
var isArrayBufferView;
- function normalizeName(name2) {
- if (typeof name2 !== "string") {
- name2 = String(name2);
+ function normalizeName(name) {
+ if (typeof name !== "string") {
+ name = String(name);
}
- if (/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(name2) || name2 === "") {
- throw new TypeError('Invalid character in header field name: "' + name2 + '"');
+ if (/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(name) || name === "") {
+ throw new TypeError('Invalid character in header field name: "' + name + '"');
}
- return name2.toLowerCase();
+ return name.toLowerCase();
}
function normalizeValue(value) {
if (typeof value !== "string") {
@@ -14498,49 +14558,49 @@
function Headers(headers) {
this.map = {};
if (headers instanceof Headers) {
- headers.forEach(function(value, name2) {
- this.append(name2, value);
+ headers.forEach(function(value, name) {
+ this.append(name, value);
}, this);
} else if (Array.isArray(headers)) {
headers.forEach(function(header) {
this.append(header[0], header[1]);
}, this);
} else if (headers) {
- Object.getOwnPropertyNames(headers).forEach(function(name2) {
- this.append(name2, headers[name2]);
+ Object.getOwnPropertyNames(headers).forEach(function(name) {
+ this.append(name, headers[name]);
}, this);
}
}
- Headers.prototype.append = function(name2, value) {
- name2 = normalizeName(name2);
+ Headers.prototype.append = function(name, value) {
+ name = normalizeName(name);
value = normalizeValue(value);
- var oldValue = this.map[name2];
- this.map[name2] = oldValue ? oldValue + ", " + value : value;
+ var oldValue = this.map[name];
+ this.map[name] = oldValue ? oldValue + ", " + value : value;
};
- Headers.prototype["delete"] = function(name2) {
- delete this.map[normalizeName(name2)];
+ Headers.prototype["delete"] = function(name) {
+ delete this.map[normalizeName(name)];
};
- Headers.prototype.get = function(name2) {
- name2 = normalizeName(name2);
- return this.has(name2) ? this.map[name2] : null;
+ Headers.prototype.get = function(name) {
+ name = normalizeName(name);
+ return this.has(name) ? this.map[name] : null;
};
- Headers.prototype.has = function(name2) {
- return this.map.hasOwnProperty(normalizeName(name2));
+ Headers.prototype.has = function(name) {
+ return this.map.hasOwnProperty(normalizeName(name));
};
- Headers.prototype.set = function(name2, value) {
- this.map[normalizeName(name2)] = normalizeValue(value);
+ Headers.prototype.set = function(name, value) {
+ this.map[normalizeName(name)] = normalizeValue(value);
};
Headers.prototype.forEach = function(callback, thisArg) {
- for (var name2 in this.map) {
- if (this.map.hasOwnProperty(name2)) {
- callback.call(thisArg, this.map[name2], name2, this);
+ for (var name in this.map) {
+ if (this.map.hasOwnProperty(name)) {
+ callback.call(thisArg, this.map[name], name, this);
}
}
};
Headers.prototype.keys = function() {
var items = [];
- this.forEach(function(value, name2) {
- items.push(name2);
+ this.forEach(function(value, name) {
+ items.push(name);
});
return iteratorFor(items);
};
@@ -14553,8 +14613,8 @@
};
Headers.prototype.entries = function() {
var items = [];
- this.forEach(function(value, name2) {
- items.push([name2, value]);
+ this.forEach(function(value, name) {
+ items.push([name, value]);
});
return iteratorFor(items);
};
@@ -14662,7 +14722,12 @@
return isConsumed;
}
if (ArrayBuffer.isView(this._bodyArrayBuffer)) {
- return Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset, this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength));
+ return Promise.resolve(
+ this._bodyArrayBuffer.buffer.slice(
+ this._bodyArrayBuffer.byteOffset,
+ this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength
+ )
+ );
} else {
return Promise.resolve(this._bodyArrayBuffer);
}
@@ -14758,9 +14823,9 @@
body.trim().split("&").forEach(function(bytes) {
if (bytes) {
var split = bytes.split("=");
- var name2 = split.shift().replace(/\+/g, " ");
+ var name = split.shift().replace(/\+/g, " ");
var value = split.join("=").replace(/\+/g, " ");
- form.append(decodeURIComponent(name2), decodeURIComponent(value));
+ form.append(decodeURIComponent(name), decodeURIComponent(value));
}
});
return form;
@@ -14821,9 +14886,9 @@
try {
new DOMException2();
} catch (err) {
- DOMException2 = function(message, name2) {
+ DOMException2 = function(message, name) {
this.message = message;
- this.name = name2;
+ this.name = name;
var error = Error(message);
this.stack = error.stack;
};
@@ -14888,12 +14953,12 @@
}
}
if (init2 && typeof init2.headers === "object" && !(init2.headers instanceof Headers)) {
- Object.getOwnPropertyNames(init2.headers).forEach(function(name2) {
- xhr.setRequestHeader(name2, normalizeValue(init2.headers[name2]));
+ Object.getOwnPropertyNames(init2.headers).forEach(function(name) {
+ xhr.setRequestHeader(name, normalizeValue(init2.headers[name]));
});
} else {
- request3.headers.forEach(function(value, name2) {
- xhr.setRequestHeader(name2, value);
+ request3.headers.forEach(function(value, name) {
+ xhr.setRequestHeader(name, value);
});
}
if (request3.signal) {
@@ -15189,7 +15254,7 @@
return typeof self2.Request === "function" && !self2.Request.prototype.hasOwnProperty("signal") || !self2.AbortController;
}
function abortableFetchDecorator(patchTargets) {
- if (typeof patchTargets === "function") {
+ if ("function" === typeof patchTargets) {
patchTargets = {
fetch: patchTargets
};
@@ -15289,6 +15354,7 @@
// modules/index.js
var modules_exports = {};
__export(modules_exports, {
+ LocationManager: () => LocationManager,
QAItem: () => QAItem,
actionAddEntity: () => actionAddEntity,
actionAddMember: () => actionAddMember,
@@ -15347,7 +15413,6 @@
coreGraph: () => coreGraph,
coreHistory: () => coreHistory,
coreLocalizer: () => coreLocalizer,
- coreLocations: () => coreLocations,
coreTree: () => coreTree,
coreUploader: () => coreUploader,
coreValidator: () => coreValidator,
@@ -15400,7 +15465,7 @@
geoViewportEdge: () => geoViewportEdge,
geoZoomToScale: () => geoZoomToScale,
localizer: () => _mainLocalizer,
- locationManager: () => _mainLocations,
+ locationManager: () => _sharedLocationManager,
modeAddArea: () => modeAddArea,
modeAddLine: () => modeAddLine,
modeAddNote: () => modeAddNote,
@@ -15444,6 +15509,7 @@
osmIsOldMultipolygonOuterMember: () => osmIsOldMultipolygonOuterMember,
osmJoinWays: () => osmJoinWays,
osmLanes: () => osmLanes,
+ osmLifecyclePrefixes: () => osmLifecyclePrefixes,
osmNode: () => osmNode,
osmNodeGeometriesForTags: () => osmNodeGeometriesForTags,
osmNote: () => osmNote,
@@ -15454,6 +15520,7 @@
osmPointTags: () => osmPointTags,
osmRailwayTrackTagValues: () => osmRailwayTrackTagValues,
osmRelation: () => osmRelation,
+ osmRemoveLifecyclePrefix: () => osmRemoveLifecyclePrefix,
osmRoutableHighwayTagValues: () => osmRoutableHighwayTagValues,
osmSetAreaKeys: () => osmSetAreaKeys,
osmSetPointTags: () => osmSetPointTags,
@@ -15543,6 +15610,7 @@
uiFieldAccess: () => uiFieldAccess,
uiFieldAddress: () => uiFieldAddress,
uiFieldCheck: () => uiFieldCheck,
+ uiFieldColour: () => uiFieldText,
uiFieldCombo: () => uiFieldCombo,
uiFieldCycleway: () => uiFieldCycleway,
uiFieldDefaultCheck: () => uiFieldCheck,
@@ -15874,6 +15942,30 @@
function osmIsInterestingTag(key) {
return key !== "attribution" && key !== "created_by" && key !== "source" && key !== "odbl" && key.indexOf("source:") !== 0 && key.indexOf("source_ref") !== 0 && key.indexOf("tiger:") !== 0;
}
+ var osmLifecyclePrefixes = {
+ proposed: true,
+ planned: true,
+ construction: true,
+ disused: true,
+ abandoned: true,
+ was: true,
+ dismantled: true,
+ razed: true,
+ demolished: true,
+ destroyed: true,
+ removed: true,
+ obliterated: true,
+ intermittent: true
+ };
+ function osmRemoveLifecyclePrefix(key) {
+ const keySegments = key.split(":");
+ if (keySegments.length === 1)
+ return key;
+ if (keySegments[0] in osmLifecyclePrefixes) {
+ return key.slice(keySegments[0].length + 1);
+ }
+ return key;
+ }
var osmAreaKeys = {};
function osmSetAreaKeys(value) {
osmAreaKeys = value;
@@ -15905,18 +15997,23 @@
if (tags.area === "no")
return null;
var returnTags = {};
- for (var key in tags) {
+ for (var realKey in tags) {
+ const key = osmRemoveLifecyclePrefix(realKey);
if (key in osmAreaKeys && !(tags[key] in osmAreaKeys[key])) {
- returnTags[key] = tags[key];
+ returnTags[realKey] = tags[realKey];
return returnTags;
}
if (key in osmAreaKeysExceptions && tags[key] in osmAreaKeysExceptions[key]) {
- returnTags[key] = tags[key];
+ returnTags[realKey] = tags[realKey];
return returnTags;
}
}
return null;
}
+ var osmLineTags = {};
+ function osmSetLineTags(value) {
+ osmLineTags = value;
+ }
var osmPointTags = {};
function osmSetPointTags(value) {
osmPointTags = value;
@@ -15986,6 +16083,7 @@
"paved": true,
"asphalt": true,
"concrete": true,
+ "chipseal": true,
"concrete:lanes": true,
"concrete:plates": true
},
@@ -16824,16 +16922,16 @@
if (direction > 0 ? t0 < t1 : t0 > t1)
t0 += direction * tau;
}
- for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {
- point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);
- stream.point(point[0], point[1]);
+ for (var point2, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {
+ point2 = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);
+ stream.point(point2[0], point2[1]);
}
}
- function circleRadius(cosRadius, point) {
- point = cartesian(point), point[0] -= cosRadius;
- cartesianNormalizeInPlace(point);
- var radius = acos(-point[1]);
- return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;
+ function circleRadius(cosRadius, point2) {
+ point2 = cartesian(point2), point2[0] -= cosRadius;
+ cartesianNormalizeInPlace(point2);
+ var radius = acos(-point2[1]);
+ return ((-point2[2] < 0 ? -radius : radius) + tau - epsilon) % tau;
}
// node_modules/d3-geo/src/clip/buffer.js
@@ -16866,8 +16964,8 @@
}
// node_modules/d3-geo/src/clip/rejoin.js
- function Intersection(point, points, other, entry) {
- this.x = point;
+ function Intersection(point2, points, other, entry) {
+ this.x = point2;
this.z = points;
this.o = other;
this.e = entry;
@@ -16903,7 +17001,7 @@
for (i2 = 0, n2 = clip.length; i2 < n2; ++i2) {
clip[i2].e = startInside = !startInside;
}
- var start2 = subject[0], points, point;
+ var start2 = subject[0], points, point2;
while (1) {
var current = start2, isSubject = true;
while (current.v)
@@ -16916,7 +17014,7 @@
if (current.e) {
if (isSubject) {
for (i2 = 0, n2 = points.length; i2 < n2; ++i2)
- stream.point((point = points[i2])[0], point[1]);
+ stream.point((point2 = points[i2])[0], point2[1]);
} else {
interpolate(current.x, current.n.x, 1, stream);
}
@@ -16925,7 +17023,7 @@
if (isSubject) {
points = current.p.z;
for (i2 = points.length - 1; i2 >= 0; --i2)
- stream.point((point = points[i2])[0], point[1]);
+ stream.point((point2 = points[i2])[0], point2[1]);
} else {
interpolate(current.x, current.p.x, -1, stream);
}
@@ -16952,11 +17050,11 @@
}
// node_modules/d3-geo/src/polygonContains.js
- function longitude(point) {
- return abs(point[0]) <= pi ? point[0] : sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);
+ function longitude(point2) {
+ return abs(point2[0]) <= pi ? point2[0] : sign(point2[0]) * ((abs(point2[0]) + pi) % tau - pi);
}
- function polygonContains_default(polygon2, point) {
- var lambda = longitude(point), phi = point[1], sinPhi = sin(phi), normal = [sin(lambda), -cos(lambda), 0], angle2 = 0, winding = 0;
+ function polygonContains_default(polygon2, point2) {
+ var lambda = longitude(point2), phi = point2[1], sinPhi = sin(phi), normal = [sin(lambda), -cos(lambda), 0], angle2 = 0, winding = 0;
var sum = new Adder();
if (sinPhi === 1)
phi = halfPi + epsilon;
@@ -16990,7 +17088,7 @@
return function(sink) {
var line = clipLine(sink), ringBuffer = buffer_default(), ringSink = clipLine(ringBuffer), polygonStarted = false, polygon2, segments, ring;
var clip = {
- point,
+ point: point2,
lineStart,
lineEnd,
polygonStart: function() {
@@ -17001,7 +17099,7 @@
polygon2 = [];
},
polygonEnd: function() {
- clip.point = point;
+ clip.point = point2;
clip.lineStart = lineStart;
clip.lineEnd = lineEnd;
segments = merge(segments);
@@ -17029,7 +17127,7 @@
sink.polygonEnd();
}
};
- function point(lambda, phi) {
+ function point2(lambda, phi) {
if (pointVisible(lambda, phi))
sink.point(lambda, phi);
}
@@ -17041,7 +17139,7 @@
line.lineStart();
}
function lineEnd() {
- clip.point = point;
+ clip.point = point2;
line.lineEnd();
}
function pointRing(lambda, phi) {
@@ -17055,7 +17153,7 @@
function ringEnd() {
pointRing(ring[0][0], ring[0][1]);
ringSink.lineEnd();
- var clean2 = ringSink.clean(), ringSegments = ringBuffer.result(), i2, n2 = ringSegments.length, m, segment, point2;
+ var clean2 = ringSink.clean(), ringSegments = ringBuffer.result(), i2, n2 = ringSegments.length, m, segment, point3;
ring.pop();
polygon2.push(ring);
ring = null;
@@ -17068,7 +17166,7 @@
sink.polygonStart(), polygonStarted = true;
sink.lineStart();
for (i2 = 0; i2 < m; ++i2)
- sink.point((point2 = segment[i2])[0], point2[1]);
+ sink.point((point3 = segment[i2])[0], point3[1]);
sink.lineEnd();
}
return;
@@ -17088,9 +17186,14 @@
}
// node_modules/d3-geo/src/clip/antimeridian.js
- var antimeridian_default = clip_default(function() {
- return true;
- }, clipAntimeridianLine, clipAntimeridianInterpolate, [-pi, -halfPi]);
+ var antimeridian_default = clip_default(
+ function() {
+ return true;
+ },
+ clipAntimeridianLine,
+ clipAntimeridianInterpolate,
+ [-pi, -halfPi]
+ );
function clipAntimeridianLine(stream) {
var lambda04 = NaN, phi02 = NaN, sign0 = NaN, clean2;
return {
@@ -17371,21 +17474,21 @@
return function(stream) {
var activeStream = stream, bufferStream = buffer_default(), segments, polygon2, ring, x__, y__, v__, x_, y_, v_, first, clean2;
var clipStream = {
- point,
+ point: point2,
lineStart,
lineEnd,
polygonStart,
polygonEnd
};
- function point(x, y) {
+ function point2(x, y) {
if (visible(x, y))
activeStream.point(x, y);
}
function polygonInside() {
var winding = 0;
for (var i2 = 0, n2 = polygon2.length; i2 < n2; ++i2) {
- for (var ring2 = polygon2[i2], j2 = 1, m = ring2.length, point2 = ring2[0], a0, a1, b0 = point2[0], b1 = point2[1]; j2 < m; ++j2) {
- a0 = b0, a1 = b1, point2 = ring2[j2], b0 = point2[0], b1 = point2[1];
+ for (var ring2 = polygon2[i2], j2 = 1, m = ring2.length, point3 = ring2[0], a0, a1, b0 = point3[0], b1 = point3[1]; j2 < m; ++j2) {
+ a0 = b0, a1 = b1, point3 = ring2[j2], b0 = point3[0], b1 = point3[1];
if (a1 <= y12) {
if (b1 > y12 && (b0 - a0) * (y12 - a1) > (b1 - a1) * (x05 - a0))
++winding;
@@ -17431,7 +17534,7 @@
bufferStream.rejoin();
segments.push(bufferStream.result());
}
- clipStream.point = point;
+ clipStream.point = point2;
if (v_)
activeStream.lineEnd();
}
@@ -17954,7 +18057,7 @@
return function(stream) {
var lambda003, x004, y004, a00, b00, c00, lambda04, x05, y05, a0, b0, c0;
var resampleStream = {
- point,
+ point: point2,
lineStart,
lineEnd,
polygonStart: function() {
@@ -17966,7 +18069,7 @@
resampleStream.lineStart = lineStart;
}
};
- function point(x, y) {
+ function point2(x, y) {
x = project(x, y);
stream.point(x[0], x[1]);
}
@@ -17981,7 +18084,7 @@
stream.point(x05, y05);
}
function lineEnd() {
- resampleStream.point = point;
+ resampleStream.point = point2;
stream.lineEnd();
}
function ringStart() {
@@ -18048,12 +18151,12 @@
}
function projectionMutator(projectAt) {
var project, k = 150, x = 480, y = 250, lambda = 0, phi = 0, deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, alpha = 0, sx = 1, sy = 1, theta = null, preclip = antimeridian_default, x05 = null, y05, x12, y12, postclip = identity_default, delta2 = 0.5, projectResample, projectTransform, projectRotateTransform, cache, cacheStream;
- function projection2(point) {
- return projectRotateTransform(point[0] * radians, point[1] * radians);
+ function projection2(point2) {
+ return projectRotateTransform(point2[0] * radians, point2[1] * radians);
}
- function invert(point) {
- point = projectRotateTransform.invert(point[0], point[1]);
- return point && [point[0] * degrees, point[1] * degrees];
+ function invert(point2) {
+ point2 = projectRotateTransform.invert(point2[0], point2[1]);
+ return point2 && [point2[0] * degrees, point2[1] * degrees];
}
projection2.stream = function(stream) {
return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));
@@ -18271,11 +18374,11 @@
tileSize = tileSize || 256;
return tileSize * Math.pow(2, z) / TAU;
}
- function geoSphericalClosestNode(nodes, point) {
+ function geoSphericalClosestNode(nodes, point2) {
var minDistance = Infinity, distance;
var indexOfMin;
for (var i2 in nodes) {
- distance = geoSphericalDistance(nodes[i2].loc, point);
+ distance = geoSphericalDistance(nodes[i2].loc, point2);
if (distance < minDistance) {
minDistance = distance;
indexOfMin = i2;
@@ -18310,7 +18413,10 @@
extend: function(obj) {
if (!(obj instanceof geoExtent))
obj = new geoExtent(obj);
- return geoExtent([Math.min(obj[0][0], this[0][0]), Math.min(obj[0][1], this[0][1])], [Math.max(obj[1][0], this[1][0]), Math.max(obj[1][1], this[1][1])]);
+ return geoExtent(
+ [Math.min(obj[0][0], this[0][0]), Math.min(obj[0][1], this[0][1])],
+ [Math.max(obj[1][0], this[1][0]), Math.max(obj[1][1], this[1][1])]
+ );
},
_extend: function(extent) {
this[0][0] = Math.min(extent[0][0], this[0][0]);
@@ -18352,7 +18458,10 @@
intersection: function(obj) {
if (!this.intersects(obj))
return new geoExtent();
- return new geoExtent([Math.max(obj[0][0], this[0][0]), Math.max(obj[0][1], this[0][1])], [Math.min(obj[1][0], this[1][0]), Math.min(obj[1][1], this[1][1])]);
+ return new geoExtent(
+ [Math.max(obj[0][0], this[0][0]), Math.max(obj[0][1], this[0][1])],
+ [Math.min(obj[1][0], this[1][0]), Math.min(obj[1][1], this[1][1])]
+ );
},
percentContainedIn: function(obj) {
if (!(obj instanceof geoExtent))
@@ -18373,7 +18482,10 @@
padByMeters: function(meters) {
var dLat = geoMetersToLat(meters);
var dLon = geoMetersToLon(meters, this.center()[1]);
- return geoExtent([this[0][0] - dLon, this[0][1] - dLat], [this[1][0] + dLon, this[1][1] + dLat]);
+ return geoExtent(
+ [this[0][0] - dLon, this[0][1] - dLat],
+ [this[1][0] + dLon, this[1][1] + dLat]
+ );
},
toParam: function() {
return this.rectangle().join(",");
@@ -18543,15 +18655,15 @@
return a[0] === b[0] && a[1] === b[1] || a[0] === b[1] && a[1] === b[0];
}
function geoRotate(points, angle2, around) {
- return points.map(function(point) {
- var radial = geoVecSubtract(point, around);
+ return points.map(function(point2) {
+ var radial = geoVecSubtract(point2, around);
return [
radial[0] * Math.cos(angle2) - radial[1] * Math.sin(angle2) + around[0],
radial[0] * Math.sin(angle2) + radial[1] * Math.cos(angle2) + around[1]
];
});
}
- function geoChooseEdge(nodes, point, projection2, activeID) {
+ function geoChooseEdge(nodes, point2, projection2, activeID) {
var dist = geoVecLength;
var points = nodes.map(function(n2) {
return projection2(n2.loc);
@@ -18567,7 +18679,7 @@
continue;
var o = points[i2];
var s = geoVecSubtract(points[i2 + 1], o);
- var v = geoVecSubtract(point, o);
+ var v = geoVecSubtract(point2, o);
var proj = geoVecDot(v, s) / geoVecDot(s, s);
var p;
if (proj < 0) {
@@ -18577,7 +18689,7 @@
} else {
p = [o[0] + proj * s[0], o[1] + proj * s[1]];
}
- var d = dist(p, point);
+ var d = dist(p, point2);
if (d < min3) {
min3 = d;
idx = i2 + 1;
@@ -18699,9 +18811,9 @@
}
return false;
}
- function geoPointInPolygon(point, polygon2) {
- var x = point[0];
- var y = point[1];
+ function geoPointInPolygon(point2, polygon2) {
+ var x = point2[0];
+ var y = point2[1];
var inside = false;
for (var i2 = 0, j2 = polygon2.length - 1; i2 < polygon2.length; j2 = i2++) {
var xi = polygon2[i2][0];
@@ -18715,14 +18827,14 @@
return inside;
}
function geoPolygonContainsPolygon(outer, inner) {
- return inner.every(function(point) {
- return geoPointInPolygon(point, outer);
+ return inner.every(function(point2) {
+ return geoPointInPolygon(point2, outer);
});
}
function geoPolygonIntersectsPolygon(outer, inner, checkSegments) {
function testPoints(outer2, inner2) {
- return inner2.some(function(point) {
- return geoPointInPolygon(point, outer2);
+ return inner2.some(function(point2) {
+ return geoPointInPolygon(point2, outer2);
});
}
return testPoints(outer, inner) || !!checkSegments && geoPathHasIntersections(outer, inner);
@@ -18738,8 +18850,8 @@
var c2 = i2 === hull.length - 1 ? hull[0] : hull[i2 + 1];
var angle2 = Math.atan2(c2[1] - c1[1], c2[0] - c1[0]);
var poly = geoRotate(hull, -angle2, centroid);
- var extent = poly.reduce(function(extent2, point) {
- return extent2.extend(geoExtent(point));
+ var extent = poly.reduce(function(extent2, point2) {
+ return extent2.extend(geoExtent(point2));
}, geoExtent());
var area = extent.area();
if (area < minArea) {
@@ -18761,20 +18873,20 @@
}
return length;
}
- function geoViewportEdge(point, dimensions) {
+ function geoViewportEdge(point2, dimensions) {
var pad2 = [80, 20, 50, 20];
var x = 0;
var y = 0;
- if (point[0] > dimensions[0] - pad2[1]) {
+ if (point2[0] > dimensions[0] - pad2[1]) {
x = -10;
}
- if (point[0] < pad2[3]) {
+ if (point2[0] < pad2[3]) {
x = 10;
}
- if (point[1] > dimensions[1] - pad2[2]) {
+ if (point2[1] > dimensions[1] - pad2[2]) {
y = -10;
}
- if (point[1] < pad2[0]) {
+ if (point2[1] < pad2[0]) {
y = 10;
}
if (x || y) {
@@ -18800,12 +18912,12 @@
}
function parseTypenames(typenames, types) {
return typenames.trim().split(/^|\s+/).map(function(t) {
- var name2 = "", i2 = t.indexOf(".");
+ var name = "", i2 = t.indexOf(".");
if (i2 >= 0)
- name2 = t.slice(i2 + 1), t = t.slice(0, i2);
+ name = t.slice(i2 + 1), t = t.slice(0, i2);
if (t && !types.hasOwnProperty(t))
throw new Error("unknown type: " + t);
- return { type: t, name: name2 };
+ return { type: t, name };
});
}
Dispatch.prototype = dispatch.prototype = {
@@ -18851,22 +18963,22 @@
t[i2].value.apply(that, args);
}
};
- function get(type3, name2) {
+ function get(type3, name) {
for (var i2 = 0, n2 = type3.length, c; i2 < n2; ++i2) {
- if ((c = type3[i2]).name === name2) {
+ if ((c = type3[i2]).name === name) {
return c.value;
}
}
}
- function set(type3, name2, callback) {
+ function set(type3, name, callback) {
for (var i2 = 0, n2 = type3.length; i2 < n2; ++i2) {
- if (type3[i2].name === name2) {
+ if (type3[i2].name === name) {
type3[i2] = noop2, type3 = type3.slice(0, i2).concat(type3.slice(i2 + 1));
break;
}
}
if (callback != null)
- type3.push({ name: name2, value: callback });
+ type3.push({ name, value: callback });
return type3;
}
var dispatch_default = dispatch;
@@ -18882,18 +18994,18 @@
};
// node_modules/d3-selection/src/namespace.js
- function namespace_default(name2) {
- var prefix = name2 += "", i2 = prefix.indexOf(":");
- if (i2 >= 0 && (prefix = name2.slice(0, i2)) !== "xmlns")
- name2 = name2.slice(i2 + 1);
- return namespaces_default.hasOwnProperty(prefix) ? { space: namespaces_default[prefix], local: name2 } : name2;
+ function namespace_default(name) {
+ var prefix = name += "", i2 = prefix.indexOf(":");
+ if (i2 >= 0 && (prefix = name.slice(0, i2)) !== "xmlns")
+ name = name.slice(i2 + 1);
+ return namespaces_default.hasOwnProperty(prefix) ? { space: namespaces_default[prefix], local: name } : name;
}
// node_modules/d3-selection/src/creator.js
- function creatorInherit(name2) {
+ function creatorInherit(name) {
return function() {
var document2 = this.ownerDocument, uri = this.namespaceURI;
- return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name2) : document2.createElementNS(uri, name2);
+ return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name) : document2.createElementNS(uri, name);
};
}
function creatorFixed(fullname) {
@@ -18901,8 +19013,8 @@
return this.ownerDocument.createElementNS(fullname.space, fullname.local);
};
}
- function creator_default(name2) {
- var fullname = namespace_default(name2);
+ function creator_default(name) {
+ var fullname = namespace_default(name);
return (fullname.local ? creatorFixed : creatorInherit)(fullname);
}
@@ -19265,9 +19377,9 @@
}
// node_modules/d3-selection/src/selection/attr.js
- function attrRemove(name2) {
+ function attrRemove(name) {
return function() {
- this.removeAttribute(name2);
+ this.removeAttribute(name);
};
}
function attrRemoveNS(fullname) {
@@ -19275,9 +19387,9 @@
this.removeAttributeNS(fullname.space, fullname.local);
};
}
- function attrConstant(name2, value) {
+ function attrConstant(name, value) {
return function() {
- this.setAttribute(name2, value);
+ this.setAttribute(name, value);
};
}
function attrConstantNS(fullname, value) {
@@ -19285,13 +19397,13 @@
this.setAttributeNS(fullname.space, fullname.local, value);
};
}
- function attrFunction(name2, value) {
+ function attrFunction(name, value) {
return function() {
var v = value.apply(this, arguments);
if (v == null)
- this.removeAttribute(name2);
+ this.removeAttribute(name);
else
- this.setAttribute(name2, v);
+ this.setAttribute(name, v);
};
}
function attrFunctionNS(fullname, value) {
@@ -19303,8 +19415,8 @@
this.setAttributeNS(fullname.space, fullname.local, v);
};
}
- function attr_default(name2, value) {
- var fullname = namespace_default(name2);
+ function attr_default(name, value) {
+ var fullname = namespace_default(name);
if (arguments.length < 2) {
var node = this.node();
return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);
@@ -19318,54 +19430,54 @@
}
// node_modules/d3-selection/src/selection/style.js
- function styleRemove(name2) {
+ function styleRemove(name) {
return function() {
- this.style.removeProperty(name2);
+ this.style.removeProperty(name);
};
}
- function styleConstant(name2, value, priority) {
+ function styleConstant(name, value, priority) {
return function() {
- this.style.setProperty(name2, value, priority);
+ this.style.setProperty(name, value, priority);
};
}
- function styleFunction(name2, value, priority) {
+ function styleFunction(name, value, priority) {
return function() {
var v = value.apply(this, arguments);
if (v == null)
- this.style.removeProperty(name2);
+ this.style.removeProperty(name);
else
- this.style.setProperty(name2, v, priority);
+ this.style.setProperty(name, v, priority);
};
}
- function style_default(name2, value, priority) {
- return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === "function" ? styleFunction : styleConstant)(name2, value, priority == null ? "" : priority)) : styleValue(this.node(), name2);
+ function style_default(name, value, priority) {
+ return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === "function" ? styleFunction : styleConstant)(name, value, priority == null ? "" : priority)) : styleValue(this.node(), name);
}
- function styleValue(node, name2) {
- return node.style.getPropertyValue(name2) || window_default(node).getComputedStyle(node, null).getPropertyValue(name2);
+ function styleValue(node, name) {
+ return node.style.getPropertyValue(name) || window_default(node).getComputedStyle(node, null).getPropertyValue(name);
}
// node_modules/d3-selection/src/selection/property.js
- function propertyRemove(name2) {
+ function propertyRemove(name) {
return function() {
- delete this[name2];
+ delete this[name];
};
}
- function propertyConstant(name2, value) {
+ function propertyConstant(name, value) {
return function() {
- this[name2] = value;
+ this[name] = value;
};
}
- function propertyFunction(name2, value) {
+ function propertyFunction(name, value) {
return function() {
var v = value.apply(this, arguments);
if (v == null)
- delete this[name2];
+ delete this[name];
else
- this[name2] = v;
+ this[name] = v;
};
}
- function property_default(name2, value) {
- return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name2, value)) : this.node()[name2];
+ function property_default(name, value) {
+ return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];
}
// node_modules/d3-selection/src/selection/classed.js
@@ -19380,22 +19492,22 @@
this._names = classArray(node.getAttribute("class") || "");
}
ClassList.prototype = {
- add: function(name2) {
- var i2 = this._names.indexOf(name2);
+ add: function(name) {
+ var i2 = this._names.indexOf(name);
if (i2 < 0) {
- this._names.push(name2);
+ this._names.push(name);
this._node.setAttribute("class", this._names.join(" "));
}
},
- remove: function(name2) {
- var i2 = this._names.indexOf(name2);
+ remove: function(name) {
+ var i2 = this._names.indexOf(name);
if (i2 >= 0) {
this._names.splice(i2, 1);
this._node.setAttribute("class", this._names.join(" "));
}
},
- contains: function(name2) {
- return this._names.indexOf(name2) >= 0;
+ contains: function(name) {
+ return this._names.indexOf(name) >= 0;
}
};
function classedAdd(node, names) {
@@ -19423,8 +19535,8 @@
(value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
};
}
- function classed_default(name2, value) {
- var names = classArray(name2 + "");
+ function classed_default(name, value) {
+ var names = classArray(name + "");
if (arguments.length < 2) {
var list = classList(this.node()), i2 = -1, n2 = names.length;
while (++i2 < n2)
@@ -19492,8 +19604,8 @@
}
// node_modules/d3-selection/src/selection/append.js
- function append_default(name2) {
- var create2 = typeof name2 === "function" ? name2 : creator_default(name2);
+ function append_default(name) {
+ var create2 = typeof name === "function" ? name : creator_default(name);
return this.select(function() {
return this.appendChild(create2.apply(this, arguments));
});
@@ -19503,8 +19615,8 @@
function constantNull() {
return null;
}
- function insert_default(name2, before) {
- var create2 = typeof name2 === "function" ? name2 : creator_default(name2), select = before == null ? constantNull : typeof before === "function" ? before : selector_default(before);
+ function insert_default(name, before) {
+ var create2 = typeof name === "function" ? name : creator_default(name), select = before == null ? constantNull : typeof before === "function" ? before : selector_default(before);
return this.select(function() {
return this.insertBefore(create2.apply(this, arguments), select.apply(this, arguments) || null);
});
@@ -19546,10 +19658,10 @@
}
function parseTypenames2(typenames) {
return typenames.trim().split(/^|\s+/).map(function(t) {
- var name2 = "", i2 = t.indexOf(".");
+ var name = "", i2 = t.indexOf(".");
if (i2 >= 0)
- name2 = t.slice(i2 + 1), t = t.slice(0, i2);
- return { type: t, name: name2 };
+ name = t.slice(i2 + 1), t = t.slice(0, i2);
+ return { type: t, name };
});
}
function onRemove(typename) {
@@ -19721,10 +19833,10 @@
if (node) {
var svg2 = node.ownerSVGElement || node;
if (svg2.createSVGPoint) {
- var point = svg2.createSVGPoint();
- point.x = event.clientX, point.y = event.clientY;
- point = point.matrixTransform(node.getScreenCTM().inverse());
- return [point.x, point.y];
+ var point2 = svg2.createSVGPoint();
+ point2.x = event.clientX, point2.y = event.clientY;
+ point2 = point2.matrixTransform(node.getScreenCTM().inverse());
+ return [point2.x, point2.y];
}
if (node.getBoundingClientRect) {
var rect = node.getBoundingClientRect();
@@ -19919,18 +20031,23 @@
p = pointer_default(touch2 || event2, container2), n2 = active;
break;
}
- dispatch10.call(type3, that, new DragEvent(type3, {
- sourceEvent: event2,
- subject: s,
- target: drag,
- identifier,
- active: n2,
- x: p[0] + dx,
- y: p[1] + dy,
- dx: p[0] - p02[0],
- dy: p[1] - p02[1],
- dispatch: dispatch10
- }), d);
+ dispatch10.call(
+ type3,
+ that,
+ new DragEvent(type3, {
+ sourceEvent: event2,
+ subject: s,
+ target: drag,
+ identifier,
+ active: n2,
+ x: p[0] + dx,
+ y: p[1] + dy,
+ dx: p[0] - p02[0],
+ dy: p[1] - p02[1],
+ dispatch: dispatch10
+ }),
+ d
+ );
};
}
drag.filter = function(_) {
@@ -20286,7 +20403,12 @@
},
rgb() {
var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2;
- return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);
+ return new Rgb(
+ hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
+ hsl2rgb(h, m1, m2),
+ hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
+ this.opacity
+ );
},
clamp() {
return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
@@ -20816,14 +20938,14 @@
var RUNNING = 4;
var ENDING = 5;
var ENDED = 6;
- function schedule_default(node, name2, id2, index, group, timing) {
+ function schedule_default(node, name, id2, index, group, timing) {
var schedules = node.__transition;
if (!schedules)
node.__transition = {};
else if (id2 in schedules)
return;
create(node, id2, {
- name: name2,
+ name,
index,
group,
on: emptyOn,
@@ -20927,13 +21049,13 @@
}
// node_modules/d3-transition/src/interrupt.js
- function interrupt_default(node, name2) {
+ function interrupt_default(node, name) {
var schedules = node.__transition, schedule, active, empty2 = true, i2;
if (!schedules)
return;
- name2 = name2 == null ? null : name2 + "";
+ name = name == null ? null : name + "";
for (i2 in schedules) {
- if ((schedule = schedules[i2]).name !== name2) {
+ if ((schedule = schedules[i2]).name !== name) {
empty2 = false;
continue;
}
@@ -20948,21 +21070,21 @@
}
// node_modules/d3-transition/src/selection/interrupt.js
- function interrupt_default2(name2) {
+ function interrupt_default2(name) {
return this.each(function() {
- interrupt_default(this, name2);
+ interrupt_default(this, name);
});
}
// node_modules/d3-transition/src/transition/tween.js
- function tweenRemove(id2, name2) {
+ function tweenRemove(id2, name) {
var tween0, tween1;
return function() {
var schedule = set2(this, id2), tween = schedule.tween;
if (tween !== tween0) {
tween1 = tween0 = tween;
for (var i2 = 0, n2 = tween1.length; i2 < n2; ++i2) {
- if (tween1[i2].name === name2) {
+ if (tween1[i2].name === name) {
tween1 = tween1.slice();
tween1.splice(i2, 1);
break;
@@ -20972,7 +21094,7 @@
schedule.tween = tween1;
};
}
- function tweenFunction(id2, name2, value) {
+ function tweenFunction(id2, name, value) {
var tween0, tween1;
if (typeof value !== "function")
throw new Error();
@@ -20980,8 +21102,8 @@
var schedule = set2(this, id2), tween = schedule.tween;
if (tween !== tween0) {
tween1 = (tween0 = tween).slice();
- for (var t = { name: name2, value }, i2 = 0, n2 = tween1.length; i2 < n2; ++i2) {
- if (tween1[i2].name === name2) {
+ for (var t = { name, value }, i2 = 0, n2 = tween1.length; i2 < n2; ++i2) {
+ if (tween1[i2].name === name) {
tween1[i2] = t;
break;
}
@@ -20992,28 +21114,28 @@
schedule.tween = tween1;
};
}
- function tween_default(name2, value) {
+ function tween_default(name, value) {
var id2 = this._id;
- name2 += "";
+ name += "";
if (arguments.length < 2) {
var tween = get2(this.node(), id2).tween;
for (var i2 = 0, n2 = tween.length, t; i2 < n2; ++i2) {
- if ((t = tween[i2]).name === name2) {
+ if ((t = tween[i2]).name === name) {
return t.value;
}
}
return null;
}
- return this.each((value == null ? tweenRemove : tweenFunction)(id2, name2, value));
+ return this.each((value == null ? tweenRemove : tweenFunction)(id2, name, value));
}
- function tweenValue(transition2, name2, value) {
+ function tweenValue(transition2, name, value) {
var id2 = transition2._id;
transition2.each(function() {
var schedule = set2(this, id2);
- (schedule.value || (schedule.value = {}))[name2] = value.apply(this, arguments);
+ (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);
});
return function(node) {
- return get2(node, id2).value[name2];
+ return get2(node, id2).value[name];
};
}
@@ -21024,9 +21146,9 @@
}
// node_modules/d3-transition/src/transition/attr.js
- function attrRemove2(name2) {
+ function attrRemove2(name) {
return function() {
- this.removeAttribute(name2);
+ this.removeAttribute(name);
};
}
function attrRemoveNS2(fullname) {
@@ -21034,10 +21156,10 @@
this.removeAttributeNS(fullname.space, fullname.local);
};
}
- function attrConstant2(name2, interpolate, value1) {
+ function attrConstant2(name, interpolate, value1) {
var string00, string1 = value1 + "", interpolate0;
return function() {
- var string0 = this.getAttribute(name2);
+ var string0 = this.getAttribute(name);
return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);
};
}
@@ -21048,13 +21170,13 @@
return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);
};
}
- function attrFunction2(name2, interpolate, value) {
+ function attrFunction2(name, interpolate, value) {
var string00, string10, interpolate0;
return function() {
var string0, value1 = value(this), string1;
if (value1 == null)
- return void this.removeAttribute(name2);
- string0 = this.getAttribute(name2);
+ return void this.removeAttribute(name);
+ string0 = this.getAttribute(name);
string1 = value1 + "";
return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
};
@@ -21070,15 +21192,15 @@
return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
};
}
- function attr_default2(name2, value) {
- var fullname = namespace_default(name2), i2 = fullname === "transform" ? interpolateTransformSvg : interpolate_default;
- return this.attrTween(name2, typeof value === "function" ? (fullname.local ? attrFunctionNS2 : attrFunction2)(fullname, i2, tweenValue(this, "attr." + name2, value)) : value == null ? (fullname.local ? attrRemoveNS2 : attrRemove2)(fullname) : (fullname.local ? attrConstantNS2 : attrConstant2)(fullname, i2, value));
+ function attr_default2(name, value) {
+ var fullname = namespace_default(name), i2 = fullname === "transform" ? interpolateTransformSvg : interpolate_default;
+ return this.attrTween(name, typeof value === "function" ? (fullname.local ? attrFunctionNS2 : attrFunction2)(fullname, i2, tweenValue(this, "attr." + name, value)) : value == null ? (fullname.local ? attrRemoveNS2 : attrRemove2)(fullname) : (fullname.local ? attrConstantNS2 : attrConstant2)(fullname, i2, value));
}
// node_modules/d3-transition/src/transition/attrTween.js
- function attrInterpolate(name2, i2) {
+ function attrInterpolate(name, i2) {
return function(t) {
- this.setAttribute(name2, i2.call(this, t));
+ this.setAttribute(name, i2.call(this, t));
};
}
function attrInterpolateNS(fullname, i2) {
@@ -21097,26 +21219,26 @@
tween._value = value;
return tween;
}
- function attrTween(name2, value) {
+ function attrTween(name, value) {
var t0, i0;
function tween() {
var i2 = value.apply(this, arguments);
if (i2 !== i0)
- t0 = (i0 = i2) && attrInterpolate(name2, i2);
+ t0 = (i0 = i2) && attrInterpolate(name, i2);
return t0;
}
tween._value = value;
return tween;
}
- function attrTween_default(name2, value) {
- var key = "attr." + name2;
+ function attrTween_default(name, value) {
+ var key = "attr." + name;
if (arguments.length < 2)
return (key = this.tween(key)) && key._value;
if (value == null)
return this.tween(key, null);
if (typeof value !== "function")
throw new Error();
- var fullname = namespace_default(name2);
+ var fullname = namespace_default(name);
return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
}
@@ -21212,26 +21334,26 @@
}
// node_modules/d3-transition/src/transition/on.js
- function start(name2) {
- return (name2 + "").trim().split(/^|\s+/).every(function(t) {
+ function start(name) {
+ return (name + "").trim().split(/^|\s+/).every(function(t) {
var i2 = t.indexOf(".");
if (i2 >= 0)
t = t.slice(0, i2);
return !t || t === "start";
});
}
- function onFunction(id2, name2, listener) {
- var on0, on1, sit = start(name2) ? init : set2;
+ function onFunction(id2, name, listener) {
+ var on0, on1, sit = start(name) ? init : set2;
return function() {
var schedule = sit(this, id2), on = schedule.on;
if (on !== on0)
- (on1 = (on0 = on).copy()).on(name2, listener);
+ (on1 = (on0 = on).copy()).on(name, listener);
schedule.on = on1;
};
}
- function on_default2(name2, listener) {
+ function on_default2(name, listener) {
var id2 = this._id;
- return arguments.length < 2 ? get2(this.node(), id2).on.on(name2) : this.each(onFunction(id2, name2, listener));
+ return arguments.length < 2 ? get2(this.node(), id2).on.on(name) : this.each(onFunction(id2, name, listener));
}
// node_modules/d3-transition/src/transition/remove.js
@@ -21251,7 +21373,7 @@
// node_modules/d3-transition/src/transition/select.js
function select_default3(select) {
- var name2 = this._name, id2 = this._id;
+ var name = this._name, id2 = this._id;
if (typeof select !== "function")
select = selector_default(select);
for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j2 = 0; j2 < m; ++j2) {
@@ -21260,16 +21382,16 @@
if ("__data__" in node)
subnode.__data__ = node.__data__;
subgroup[i2] = subnode;
- schedule_default(subgroup[i2], name2, id2, i2, subgroup, get2(node, id2));
+ schedule_default(subgroup[i2], name, id2, i2, subgroup, get2(node, id2));
}
}
}
- return new Transition(subgroups, this._parents, name2, id2);
+ return new Transition(subgroups, this._parents, name, id2);
}
// node_modules/d3-transition/src/transition/selectAll.js
function selectAll_default3(select) {
- var name2 = this._name, id2 = this._id;
+ var name = this._name, id2 = this._id;
if (typeof select !== "function")
select = selectorAll_default(select);
for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j2 = 0; j2 < m; ++j2) {
@@ -21277,7 +21399,7 @@
if (node = group[i2]) {
for (var children2 = select.call(node, node.__data__, i2, group), child, inherit2 = get2(node, id2), k = 0, l = children2.length; k < l; ++k) {
if (child = children2[k]) {
- schedule_default(child, name2, id2, k, children2, inherit2);
+ schedule_default(child, name, id2, k, children2, inherit2);
}
}
subgroups.push(children2);
@@ -21285,7 +21407,7 @@
}
}
}
- return new Transition(subgroups, parents, name2, id2);
+ return new Transition(subgroups, parents, name, id2);
}
// node_modules/d3-transition/src/transition/selection.js
@@ -21295,74 +21417,74 @@
}
// node_modules/d3-transition/src/transition/style.js
- function styleNull(name2, interpolate) {
+ function styleNull(name, interpolate) {
var string00, string10, interpolate0;
return function() {
- var string0 = styleValue(this, name2), string1 = (this.style.removeProperty(name2), styleValue(this, name2));
+ var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name));
return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate(string00 = string0, string10 = string1);
};
}
- function styleRemove2(name2) {
+ function styleRemove2(name) {
return function() {
- this.style.removeProperty(name2);
+ this.style.removeProperty(name);
};
}
- function styleConstant2(name2, interpolate, value1) {
+ function styleConstant2(name, interpolate, value1) {
var string00, string1 = value1 + "", interpolate0;
return function() {
- var string0 = styleValue(this, name2);
+ var string0 = styleValue(this, name);
return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);
};
}
- function styleFunction2(name2, interpolate, value) {
+ function styleFunction2(name, interpolate, value) {
var string00, string10, interpolate0;
return function() {
- var string0 = styleValue(this, name2), value1 = value(this), string1 = value1 + "";
+ var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + "";
if (value1 == null)
- string1 = value1 = (this.style.removeProperty(name2), styleValue(this, name2));
+ string1 = value1 = (this.style.removeProperty(name), styleValue(this, name));
return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
};
}
- function styleMaybeRemove(id2, name2) {
- var on0, on1, listener0, key = "style." + name2, event = "end." + key, remove2;
+ function styleMaybeRemove(id2, name) {
+ var on0, on1, listener0, key = "style." + name, event = "end." + key, remove2;
return function() {
- var schedule = set2(this, id2), on = schedule.on, listener = schedule.value[key] == null ? remove2 || (remove2 = styleRemove2(name2)) : void 0;
+ var schedule = set2(this, id2), on = schedule.on, listener = schedule.value[key] == null ? remove2 || (remove2 = styleRemove2(name)) : void 0;
if (on !== on0 || listener0 !== listener)
(on1 = (on0 = on).copy()).on(event, listener0 = listener);
schedule.on = on1;
};
}
- function style_default2(name2, value, priority) {
- var i2 = (name2 += "") === "transform" ? interpolateTransformCss : interpolate_default;
- return value == null ? this.styleTween(name2, styleNull(name2, i2)).on("end.style." + name2, styleRemove2(name2)) : typeof value === "function" ? this.styleTween(name2, styleFunction2(name2, i2, tweenValue(this, "style." + name2, value))).each(styleMaybeRemove(this._id, name2)) : this.styleTween(name2, styleConstant2(name2, i2, value), priority).on("end.style." + name2, null);
+ function style_default2(name, value, priority) {
+ var i2 = (name += "") === "transform" ? interpolateTransformCss : interpolate_default;
+ return value == null ? this.styleTween(name, styleNull(name, i2)).on("end.style." + name, styleRemove2(name)) : typeof value === "function" ? this.styleTween(name, styleFunction2(name, i2, tweenValue(this, "style." + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant2(name, i2, value), priority).on("end.style." + name, null);
}
// node_modules/d3-transition/src/transition/styleTween.js
- function styleInterpolate(name2, i2, priority) {
+ function styleInterpolate(name, i2, priority) {
return function(t) {
- this.style.setProperty(name2, i2.call(this, t), priority);
+ this.style.setProperty(name, i2.call(this, t), priority);
};
}
- function styleTween(name2, value, priority) {
+ function styleTween(name, value, priority) {
var t, i0;
function tween() {
var i2 = value.apply(this, arguments);
if (i2 !== i0)
- t = (i0 = i2) && styleInterpolate(name2, i2, priority);
+ t = (i0 = i2) && styleInterpolate(name, i2, priority);
return t;
}
tween._value = value;
return tween;
}
- function styleTween_default(name2, value, priority) {
- var key = "style." + (name2 += "");
+ function styleTween_default(name, value, priority) {
+ var key = "style." + (name += "");
if (arguments.length < 2)
return (key = this.tween(key)) && key._value;
if (value == null)
return this.tween(key, null);
if (typeof value !== "function")
throw new Error();
- return this.tween(key, styleTween(name2, value, priority == null ? "" : priority));
+ return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
}
// node_modules/d3-transition/src/transition/text.js
@@ -21411,12 +21533,12 @@
// node_modules/d3-transition/src/transition/transition.js
function transition_default() {
- var name2 = this._name, id0 = this._id, id1 = newId();
+ var name = this._name, id0 = this._id, id1 = newId();
for (var groups = this._groups, m = groups.length, j2 = 0; j2 < m; ++j2) {
for (var group = groups[j2], n2 = group.length, node, i2 = 0; i2 < n2; ++i2) {
if (node = group[i2]) {
var inherit2 = get2(node, id0);
- schedule_default(node, name2, id1, i2, group, {
+ schedule_default(node, name, id1, i2, group, {
time: inherit2.time + inherit2.delay + inherit2.duration,
delay: 0,
duration: inherit2.duration,
@@ -21425,7 +21547,7 @@
}
}
}
- return new Transition(groups, this._parents, name2, id1);
+ return new Transition(groups, this._parents, name, id1);
}
// node_modules/d3-transition/src/transition/end.js
@@ -21453,14 +21575,14 @@
// node_modules/d3-transition/src/transition/index.js
var id = 0;
- function Transition(groups, parents, name2, id2) {
+ function Transition(groups, parents, name, id2) {
this._groups = groups;
this._parents = parents;
- this._name = name2;
+ this._name = name;
this._id = id2;
}
- function transition(name2) {
- return selection_default().transition(name2);
+ function transition(name) {
+ return selection_default().transition(name);
}
function newId() {
return ++id;
@@ -21523,21 +21645,21 @@
}
return timing;
}
- function transition_default2(name2) {
+ function transition_default2(name) {
var id2, timing;
- if (name2 instanceof Transition) {
- id2 = name2._id, name2 = name2._name;
+ if (name instanceof Transition) {
+ id2 = name._id, name = name._name;
} else {
- id2 = newId(), (timing = defaultTiming).time = now(), name2 = name2 == null ? null : name2 + "";
+ id2 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + "";
}
for (var groups = this._groups, m = groups.length, j2 = 0; j2 < m; ++j2) {
for (var group = groups[j2], n2 = group.length, node, i2 = 0; i2 < n2; ++i2) {
if (node = group[i2]) {
- schedule_default(node, name2, id2, i2, group, timing || inherit(node, id2));
+ schedule_default(node, name, id2, i2, group, timing || inherit(node, id2));
}
}
}
- return new Transition(groups, this._parents, name2, id2);
+ return new Transition(groups, this._parents, name, id2);
}
// node_modules/d3-transition/src/selection/index.js
@@ -21577,8 +21699,8 @@
translate: function(x, y) {
return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);
},
- apply: function(point) {
- return [point[0] * this.k + this.x, point[1] * this.k + this.y];
+ apply: function(point2) {
+ return [point2[0] * this.k + this.x, point2[1] * this.k + this.y];
},
applyX: function(x) {
return x * this.k + this.x;
@@ -21650,18 +21772,21 @@
}
function defaultConstrain(transform2, extent, translateExtent) {
var dx0 = transform2.invertX(extent[0][0]) - translateExtent[0][0], dx1 = transform2.invertX(extent[1][0]) - translateExtent[1][0], dy0 = transform2.invertY(extent[0][1]) - translateExtent[0][1], dy1 = transform2.invertY(extent[1][1]) - translateExtent[1][1];
- return transform2.translate(dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1), dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1));
+ return transform2.translate(
+ dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
+ dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
+ );
}
function zoom_default2() {
var filter2 = defaultFilter2, extent = defaultExtent, constrain = defaultConstrain, wheelDelta = defaultWheelDelta, touchable = defaultTouchable2, scaleExtent = [0, Infinity], translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]], duration = 250, interpolate = zoom_default, listeners = dispatch_default("start", "zoom", "end"), touchstarting, touchfirst, touchending, touchDelay = 500, wheelDelay = 150, clickDistance2 = 0, tapDistance = 10;
function zoom(selection2) {
selection2.property("__zoom", defaultTransform).on("wheel.zoom", wheeled, { passive: false }).on("mousedown.zoom", mousedowned).on("dblclick.zoom", dblclicked).filter(touchable).on("touchstart.zoom", touchstarted).on("touchmove.zoom", touchmoved).on("touchend.zoom touchcancel.zoom", touchended).style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
}
- zoom.transform = function(collection, transform2, point, event) {
+ zoom.transform = function(collection, transform2, point2, event) {
var selection2 = collection.selection ? collection.selection() : collection;
selection2.property("__zoom", defaultTransform);
if (collection !== selection2) {
- schedule(collection, transform2, point, event);
+ schedule(collection, transform2, point2, event);
} else {
selection2.interrupt().each(function() {
gesture(this, arguments).event(event).start().zoom(null, typeof transform2 === "function" ? transform2.apply(this, arguments) : transform2).end();
@@ -21682,13 +21807,19 @@
};
zoom.translateBy = function(selection2, x, y, event) {
zoom.transform(selection2, function() {
- return constrain(this.__zoom.translate(typeof x === "function" ? x.apply(this, arguments) : x, typeof y === "function" ? y.apply(this, arguments) : y), extent.apply(this, arguments), translateExtent);
+ return constrain(this.__zoom.translate(
+ typeof x === "function" ? x.apply(this, arguments) : x,
+ typeof y === "function" ? y.apply(this, arguments) : y
+ ), extent.apply(this, arguments), translateExtent);
}, null, event);
};
zoom.translateTo = function(selection2, x, y, p, event) {
zoom.transform(selection2, function() {
var e = extent.apply(this, arguments), t = this.__zoom, p02 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p;
- return constrain(identity2.translate(p02[0], p02[1]).scale(t.k).translate(typeof x === "function" ? -x.apply(this, arguments) : -x, typeof y === "function" ? -y.apply(this, arguments) : -y), e, translateExtent);
+ return constrain(identity2.translate(p02[0], p02[1]).scale(t.k).translate(
+ typeof x === "function" ? -x.apply(this, arguments) : -x,
+ typeof y === "function" ? -y.apply(this, arguments) : -y
+ ), e, translateExtent);
}, p, event);
};
function scale(transform2, k) {
@@ -21702,13 +21833,13 @@
function centroid(extent2) {
return [(+extent2[0][0] + +extent2[1][0]) / 2, (+extent2[0][1] + +extent2[1][1]) / 2];
}
- function schedule(transition2, transform2, point, event) {
+ function schedule(transition2, transform2, point2, event) {
transition2.on("start.zoom", function() {
gesture(this, arguments).event(event).start();
}).on("interrupt.zoom end.zoom", function() {
gesture(this, arguments).event(event).end();
}).tween("zoom", function() {
- var that = this, args = arguments, g = gesture(that, args).event(event), e = extent.apply(that, args), p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point, w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), a = that.__zoom, b = typeof transform2 === "function" ? transform2.apply(that, args) : transform2, i2 = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
+ var that = this, args = arguments, g = gesture(that, args).event(event), e = extent.apply(that, args), p = point2 == null ? centroid(e) : typeof point2 === "function" ? point2.apply(that, args) : point2, w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), a = that.__zoom, b = typeof transform2 === "function" ? transform2.apply(that, args) : transform2, i2 = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
return function(t) {
if (t === 1)
t = b;
@@ -21764,13 +21895,18 @@
},
emit: function(type3) {
var d = select_default2(this.that).datum();
- listeners.call(type3, this.that, new ZoomEvent(type3, {
- sourceEvent: this.sourceEvent,
- target: zoom,
- type: type3,
- transform: this.that.__zoom,
- dispatch: listeners
- }), d);
+ listeners.call(
+ type3,
+ this.that,
+ new ZoomEvent(type3, {
+ sourceEvent: this.sourceEvent,
+ target: zoom,
+ type: type3,
+ transform: this.that.__zoom,
+ dispatch: listeners
+ }),
+ d
+ );
}
};
function wheeled(event, ...args) {
@@ -21959,13 +22095,13 @@
var x = 0;
var y = 0;
var clipExtent = [[0, 0], [0, 0]];
- function projection2(point) {
- point = project(point[0] * Math.PI / 180, point[1] * Math.PI / 180);
- return [point[0] * k + x, y - point[1] * k];
+ function projection2(point2) {
+ point2 = project(point2[0] * Math.PI / 180, point2[1] * Math.PI / 180);
+ return [point2[0] * k + x, y - point2[1] * k];
}
- projection2.invert = function(point) {
- point = project.invert((point[0] - x) / k, (y - point[1]) / k);
- return point && [point[0] * 180 / Math.PI, point[1] * 180 / Math.PI];
+ projection2.invert = function(point2) {
+ point2 = project.invert((point2[0] - x) / k, (y - point2[1]) / k);
+ return point2 && [point2[0] * 180 / Math.PI, point2[1] * 180 / Math.PI];
};
projection2.scale = function(_) {
if (!arguments.length)
@@ -22234,145 +22370,153 @@
// modules/core/file_fetcher.js
var import_vparse = __toESM(require_vparse());
- // package.json
- var name = "iD";
- var version = "2.21.1";
- var description = "A friendly editor for OpenStreetMap";
- var main = "dist/iD.min.js";
- var repository = "github:openstreetmap/iD";
- var homepage = "https://github.com/openstreetmap/iD";
- var bugs = "https://github.com/openstreetmap/iD/issues";
- var keywords = [
- "editor",
- "openstreetmap"
- ];
- var license = "ISC";
- var scripts = {
- all: "run-s clean build dist",
- build: "run-s build:css build:data build:js",
- "build:css": "node scripts/build_css.js",
- "build:data": "shx mkdir -p dist/data && node scripts/build_data.js",
- "build:stats": "esbuild-visualizer --metadata dist/esbuild.json --exclude *.png --filename docs/statistics.html",
- "build:js": "node config/esbuild.config.mjs",
- "build:js:watch": "node config/esbuild.config.mjs --watch",
- clean: "shx rm -f dist/esbuild.json dist/*.js dist/*.map dist/*.css dist/img/*.svg",
- dist: "run-p dist:**",
- "dist:mapillary": "shx mkdir -p dist/mapillary-js && shx cp -R node_modules/mapillary-js/dist/* dist/mapillary-js/",
- "dist:pannellum": "shx mkdir -p dist/pannellum-streetside && shx cp -R node_modules/pannellum/build/* dist/pannellum-streetside/",
- "dist:min": "node config/esbuild.config.min.mjs",
- "dist:svg:iD": 'svg-sprite --symbol --symbol-dest . --shape-id-generator "iD-%s" --symbol-sprite dist/img/iD-sprite.svg "svg/iD-sprite/**/*.svg"',
- "dist:svg:community": 'svg-sprite --symbol --symbol-dest . --shape-id-generator "community-%s" --symbol-sprite dist/img/community-sprite.svg node_modules/osm-community-index/dist/img/*.svg',
- "dist:svg:fa": "svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/fa-sprite.svg svg/fontawesome/*.svg",
- "dist:svg:maki": 'svg-sprite --symbol --symbol-dest . --shape-id-generator "maki-%s" --symbol-sprite dist/img/maki-sprite.svg node_modules/@mapbox/maki/icons/*.svg',
- "dist:svg:mapillary:signs": "svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/mapillary-sprite.svg node_modules/mapillary_sprite_source/package_signs/*.svg",
- "dist:svg:mapillary:objects": "svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/mapillary-object-sprite.svg node_modules/mapillary_sprite_source/package_objects/*.svg",
- "dist:svg:temaki": 'svg-sprite --symbol --symbol-dest . --shape-id-generator "temaki-%s" --symbol-sprite dist/img/temaki-sprite.svg node_modules/@ideditor/temaki/icons/*.svg',
- imagery: "node scripts/update_imagery.js",
- lint: "eslint scripts test/spec modules",
- "lint:fix": "eslint scripts test/spec modules --fix",
- start: "run-s build:js start:server",
- "start:watch": "run-p build:js:watch start:server",
- "start:server": "node scripts/server.js",
- test: "npm-run-all -s lint build test:spec",
- "test:spec": "karma start karma.conf.js",
- translations: "node scripts/update_locales.js"
- };
- var dependencies = {
- "@ideditor/country-coder": "~5.0.3",
- "@ideditor/location-conflation": "~1.0.2",
- "@mapbox/geojson-area": "^0.2.2",
- "@mapbox/sexagesimal": "1.2.0",
- "@mapbox/vector-tile": "^1.3.1",
- "@tmcw/togeojson": "^4.5.0",
- "@turf/bbox-clip": "^6.0.0",
- "abortcontroller-polyfill": "^1.4.0",
- "aes-js": "^3.1.2",
- "alif-toolkit": "^1.2.9",
- "core-js-bundle": "^3.19.0",
- diacritics: "1.3.0",
- "fast-deep-equal": "~3.1.1",
- "fast-json-stable-stringify": "2.1.0",
- "lodash-es": "~4.17.15",
- marked: "~4.0.12",
- "node-diff3": "~3.1.0",
- "osm-auth": "~2.0.0",
- pannellum: "2.5.6",
- pbf: "^3.2.1",
- "polygon-clipping": "~0.15.1",
- rbush: "3.0.1",
- "whatwg-fetch": "^3.4.1",
- "which-polygon": "2.2.0"
- };
- var devDependencies = {
- "@fortawesome/fontawesome-svg-core": "~6.1.0",
- "@fortawesome/free-brands-svg-icons": "~6.1.0",
- "@fortawesome/free-regular-svg-icons": "~6.1.0",
- "@fortawesome/free-solid-svg-icons": "~6.1.0",
- "@ideditor/temaki": "~5.1.0",
- "@mapbox/maki": "^7.1.0",
- autoprefixer: "^10.0.1",
- btoa: "^1.2.1",
- chai: "^4.3.4",
- "cldr-core": "37.0.0",
- "cldr-localenames-full": "37.0.0",
- chalk: "^4.1.2",
- "concat-files": "^0.1.1",
- d3: "~7.4.4",
- "editor-layer-index": "github:osmlab/editor-layer-index#gh-pages",
- esbuild: "^0.14.17",
- "esbuild-visualizer": "^0.3.1",
- eslint: "^8.8.0",
- "fetch-mock": "^9.11.0",
- gaze: "^1.1.3",
- glob: "^8.0.3",
- happen: "^0.3.2",
- "js-yaml": "^4.0.0",
- "json-stringify-pretty-compact": "^3.0.0",
- karma: "^6.3.5",
- "karma-chrome-launcher": "^3.1.0",
- "karma-coverage": "2.1.1",
- "karma-mocha": "^2.0.1",
- "karma-remap-istanbul": "^0.6.0",
- "mapillary-js": "4.1.0",
- mapillary_sprite_source: "^1.8.0",
- minimist: "^1.2.3",
- mocha: "^9.2.0",
- "name-suggestion-index": "~6.0",
- "node-fetch": "^2.6.1",
- "npm-run-all": "^4.0.0",
- "osm-community-index": "~5.1.0",
- postcss: "^8.1.1",
- "postcss-selector-prepend": "^0.5.0",
- shelljs: "^0.8.0",
- shx: "^0.3.0",
- sinon: "^11.1.2",
- "sinon-chai": "^3.7.0",
- smash: "0.0",
- "static-server": "^2.2.1",
- "svg-sprite": "1.5.4",
- vparse: "~1.1.0"
- };
- var engines = {
- node: ">=12"
- };
- var browserslist = [
- "> 0.2%, last 6 major versions, Firefox ESR, maintained node versions"
+ // config/id.js
+ var presetsCdnUrl = "https://cdn.jsdelivr.net/npm/@openstreetmap/id-tagging-schema@{presets_version}/";
+ var ociCdnUrl = "https://cdn.jsdelivr.net/npm/osm-community-index@{version}/";
+ var wmfSitematrixCdnUrl = "https://cdn.jsdelivr.net/npm/wmf-sitematrix@{version}/";
+ var nsiCdnUrl = "https://cdn.jsdelivr.net/npm/name-suggestion-index@{version}/";
+ var osmApiConnections = [
+ {
+ url: "https://www.openstreetmap.org",
+ client_id: "0tmNTmd0Jo1dQp4AUmMBLtGiD9YpMuXzHefitcuVStc",
+ client_secret: "BTlNrNxIPitHdL4sP2clHw5KLoee9aKkA7dQbc0Bj7Q"
+ },
+ {
+ url: "https://api06.dev.openstreetmap.org",
+ client_id: "Ee1wWJ6UlpERbF6BfTNOpwn0R8k_06mvMXdDUkeHMgw",
+ client_secret: "OnfWFC-JkZNHyYdr_viNn_h_RTZXRslKcUxllOXqf5g"
+ }
];
+ var taginfoApiUrl = "https://taginfo.openstreetmap.org/api/4/";
+ var nominatimApiUrl = "https://nominatim.openstreetmap.org/";
+
+ // package.json
var package_default = {
- name,
- version,
- description,
- main,
- repository,
- homepage,
- bugs,
- keywords,
- license,
- scripts,
- dependencies,
- devDependencies,
- engines,
- browserslist
+ name: "iD",
+ version: "2.23.2",
+ description: "A friendly editor for OpenStreetMap",
+ main: "dist/iD.min.js",
+ repository: "github:openstreetmap/iD",
+ homepage: "https://github.com/openstreetmap/iD",
+ bugs: "https://github.com/openstreetmap/iD/issues",
+ keywords: [
+ "editor",
+ "openstreetmap"
+ ],
+ license: "ISC",
+ scripts: {
+ all: "run-s clean build dist",
+ build: "run-s build:css build:data build:js",
+ "build:css": "node scripts/build_css.js",
+ "build:data": "shx mkdir -p dist/data && node scripts/build_data.js",
+ "build:stats": "esbuild-visualizer --metadata dist/esbuild.json --exclude *.png --filename docs/statistics.html",
+ "build:js": "node config/esbuild.config.mjs",
+ "build:js:watch": "node config/esbuild.config.mjs --watch",
+ clean: "shx rm -f dist/esbuild.json dist/*.js dist/*.map dist/*.css dist/img/*.svg",
+ dist: "run-p dist:**",
+ "dist:mapillary": "shx mkdir -p dist/mapillary-js && shx cp -R node_modules/mapillary-js/dist/* dist/mapillary-js/",
+ "dist:pannellum": "shx mkdir -p dist/pannellum-streetside && shx cp -R node_modules/pannellum/build/* dist/pannellum-streetside/",
+ "dist:min": "node config/esbuild.config.min.mjs",
+ "dist:svg:iD": 'svg-sprite --symbol --symbol-dest . --shape-id-generator "iD-%s" --symbol-sprite dist/img/iD-sprite.svg "svg/iD-sprite/**/*.svg"',
+ "dist:svg:community": 'svg-sprite --symbol --symbol-dest . --shape-id-generator "community-%s" --symbol-sprite dist/img/community-sprite.svg node_modules/osm-community-index/dist/img/*.svg',
+ "dist:svg:fa": "svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/fa-sprite.svg svg/fontawesome/*.svg",
+ "dist:svg:maki": 'svg-sprite --symbol --symbol-dest . --shape-id-generator "maki-%s" --symbol-sprite dist/img/maki-sprite.svg node_modules/@mapbox/maki/icons/*.svg',
+ "dist:svg:mapillary:signs": "svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/mapillary-sprite.svg node_modules/mapillary_sprite_source/package_signs/*.svg",
+ "dist:svg:mapillary:objects": "svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/mapillary-object-sprite.svg node_modules/mapillary_sprite_source/package_objects/*.svg",
+ "dist:svg:temaki": 'svg-sprite --symbol --symbol-dest . --shape-id-generator "temaki-%s" --symbol-sprite dist/img/temaki-sprite.svg node_modules/@ideditor/temaki/icons/*.svg',
+ imagery: "node scripts/update_imagery.js",
+ lint: "eslint scripts test/spec modules",
+ "lint:fix": "eslint scripts test/spec modules --fix",
+ start: "run-s build:js start:server",
+ "start:watch": "run-p build:js:watch start:server",
+ "start:server": "node scripts/server.js",
+ test: "npm-run-all -s lint build test:spec",
+ "test:spec": "karma start config/karma.conf.js",
+ translations: "node scripts/update_locales.js"
+ },
+ dependencies: {
+ "@ideditor/country-coder": "~5.0.3",
+ "@ideditor/location-conflation": "~1.0.2",
+ "@mapbox/geojson-area": "^0.2.2",
+ "@mapbox/sexagesimal": "1.2.0",
+ "@mapbox/vector-tile": "^1.3.1",
+ "@tmcw/togeojson": "^5.2.1",
+ "@turf/bbox": "^6.0.0",
+ "@turf/bbox-clip": "^6.0.0",
+ "abortcontroller-polyfill": "^1.4.0",
+ "aes-js": "^3.1.2",
+ "alif-toolkit": "^1.2.9",
+ "core-js-bundle": "^3.19.0",
+ diacritics: "1.3.0",
+ "fast-deep-equal": "~3.1.1",
+ "fast-json-stable-stringify": "2.1.0",
+ "lodash-es": "~4.17.15",
+ marked: "~4.2.2",
+ "node-diff3": "~3.1.0",
+ "osm-auth": "~2.0.0",
+ pannellum: "2.5.6",
+ pbf: "^3.2.1",
+ "polygon-clipping": "~0.15.1",
+ rbush: "3.0.1",
+ "whatwg-fetch": "^3.4.1",
+ "which-polygon": "2.2.0"
+ },
+ devDependencies: {
+ "@fortawesome/fontawesome-svg-core": "~6.2.0",
+ "@fortawesome/free-brands-svg-icons": "~6.2.0",
+ "@fortawesome/free-regular-svg-icons": "~6.2.0",
+ "@fortawesome/free-solid-svg-icons": "~6.2.0",
+ "@ideditor/temaki": "~5.2.0",
+ "@mapbox/maki": "^8.0.0",
+ "@openstreetmap/id-tagging-schema": "^5.0.1",
+ autoprefixer: "^10.0.1",
+ btoa: "^1.2.1",
+ chai: "^4.3.4",
+ chalk: "^4.1.2",
+ "cldr-core": "^41.0.0",
+ "cldr-localenames-full": "^41.0.0",
+ "concat-files": "^0.1.1",
+ d3: "~7.6.1",
+ "editor-layer-index": "github:osmlab/editor-layer-index#gh-pages",
+ esbuild: "^0.15.7",
+ "esbuild-visualizer": "^0.3.1",
+ eslint: "^8.8.0",
+ "fetch-mock": "^9.11.0",
+ gaze: "^1.1.3",
+ glob: "^8.0.3",
+ happen: "^0.3.2",
+ "js-yaml": "^4.0.0",
+ "json-stringify-pretty-compact": "^3.0.0",
+ karma: "^6.3.5",
+ "karma-chrome-launcher": "^3.1.0",
+ "karma-coverage": "2.1.1",
+ "karma-mocha": "^2.0.1",
+ "karma-remap-istanbul": "^0.6.0",
+ mapillary_sprite_source: "^1.8.0",
+ "mapillary-js": "4.1.1",
+ minimist: "^1.2.3",
+ mocha: "^10.0.0",
+ "name-suggestion-index": "~6.0",
+ "node-fetch": "^2.6.1",
+ "npm-run-all": "^4.0.0",
+ "osm-community-index": "~5.3.0",
+ postcss: "^8.1.1",
+ "postcss-selector-prepend": "^0.5.0",
+ shelljs: "^0.8.0",
+ shx: "^0.3.0",
+ sinon: "^11.1.2",
+ "sinon-chai": "^3.7.0",
+ smash: "0.0",
+ "static-server": "^2.2.1",
+ "svg-sprite": "2.0.1",
+ vparse: "~1.1.0"
+ },
+ engines: {
+ node: ">=16.14"
+ },
+ browserslist: [
+ "> 0.2%, last 6 major versions, Firefox ESR, maintained node versions"
+ ]
};
// modules/core/file_fetcher.js
@@ -22380,30 +22524,32 @@
function coreFileFetcher() {
const ociVersion = package_default.dependencies["osm-community-index"] || package_default.devDependencies["osm-community-index"];
const v = (0, import_vparse.default)(ociVersion);
- const vMinor = `${v.major}.${v.minor}`;
+ const ociVersionMinor = `${v.major}.${v.minor}`;
+ const presetsVersion = package_default.devDependencies["@openstreetmap/id-tagging-schema"];
let _this = {};
let _inflight4 = {};
let _fileMap = {
"address_formats": "data/address_formats.min.json",
- "deprecated": "https://cdn.jsdelivr.net/npm/@openstreetmap/id-tagging-schema@3/dist/deprecated.min.json",
- "discarded": "https://cdn.jsdelivr.net/npm/@openstreetmap/id-tagging-schema@3/dist/discarded.min.json",
"imagery": "data/imagery.min.json",
"intro_graph": "data/intro_graph.min.json",
"keepRight": "data/keepRight.min.json",
"languages": "data/languages.min.json",
"locales": "locales/index.min.json",
- "oci_defaults": `https://cdn.jsdelivr.net/npm/osm-community-index@${vMinor}/dist/defaults.min.json`,
- "oci_features": `https://cdn.jsdelivr.net/npm/osm-community-index@${vMinor}/dist/featureCollection.min.json`,
- "oci_resources": `https://cdn.jsdelivr.net/npm/osm-community-index@${vMinor}/dist/resources.min.json`,
- "preset_categories": "https://cdn.jsdelivr.net/npm/@openstreetmap/id-tagging-schema@3/dist/preset_categories.min.json",
- "preset_defaults": "https://cdn.jsdelivr.net/npm/@openstreetmap/id-tagging-schema@3/dist/preset_defaults.min.json",
- "preset_fields": "https://cdn.jsdelivr.net/npm/@openstreetmap/id-tagging-schema@3/dist/fields.min.json",
- "preset_presets": "https://cdn.jsdelivr.net/npm/@openstreetmap/id-tagging-schema@3/dist/presets.min.json",
"phone_formats": "data/phone_formats.min.json",
"qa_data": "data/qa_data.min.json",
"shortcuts": "data/shortcuts.min.json",
"territory_languages": "data/territory_languages.min.json",
- "wmf_sitematrix": "https://cdn.jsdelivr.net/npm/wmf-sitematrix@0.1/wikipedia.min.json"
+ "oci_defaults": ociCdnUrl.replace("{version}", ociVersionMinor) + "dist/defaults.min.json",
+ "oci_features": ociCdnUrl.replace("{version}", ociVersionMinor) + "dist/featureCollection.min.json",
+ "oci_resources": ociCdnUrl.replace("{version}", ociVersionMinor) + "dist/resources.min.json",
+ "presets_package": presetsCdnUrl.replace("{presets_version}", presetsVersion) + "package.json",
+ "deprecated": presetsCdnUrl + "dist/deprecated.min.json",
+ "discarded": presetsCdnUrl + "dist/discarded.min.json",
+ "preset_categories": presetsCdnUrl + "dist/preset_categories.min.json",
+ "preset_defaults": presetsCdnUrl + "dist/preset_defaults.min.json",
+ "preset_fields": presetsCdnUrl + "dist/fields.min.json",
+ "preset_presets": presetsCdnUrl + "dist/presets.min.json",
+ "wmf_sitematrix": wmfSitematrixCdnUrl.replace("{version}", "0.1") + "wikipedia.min.json"
};
let _cachedData = {};
_this.cache = () => _cachedData;
@@ -22416,6 +22562,16 @@
if (!url) {
return Promise.reject(`Unknown data file for "${which}"`);
}
+ if (url.includes("{presets_version}")) {
+ return _this.get("presets_package").then((result) => {
+ const presetsVersion2 = result.version;
+ return getUrl(url.replace("{presets_version}", presetsVersion2), which);
+ });
+ } else {
+ return getUrl(url);
+ }
+ };
+ function getUrl(url, which) {
let prom = _inflight4[url];
if (!prom) {
_inflight4[url] = prom = fetch(url).then((response) => {
@@ -22438,7 +22594,7 @@
});
}
return prom;
- };
+ }
_this.fileMap = function(val) {
if (!arguments.length)
return _fileMap;
@@ -23171,8 +23327,8 @@
}
return featuresByCode[stringID] || null;
}
- function smallestFeaturesForBbox(bbox) {
- return whichPolygonGetter.bbox(bbox).map((props) => featuresByCode[props.id]);
+ function smallestFeaturesForBbox(bbox2) {
+ return whichPolygonGetter.bbox(bbox2).map((props) => featuresByCode[props.id]);
}
function smallestOrMatchingFeature(query) {
if (typeof query === "object") {
@@ -23464,60 +23620,495 @@
return aRank > bRank ? 1 : aRank < bRank ? -1 : a.id.localeCompare(b.id);
}
- // modules/core/locations.js
+ // modules/core/LocationManager.js
var import_which_polygon2 = __toESM(require_which_polygon());
var import_geojson_area2 = __toESM(require_geojson_area());
+ var _loco = new location_conflation_default();
+ var LocationManager = class {
+ constructor() {
+ this._wp = null;
+ this._resolved = /* @__PURE__ */ new Map();
+ this._knownLocationSets = /* @__PURE__ */ new Map();
+ this._locationIncludedIn = /* @__PURE__ */ new Map();
+ this._locationExcludedIn = /* @__PURE__ */ new Map();
+ const world = { locationSet: { include: ["Q2"] } };
+ this._resolveLocationSet(world);
+ this._rebuildIndex();
+ }
+ _validateLocationSet(obj) {
+ if (obj.locationSetID)
+ return;
+ try {
+ let locationSet = obj.locationSet;
+ if (!locationSet) {
+ throw new Error("object missing locationSet property");
+ }
+ if (!locationSet.include) {
+ locationSet.include = ["Q2"];
+ }
+ const locationSetID = _loco.validateLocationSet(locationSet).id;
+ obj.locationSetID = locationSetID;
+ if (this._knownLocationSets.has(locationSetID))
+ return;
+ let area = 0;
+ (locationSet.include || []).forEach((location) => {
+ const locationID = _loco.validateLocation(location).id;
+ let geojson = this._resolved.get(locationID);
+ if (!geojson) {
+ geojson = _loco.resolveLocation(location).feature;
+ this._resolved.set(locationID, geojson);
+ }
+ area += geojson.properties.area;
+ let s = this._locationIncludedIn.get(locationID);
+ if (!s) {
+ s = /* @__PURE__ */ new Set();
+ this._locationIncludedIn.set(locationID, s);
+ }
+ s.add(locationSetID);
+ });
+ (locationSet.exclude || []).forEach((location) => {
+ const locationID = _loco.validateLocation(location).id;
+ let geojson = this._resolved.get(locationID);
+ if (!geojson) {
+ geojson = _loco.resolveLocation(location).feature;
+ this._resolved.set(locationID, geojson);
+ }
+ area -= geojson.properties.area;
+ let s = this._locationExcludedIn.get(locationID);
+ if (!s) {
+ s = /* @__PURE__ */ new Set();
+ this._locationExcludedIn.set(locationID, s);
+ }
+ s.add(locationSetID);
+ });
+ this._knownLocationSets.set(locationSetID, area);
+ } catch (err) {
+ obj.locationSet = { include: ["Q2"] };
+ obj.locationSetID = "+[Q2]";
+ }
+ }
+ _resolveLocationSet(obj) {
+ this._validateLocationSet(obj);
+ if (this._resolved.has(obj.locationSetID))
+ return;
+ try {
+ const result = _loco.resolveLocationSet(obj.locationSet);
+ const locationSetID = result.id;
+ obj.locationSetID = locationSetID;
+ if (!result.feature.geometry.coordinates.length || !result.feature.properties.area) {
+ throw new Error(`locationSet ${locationSetID} resolves to an empty feature.`);
+ }
+ let geojson = JSON.parse(JSON.stringify(result.feature));
+ geojson.id = locationSetID;
+ geojson.properties.id = locationSetID;
+ this._resolved.set(locationSetID, geojson);
+ } catch (err) {
+ obj.locationSet = { include: ["Q2"] };
+ obj.locationSetID = "+[Q2]";
+ }
+ }
+ _rebuildIndex() {
+ this._wp = (0, import_which_polygon2.default)({ features: [...this._resolved.values()] });
+ }
+ mergeCustomGeoJSON(fc) {
+ if (!fc || fc.type !== "FeatureCollection" || !Array.isArray(fc.features))
+ return;
+ fc.features.forEach((feature3) => {
+ feature3.properties = feature3.properties || {};
+ let props = feature3.properties;
+ let id2 = feature3.id || props.id;
+ if (!id2 || !/^\S+\.geojson$/i.test(id2))
+ return;
+ id2 = id2.toLowerCase();
+ feature3.id = id2;
+ props.id = id2;
+ if (!props.area) {
+ const area = import_geojson_area2.default.geometry(feature3.geometry) / 1e6;
+ props.area = Number(area.toFixed(2));
+ }
+ _loco._cache[id2] = feature3;
+ });
+ }
+ mergeLocationSets(objects) {
+ if (!Array.isArray(objects))
+ return Promise.reject("nothing to do");
+ objects.forEach((obj) => this._validateLocationSet(obj));
+ this._rebuildIndex();
+ return Promise.resolve(objects);
+ }
+ locationSetID(locationSet) {
+ let locationSetID;
+ try {
+ locationSetID = _loco.validateLocationSet(locationSet).id;
+ } catch (err) {
+ locationSetID = "+[Q2]";
+ }
+ return locationSetID;
+ }
+ feature(locationSetID = "+[Q2]") {
+ const feature3 = this._resolved.get(locationSetID);
+ return feature3 || this._resolved.get("+[Q2]");
+ }
+ locationSetsAt(loc) {
+ let result = {};
+ const hits = this._wp(loc, true) || [];
+ const thiz = this;
+ hits.forEach((prop) => {
+ if (prop.id[0] !== "+")
+ return;
+ const locationSetID = prop.id;
+ const area = thiz._knownLocationSets.get(locationSetID);
+ if (area) {
+ result[locationSetID] = area;
+ }
+ });
+ hits.forEach((prop) => {
+ if (prop.id[0] === "+")
+ return;
+ const locationID = prop.id;
+ const included = thiz._locationIncludedIn.get(locationID);
+ (included || []).forEach((locationSetID) => {
+ const area = thiz._knownLocationSets.get(locationSetID);
+ if (area) {
+ result[locationSetID] = area;
+ }
+ });
+ });
+ hits.forEach((prop) => {
+ if (prop.id[0] === "+")
+ return;
+ const locationID = prop.id;
+ const excluded = thiz._locationExcludedIn.get(locationID);
+ (excluded || []).forEach((locationSetID) => {
+ delete result[locationSetID];
+ });
+ });
+ return result;
+ }
+ loco() {
+ return _loco;
+ }
+ };
+ var _sharedLocationManager = new LocationManager();
- // modules/util/aes.js
- var import_aes_js = __toESM(require_aes_js());
- var DEFAULT_128 = [250, 157, 60, 79, 142, 134, 229, 129, 138, 126, 210, 129, 29, 71, 160, 208];
- function utilAesEncrypt(text2, key) {
- key = key || DEFAULT_128;
- const textBytes = import_aes_js.default.utils.utf8.toBytes(text2);
- const aesCtr = new import_aes_js.default.ModeOfOperation.ctr(key);
- const encryptedBytes = aesCtr.encrypt(textBytes);
- const encryptedHex = import_aes_js.default.utils.hex.fromBytes(encryptedBytes);
- return encryptedHex;
+ // node_modules/lodash-es/_freeGlobal.js
+ var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
+ var freeGlobal_default = freeGlobal;
+
+ // node_modules/lodash-es/_root.js
+ var freeSelf = typeof self == "object" && self && self.Object === Object && self;
+ var root2 = freeGlobal_default || freeSelf || Function("return this")();
+ var root_default = root2;
+
+ // node_modules/lodash-es/_Symbol.js
+ var Symbol2 = root_default.Symbol;
+ var Symbol_default = Symbol2;
+
+ // node_modules/lodash-es/_getRawTag.js
+ var objectProto = Object.prototype;
+ var hasOwnProperty = objectProto.hasOwnProperty;
+ var nativeObjectToString = objectProto.toString;
+ var symToStringTag = Symbol_default ? Symbol_default.toStringTag : void 0;
+ function getRawTag(value) {
+ var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
+ try {
+ value[symToStringTag] = void 0;
+ var unmasked = true;
+ } catch (e) {
+ }
+ var result = nativeObjectToString.call(value);
+ if (unmasked) {
+ if (isOwn) {
+ value[symToStringTag] = tag;
+ } else {
+ delete value[symToStringTag];
+ }
+ }
+ return result;
}
- function utilAesDecrypt(encryptedHex, key) {
- key = key || DEFAULT_128;
- const encryptedBytes = import_aes_js.default.utils.hex.toBytes(encryptedHex);
- const aesCtr = new import_aes_js.default.ModeOfOperation.ctr(key);
- const decryptedBytes = aesCtr.decrypt(encryptedBytes);
- const text2 = import_aes_js.default.utils.utf8.fromBytes(decryptedBytes);
- return text2;
+ var getRawTag_default = getRawTag;
+
+ // node_modules/lodash-es/_objectToString.js
+ var objectProto2 = Object.prototype;
+ var nativeObjectToString2 = objectProto2.toString;
+ function objectToString(value) {
+ return nativeObjectToString2.call(value);
}
+ var objectToString_default = objectToString;
- // modules/util/clean_tags.js
- function utilCleanTags(tags) {
- var out = {};
- for (var k in tags) {
- if (!k)
- continue;
- var v = tags[k];
- if (v !== void 0) {
- out[k] = cleanValue(k, v);
+ // node_modules/lodash-es/_baseGetTag.js
+ var nullTag = "[object Null]";
+ var undefinedTag = "[object Undefined]";
+ var symToStringTag2 = Symbol_default ? Symbol_default.toStringTag : void 0;
+ function baseGetTag(value) {
+ if (value == null) {
+ return value === void 0 ? undefinedTag : nullTag;
+ }
+ return symToStringTag2 && symToStringTag2 in Object(value) ? getRawTag_default(value) : objectToString_default(value);
+ }
+ var baseGetTag_default = baseGetTag;
+
+ // node_modules/lodash-es/isObjectLike.js
+ function isObjectLike(value) {
+ return value != null && typeof value == "object";
+ }
+ var isObjectLike_default = isObjectLike;
+
+ // node_modules/lodash-es/isSymbol.js
+ var symbolTag = "[object Symbol]";
+ function isSymbol(value) {
+ return typeof value == "symbol" || isObjectLike_default(value) && baseGetTag_default(value) == symbolTag;
+ }
+ var isSymbol_default = isSymbol;
+
+ // node_modules/lodash-es/_arrayMap.js
+ function arrayMap(array2, iteratee) {
+ var index = -1, length = array2 == null ? 0 : array2.length, result = Array(length);
+ while (++index < length) {
+ result[index] = iteratee(array2[index], index, array2);
+ }
+ return result;
+ }
+ var arrayMap_default = arrayMap;
+
+ // node_modules/lodash-es/isArray.js
+ var isArray = Array.isArray;
+ var isArray_default = isArray;
+
+ // node_modules/lodash-es/_baseToString.js
+ var INFINITY = 1 / 0;
+ var symbolProto = Symbol_default ? Symbol_default.prototype : void 0;
+ var symbolToString = symbolProto ? symbolProto.toString : void 0;
+ function baseToString(value) {
+ if (typeof value == "string") {
+ return value;
+ }
+ if (isArray_default(value)) {
+ return arrayMap_default(value, baseToString) + "";
+ }
+ if (isSymbol_default(value)) {
+ return symbolToString ? symbolToString.call(value) : "";
+ }
+ var result = value + "";
+ return result == "0" && 1 / value == -INFINITY ? "-0" : result;
+ }
+ var baseToString_default = baseToString;
+
+ // node_modules/lodash-es/_trimmedEndIndex.js
+ var reWhitespace = /\s/;
+ function trimmedEndIndex(string) {
+ var index = string.length;
+ while (index-- && reWhitespace.test(string.charAt(index))) {
+ }
+ return index;
+ }
+ var trimmedEndIndex_default = trimmedEndIndex;
+
+ // node_modules/lodash-es/_baseTrim.js
+ var reTrimStart = /^\s+/;
+ function baseTrim(string) {
+ return string ? string.slice(0, trimmedEndIndex_default(string) + 1).replace(reTrimStart, "") : string;
+ }
+ var baseTrim_default = baseTrim;
+
+ // node_modules/lodash-es/isObject.js
+ function isObject(value) {
+ var type3 = typeof value;
+ return value != null && (type3 == "object" || type3 == "function");
+ }
+ var isObject_default = isObject;
+
+ // node_modules/lodash-es/toNumber.js
+ var NAN = 0 / 0;
+ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
+ var reIsBinary = /^0b[01]+$/i;
+ var reIsOctal = /^0o[0-7]+$/i;
+ var freeParseInt = parseInt;
+ function toNumber(value) {
+ if (typeof value == "number") {
+ return value;
+ }
+ if (isSymbol_default(value)) {
+ return NAN;
+ }
+ if (isObject_default(value)) {
+ var other = typeof value.valueOf == "function" ? value.valueOf() : value;
+ value = isObject_default(other) ? other + "" : other;
+ }
+ if (typeof value != "string") {
+ return value === 0 ? value : +value;
+ }
+ value = baseTrim_default(value);
+ var isBinary = reIsBinary.test(value);
+ return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
+ }
+ var toNumber_default = toNumber;
+
+ // node_modules/lodash-es/toString.js
+ function toString(value) {
+ return value == null ? "" : baseToString_default(value);
+ }
+ var toString_default = toString;
+
+ // node_modules/lodash-es/_basePropertyOf.js
+ function basePropertyOf(object) {
+ return function(key) {
+ return object == null ? void 0 : object[key];
+ };
+ }
+ var basePropertyOf_default = basePropertyOf;
+
+ // node_modules/lodash-es/now.js
+ var now2 = function() {
+ return root_default.Date.now();
+ };
+ var now_default = now2;
+
+ // node_modules/lodash-es/debounce.js
+ var FUNC_ERROR_TEXT = "Expected a function";
+ var nativeMax = Math.max;
+ var nativeMin = Math.min;
+ function debounce(func, wait, options2) {
+ var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
+ if (typeof func != "function") {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ wait = toNumber_default(wait) || 0;
+ if (isObject_default(options2)) {
+ leading = !!options2.leading;
+ maxing = "maxWait" in options2;
+ maxWait = maxing ? nativeMax(toNumber_default(options2.maxWait) || 0, wait) : maxWait;
+ trailing = "trailing" in options2 ? !!options2.trailing : trailing;
+ }
+ function invokeFunc(time) {
+ var args = lastArgs, thisArg = lastThis;
+ lastArgs = lastThis = void 0;
+ lastInvokeTime = time;
+ result = func.apply(thisArg, args);
+ return result;
+ }
+ function leadingEdge(time) {
+ lastInvokeTime = time;
+ timerId = setTimeout(timerExpired, wait);
+ return leading ? invokeFunc(time) : result;
+ }
+ function remainingWait(time) {
+ var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
+ return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
+ }
+ function shouldInvoke(time) {
+ var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
+ return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
+ }
+ function timerExpired() {
+ var time = now_default();
+ if (shouldInvoke(time)) {
+ return trailingEdge(time);
}
+ timerId = setTimeout(timerExpired, remainingWait(time));
}
- return out;
- function cleanValue(k2, v2) {
- function keepSpaces(k3) {
- return /_hours|_times|:conditional$/.test(k3);
+ function trailingEdge(time) {
+ timerId = void 0;
+ if (trailing && lastArgs) {
+ return invokeFunc(time);
}
- function skip(k3) {
- return /^(description|note|fixme)$/.test(k3);
+ lastArgs = lastThis = void 0;
+ return result;
+ }
+ function cancel() {
+ if (timerId !== void 0) {
+ clearTimeout(timerId);
}
- if (skip(k2))
- return v2;
- var cleaned = v2.split(";").map(function(s) {
- return s.trim();
- }).join(keepSpaces(k2) ? "; " : ";");
- if (k2.indexOf("website") !== -1 || k2.indexOf("email") !== -1 || cleaned.indexOf("http") === 0) {
- cleaned = cleaned.replace(/[\u200B-\u200F\uFEFF]/g, "");
+ lastInvokeTime = 0;
+ lastArgs = lastCallTime = lastThis = timerId = void 0;
+ }
+ function flush() {
+ return timerId === void 0 ? result : trailingEdge(now_default());
+ }
+ function debounced() {
+ var time = now_default(), isInvoking = shouldInvoke(time);
+ lastArgs = arguments;
+ lastThis = this;
+ lastCallTime = time;
+ if (isInvoking) {
+ if (timerId === void 0) {
+ return leadingEdge(lastCallTime);
+ }
+ if (maxing) {
+ clearTimeout(timerId);
+ timerId = setTimeout(timerExpired, wait);
+ return invokeFunc(lastCallTime);
+ }
}
- return cleaned;
+ if (timerId === void 0) {
+ timerId = setTimeout(timerExpired, wait);
+ }
+ return result;
}
+ debounced.cancel = cancel;
+ debounced.flush = flush;
+ return debounced;
+ }
+ var debounce_default = debounce;
+
+ // node_modules/lodash-es/_escapeHtmlChar.js
+ var htmlEscapes = {
+ "&": "&",
+ "<": "<",
+ ">": ">",
+ '"': """,
+ "'": "'"
+ };
+ var escapeHtmlChar = basePropertyOf_default(htmlEscapes);
+ var escapeHtmlChar_default = escapeHtmlChar;
+
+ // node_modules/lodash-es/escape.js
+ var reUnescapedHtml = /[&<>"']/g;
+ var reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
+ function escape2(string) {
+ string = toString_default(string);
+ return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar_default) : string;
+ }
+ var escape_default = escape2;
+
+ // node_modules/lodash-es/throttle.js
+ var FUNC_ERROR_TEXT2 = "Expected a function";
+ function throttle(func, wait, options2) {
+ var leading = true, trailing = true;
+ if (typeof func != "function") {
+ throw new TypeError(FUNC_ERROR_TEXT2);
+ }
+ if (isObject_default(options2)) {
+ leading = "leading" in options2 ? !!options2.leading : leading;
+ trailing = "trailing" in options2 ? !!options2.trailing : trailing;
+ }
+ return debounce_default(func, wait, {
+ "leading": leading,
+ "maxWait": wait,
+ "trailing": trailing
+ });
+ }
+ var throttle_default = throttle;
+
+ // node_modules/lodash-es/_unescapeHtmlChar.js
+ var htmlUnescapes = {
+ "&": "&",
+ "<": "<",
+ ">": ">",
+ """: '"',
+ "'": "'"
+ };
+ var unescapeHtmlChar = basePropertyOf_default(htmlUnescapes);
+ var unescapeHtmlChar_default = unescapeHtmlChar;
+
+ // node_modules/lodash-es/unescape.js
+ var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g;
+ var reHasEscapedHtml = RegExp(reEscapedHtml.source);
+ function unescape2(string) {
+ string = toString_default(string);
+ return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar_default) : string;
}
+ var unescape_default = unescape2;
// modules/util/detect.js
var _detected;
@@ -23585,9 +24176,11 @@
_detected.platform = "Unknown";
}
_detected.isMobileWebKit = (/\b(iPad|iPhone|iPod)\b/.test(ua) || navigator.platform === "MacIntel" && "maxTouchPoints" in navigator && navigator.maxTouchPoints > 1) && /WebKit/.test(ua) && !/Edge/.test(ua) && !window.MSStream;
- _detected.browserLocales = Array.from(new Set([navigator.language].concat(navigator.languages || []).concat([
- navigator.userLanguage
- ]).filter(Boolean)));
+ _detected.browserLocales = Array.from(new Set(
+ [navigator.language].concat(navigator.languages || []).concat([
+ navigator.userLanguage
+ ]).filter(Boolean)
+ ));
const loc = window.top.location;
let origin = loc.origin;
if (!origin) {
@@ -23597,6 +24190,57 @@
return _detected;
}
+ // modules/util/aes.js
+ var import_aes_js = __toESM(require_aes_js());
+ var DEFAULT_128 = [250, 157, 60, 79, 142, 134, 229, 129, 138, 126, 210, 129, 29, 71, 160, 208];
+ function utilAesEncrypt(text2, key) {
+ key = key || DEFAULT_128;
+ const textBytes = import_aes_js.default.utils.utf8.toBytes(text2);
+ const aesCtr = new import_aes_js.default.ModeOfOperation.ctr(key);
+ const encryptedBytes = aesCtr.encrypt(textBytes);
+ const encryptedHex = import_aes_js.default.utils.hex.fromBytes(encryptedBytes);
+ return encryptedHex;
+ }
+ function utilAesDecrypt(encryptedHex, key) {
+ key = key || DEFAULT_128;
+ const encryptedBytes = import_aes_js.default.utils.hex.toBytes(encryptedHex);
+ const aesCtr = new import_aes_js.default.ModeOfOperation.ctr(key);
+ const decryptedBytes = aesCtr.decrypt(encryptedBytes);
+ const text2 = import_aes_js.default.utils.utf8.fromBytes(decryptedBytes);
+ return text2;
+ }
+
+ // modules/util/clean_tags.js
+ function utilCleanTags(tags) {
+ var out = {};
+ for (var k in tags) {
+ if (!k)
+ continue;
+ var v = tags[k];
+ if (v !== void 0) {
+ out[k] = cleanValue(k, v);
+ }
+ }
+ return out;
+ function cleanValue(k2, v2) {
+ function keepSpaces(k3) {
+ return /_hours|_times|:conditional$/.test(k3);
+ }
+ function skip(k3) {
+ return /^(description|note|fixme)$/.test(k3);
+ }
+ if (skip(k2))
+ return v2;
+ var cleaned = v2.split(";").map(function(s) {
+ return s.trim();
+ }).join(keepSpaces(k2) ? "; " : ";");
+ if (k2.indexOf("website") !== -1 || k2.indexOf("email") !== -1 || cleaned.indexOf("http") === 0) {
+ cleaned = cleaned.replace(/[\u200B-\u200F\uFEFF]/g, "");
+ }
+ return cleaned;
+ }
+ }
+
// modules/util/get_set_value.js
function utilGetSetValue(selection2, value) {
function d3_selection_value(value2) {
@@ -24041,18 +24685,18 @@
}
// modules/util/session_mutex.js
- function utilSessionMutex(name2) {
+ function utilSessionMutex(name) {
var mutex = {};
var intervalID;
function renew() {
var expires = new Date();
expires.setSeconds(expires.getSeconds() + 5);
- document.cookie = name2 + "=1; expires=" + expires.toUTCString() + "; sameSite=strict";
+ document.cookie = name + "=1; expires=" + expires.toUTCString() + "; sameSite=strict";
}
mutex.lock = function() {
if (intervalID)
return true;
- var cookie = document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + name2 + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1");
+ var cookie = document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + name + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1");
if (cookie)
return false;
renew();
@@ -24062,7 +24706,7 @@
mutex.unlock = function() {
if (!intervalID)
return;
- document.cookie = name2 + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; sameSite=strict";
+ document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; sameSite=strict";
clearInterval(intervalID);
intervalID = null;
};
@@ -24108,8 +24752,14 @@
(_translate[0] - _scale / 2) / k,
(_translate[1] - _scale / 2) / k
];
- var cols = range(clamp3(Math.floor(-origin[0]) - _margin, tileMin, tileMax + 1), clamp3(Math.ceil(_size[0] / k - origin[0]) + _margin, tileMin, tileMax + 1));
- var rows = range(clamp3(Math.floor(-origin[1]) - _margin, tileMin, tileMax + 1), clamp3(Math.ceil(_size[1] / k - origin[1]) + _margin, tileMin, tileMax + 1));
+ var cols = range(
+ clamp3(Math.floor(-origin[0]) - _margin, tileMin, tileMax + 1),
+ clamp3(Math.ceil(_size[0] / k - origin[0]) + _margin, tileMin, tileMax + 1)
+ );
+ var rows = range(
+ clamp3(Math.floor(-origin[1]) - _margin, tileMin, tileMax + 1),
+ clamp3(Math.ceil(_size[1] / k - origin[1]) + _margin, tileMin, tileMax + 1)
+ );
var tiles = [];
for (var i2 = 0; i2 < rows.length; i2++) {
var y = rows[i2];
@@ -24143,7 +24793,10 @@
return {
id: tile.toString(),
xyz: tile,
- extent: geoExtent(projection2.invert([x, y + ts]), projection2.invert([x + ts, y]))
+ extent: geoExtent(
+ projection2.invert([x, y + ts]),
+ projection2.invert([x + ts, y])
+ )
};
}).filter(Boolean);
};
@@ -24220,435 +24873,6 @@
});
}
- // modules/core/locations.js
- var _mainLocations = coreLocations();
- function coreLocations() {
- let _this = {};
- let _resolvedFeatures = {};
- let _loco = new location_conflation_default();
- let _wp;
- const world = { locationSet: { include: ["Q2"] } };
- resolveLocationSet(world);
- rebuildIndex();
- let _queue = [];
- let _deferred2 = /* @__PURE__ */ new Set();
- let _inProcess;
- function processQueue() {
- if (!_queue.length)
- return Promise.resolve();
- const chunk = _queue.pop();
- return new Promise((resolvePromise) => {
- const handle = window.requestIdleCallback(() => {
- _deferred2.delete(handle);
- chunk.forEach(resolveLocationSet);
- resolvePromise();
- });
- _deferred2.add(handle);
- }).then(() => processQueue());
- }
- function resolveLocationSet(obj) {
- if (obj.locationSetID)
- return;
- try {
- let locationSet = obj.locationSet;
- if (!locationSet) {
- throw new Error("object missing locationSet property");
- }
- if (!locationSet.include) {
- locationSet.include = ["Q2"];
- }
- const resolved = _loco.resolveLocationSet(locationSet);
- const locationSetID = resolved.id;
- obj.locationSetID = locationSetID;
- if (!resolved.feature.geometry.coordinates.length || !resolved.feature.properties.area) {
- throw new Error(`locationSet ${locationSetID} resolves to an empty feature.`);
- }
- if (!_resolvedFeatures[locationSetID]) {
- let feature3 = JSON.parse(JSON.stringify(resolved.feature));
- feature3.id = locationSetID;
- feature3.properties.id = locationSetID;
- _resolvedFeatures[locationSetID] = feature3;
- }
- } catch (err) {
- obj.locationSet = { include: ["Q2"] };
- obj.locationSetID = "+[Q2]";
- }
- }
- function rebuildIndex() {
- _wp = (0, import_which_polygon2.default)({ features: Object.values(_resolvedFeatures) });
- }
- _this.mergeCustomGeoJSON = (fc) => {
- if (fc && fc.type === "FeatureCollection" && Array.isArray(fc.features)) {
- fc.features.forEach((feature3) => {
- feature3.properties = feature3.properties || {};
- let props = feature3.properties;
- let id2 = feature3.id || props.id;
- if (!id2 || !/^\S+\.geojson$/i.test(id2))
- return;
- id2 = id2.toLowerCase();
- feature3.id = id2;
- props.id = id2;
- if (!props.area) {
- const area = import_geojson_area2.default.geometry(feature3.geometry) / 1e6;
- props.area = Number(area.toFixed(2));
- }
- _loco._cache[id2] = feature3;
- });
- }
- };
- _this.mergeLocationSets = (objects) => {
- if (!Array.isArray(objects))
- return Promise.reject("nothing to do");
- _queue = _queue.concat(utilArrayChunk(objects, 200));
- if (!_inProcess) {
- _inProcess = processQueue().then(() => {
- rebuildIndex();
- _inProcess = null;
- return objects;
- });
- }
- return _inProcess;
- };
- _this.locationSetID = (locationSet) => {
- let locationSetID;
- try {
- locationSetID = _loco.validateLocationSet(locationSet).id;
- } catch (err) {
- locationSetID = "+[Q2]";
- }
- return locationSetID;
- };
- _this.feature = (locationSetID) => _resolvedFeatures[locationSetID] || _resolvedFeatures["+[Q2]"];
- _this.locationsAt = (loc) => {
- let result = {};
- (_wp(loc, true) || []).forEach((prop) => result[prop.id] = prop.area);
- return result;
- };
- _this.query = (loc, multi) => _wp(loc, multi);
- _this.loco = () => _loco;
- _this.wp = () => _wp;
- return _this;
- }
-
- // node_modules/lodash-es/_freeGlobal.js
- var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
- var freeGlobal_default = freeGlobal;
-
- // node_modules/lodash-es/_root.js
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
- var root2 = freeGlobal_default || freeSelf || Function("return this")();
- var root_default = root2;
-
- // node_modules/lodash-es/_Symbol.js
- var Symbol2 = root_default.Symbol;
- var Symbol_default = Symbol2;
-
- // node_modules/lodash-es/_getRawTag.js
- var objectProto = Object.prototype;
- var hasOwnProperty = objectProto.hasOwnProperty;
- var nativeObjectToString = objectProto.toString;
- var symToStringTag = Symbol_default ? Symbol_default.toStringTag : void 0;
- function getRawTag(value) {
- var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
- try {
- value[symToStringTag] = void 0;
- var unmasked = true;
- } catch (e) {
- }
- var result = nativeObjectToString.call(value);
- if (unmasked) {
- if (isOwn) {
- value[symToStringTag] = tag;
- } else {
- delete value[symToStringTag];
- }
- }
- return result;
- }
- var getRawTag_default = getRawTag;
-
- // node_modules/lodash-es/_objectToString.js
- var objectProto2 = Object.prototype;
- var nativeObjectToString2 = objectProto2.toString;
- function objectToString(value) {
- return nativeObjectToString2.call(value);
- }
- var objectToString_default = objectToString;
-
- // node_modules/lodash-es/_baseGetTag.js
- var nullTag = "[object Null]";
- var undefinedTag = "[object Undefined]";
- var symToStringTag2 = Symbol_default ? Symbol_default.toStringTag : void 0;
- function baseGetTag(value) {
- if (value == null) {
- return value === void 0 ? undefinedTag : nullTag;
- }
- return symToStringTag2 && symToStringTag2 in Object(value) ? getRawTag_default(value) : objectToString_default(value);
- }
- var baseGetTag_default = baseGetTag;
-
- // node_modules/lodash-es/isObjectLike.js
- function isObjectLike(value) {
- return value != null && typeof value == "object";
- }
- var isObjectLike_default = isObjectLike;
-
- // node_modules/lodash-es/isSymbol.js
- var symbolTag = "[object Symbol]";
- function isSymbol(value) {
- return typeof value == "symbol" || isObjectLike_default(value) && baseGetTag_default(value) == symbolTag;
- }
- var isSymbol_default = isSymbol;
-
- // node_modules/lodash-es/_arrayMap.js
- function arrayMap(array2, iteratee) {
- var index = -1, length = array2 == null ? 0 : array2.length, result = Array(length);
- while (++index < length) {
- result[index] = iteratee(array2[index], index, array2);
- }
- return result;
- }
- var arrayMap_default = arrayMap;
-
- // node_modules/lodash-es/isArray.js
- var isArray = Array.isArray;
- var isArray_default = isArray;
-
- // node_modules/lodash-es/_baseToString.js
- var INFINITY = 1 / 0;
- var symbolProto = Symbol_default ? Symbol_default.prototype : void 0;
- var symbolToString = symbolProto ? symbolProto.toString : void 0;
- function baseToString(value) {
- if (typeof value == "string") {
- return value;
- }
- if (isArray_default(value)) {
- return arrayMap_default(value, baseToString) + "";
- }
- if (isSymbol_default(value)) {
- return symbolToString ? symbolToString.call(value) : "";
- }
- var result = value + "";
- return result == "0" && 1 / value == -INFINITY ? "-0" : result;
- }
- var baseToString_default = baseToString;
-
- // node_modules/lodash-es/_trimmedEndIndex.js
- var reWhitespace = /\s/;
- function trimmedEndIndex(string) {
- var index = string.length;
- while (index-- && reWhitespace.test(string.charAt(index))) {
- }
- return index;
- }
- var trimmedEndIndex_default = trimmedEndIndex;
-
- // node_modules/lodash-es/_baseTrim.js
- var reTrimStart = /^\s+/;
- function baseTrim(string) {
- return string ? string.slice(0, trimmedEndIndex_default(string) + 1).replace(reTrimStart, "") : string;
- }
- var baseTrim_default = baseTrim;
-
- // node_modules/lodash-es/isObject.js
- function isObject(value) {
- var type3 = typeof value;
- return value != null && (type3 == "object" || type3 == "function");
- }
- var isObject_default = isObject;
-
- // node_modules/lodash-es/toNumber.js
- var NAN = 0 / 0;
- var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
- var reIsBinary = /^0b[01]+$/i;
- var reIsOctal = /^0o[0-7]+$/i;
- var freeParseInt = parseInt;
- function toNumber(value) {
- if (typeof value == "number") {
- return value;
- }
- if (isSymbol_default(value)) {
- return NAN;
- }
- if (isObject_default(value)) {
- var other = typeof value.valueOf == "function" ? value.valueOf() : value;
- value = isObject_default(other) ? other + "" : other;
- }
- if (typeof value != "string") {
- return value === 0 ? value : +value;
- }
- value = baseTrim_default(value);
- var isBinary = reIsBinary.test(value);
- return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
- }
- var toNumber_default = toNumber;
-
- // node_modules/lodash-es/toString.js
- function toString(value) {
- return value == null ? "" : baseToString_default(value);
- }
- var toString_default = toString;
-
- // node_modules/lodash-es/_basePropertyOf.js
- function basePropertyOf(object) {
- return function(key) {
- return object == null ? void 0 : object[key];
- };
- }
- var basePropertyOf_default = basePropertyOf;
-
- // node_modules/lodash-es/now.js
- var now2 = function() {
- return root_default.Date.now();
- };
- var now_default = now2;
-
- // node_modules/lodash-es/debounce.js
- var FUNC_ERROR_TEXT = "Expected a function";
- var nativeMax = Math.max;
- var nativeMin = Math.min;
- function debounce(func, wait, options2) {
- var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
- if (typeof func != "function") {
- throw new TypeError(FUNC_ERROR_TEXT);
- }
- wait = toNumber_default(wait) || 0;
- if (isObject_default(options2)) {
- leading = !!options2.leading;
- maxing = "maxWait" in options2;
- maxWait = maxing ? nativeMax(toNumber_default(options2.maxWait) || 0, wait) : maxWait;
- trailing = "trailing" in options2 ? !!options2.trailing : trailing;
- }
- function invokeFunc(time) {
- var args = lastArgs, thisArg = lastThis;
- lastArgs = lastThis = void 0;
- lastInvokeTime = time;
- result = func.apply(thisArg, args);
- return result;
- }
- function leadingEdge(time) {
- lastInvokeTime = time;
- timerId = setTimeout(timerExpired, wait);
- return leading ? invokeFunc(time) : result;
- }
- function remainingWait(time) {
- var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
- return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
- }
- function shouldInvoke(time) {
- var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
- return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
- }
- function timerExpired() {
- var time = now_default();
- if (shouldInvoke(time)) {
- return trailingEdge(time);
- }
- timerId = setTimeout(timerExpired, remainingWait(time));
- }
- function trailingEdge(time) {
- timerId = void 0;
- if (trailing && lastArgs) {
- return invokeFunc(time);
- }
- lastArgs = lastThis = void 0;
- return result;
- }
- function cancel() {
- if (timerId !== void 0) {
- clearTimeout(timerId);
- }
- lastInvokeTime = 0;
- lastArgs = lastCallTime = lastThis = timerId = void 0;
- }
- function flush() {
- return timerId === void 0 ? result : trailingEdge(now_default());
- }
- function debounced() {
- var time = now_default(), isInvoking = shouldInvoke(time);
- lastArgs = arguments;
- lastThis = this;
- lastCallTime = time;
- if (isInvoking) {
- if (timerId === void 0) {
- return leadingEdge(lastCallTime);
- }
- if (maxing) {
- clearTimeout(timerId);
- timerId = setTimeout(timerExpired, wait);
- return invokeFunc(lastCallTime);
- }
- }
- if (timerId === void 0) {
- timerId = setTimeout(timerExpired, wait);
- }
- return result;
- }
- debounced.cancel = cancel;
- debounced.flush = flush;
- return debounced;
- }
- var debounce_default = debounce;
-
- // node_modules/lodash-es/_escapeHtmlChar.js
- var htmlEscapes = {
- "&": "&",
- "<": "<",
- ">": ">",
- '"': """,
- "'": "'"
- };
- var escapeHtmlChar = basePropertyOf_default(htmlEscapes);
- var escapeHtmlChar_default = escapeHtmlChar;
-
- // node_modules/lodash-es/escape.js
- var reUnescapedHtml = /[&<>"']/g;
- var reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
- function escape2(string) {
- string = toString_default(string);
- return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar_default) : string;
- }
- var escape_default = escape2;
-
- // node_modules/lodash-es/throttle.js
- var FUNC_ERROR_TEXT2 = "Expected a function";
- function throttle(func, wait, options2) {
- var leading = true, trailing = true;
- if (typeof func != "function") {
- throw new TypeError(FUNC_ERROR_TEXT2);
- }
- if (isObject_default(options2)) {
- leading = "leading" in options2 ? !!options2.leading : leading;
- trailing = "trailing" in options2 ? !!options2.trailing : trailing;
- }
- return debounce_default(func, wait, {
- "leading": leading,
- "maxWait": wait,
- "trailing": trailing
- });
- }
- var throttle_default = throttle;
-
- // node_modules/lodash-es/_unescapeHtmlChar.js
- var htmlUnescapes = {
- "&": "&",
- "<": "<",
- ">": ">",
- """: '"',
- "'": "'"
- };
- var unescapeHtmlChar = basePropertyOf_default(htmlUnescapes);
- var unescapeHtmlChar_default = unescapeHtmlChar;
-
- // node_modules/lodash-es/unescape.js
- var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g;
- var reHasEscapedHtml = RegExp(reEscapedHtml.source);
- function unescape2(string) {
- string = toString_default(string);
- return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar_default) : string;
- }
- var unescape_default = unescape2;
-
// modules/core/localizer.js
var _mainLocalizer = coreLocalizer();
var _t = _mainLocalizer.t;
@@ -24692,7 +24916,7 @@
];
const localeDirs = {
general: "locales",
- tagging: "https://cdn.jsdelivr.net/npm/@openstreetmap/id-tagging-schema@3/dist/translations"
+ tagging: presetsCdnUrl + "dist/translations"
};
let fileMap = _mainFileFetcher.fileMap();
for (let scopeId in localeDirs) {
@@ -24893,10 +25117,12 @@
}
};
localizer.t.append = function(stringId, replacements, locale2) {
- return function(selection2) {
+ const ret = function(selection2) {
const info = localizer.tInfo(stringId, replacements, locale2);
return selection2.append("span").attr("class", "localized-text").attr("lang", info.locale || "und").text((replacements && replacements.prefix || "") + info.text + (replacements && replacements.suffix || ""));
};
+ ret.stringId = stringId;
+ return ret;
};
localizer.languageName = (code, options2) => {
if (_languageNames[code]) {
@@ -24940,13 +25166,19 @@
};
_this.index = (id2) => _this.collection.findIndex((d) => d.id === id2);
_this.matchGeometry = (geometry) => {
- return presetCollection(_this.collection.filter((d) => d.matchGeometry(geometry)));
+ return presetCollection(
+ _this.collection.filter((d) => d.matchGeometry(geometry))
+ );
};
_this.matchAllGeometry = (geometries) => {
- return presetCollection(_this.collection.filter((d) => d && d.matchAllGeometry(geometries)));
+ return presetCollection(
+ _this.collection.filter((d) => d && d.matchAllGeometry(geometries))
+ );
};
_this.matchAnyGeometry = (geometries) => {
- return presetCollection(_this.collection.filter((d) => geometries.some((geom) => d.matchGeometry(geom))));
+ return presetCollection(
+ _this.collection.filter((d) => geometries.some((geom) => d.matchGeometry(geom)))
+ );
};
_this.fallback = (geometry) => {
let id2 = geometry;
@@ -24975,7 +25207,7 @@
if (strings.some((s) => s === value)) {
return strings.find((s) => s === value);
} else {
- return strings.find((s) => s.includes(value));
+ return strings.filter((s) => s.includes(value)).sort((a2, b2) => a2.length - b2.length)[0];
}
};
aCompare = findMatchingAlias([aCompare].concat(a[aliasesProp]()));
@@ -24996,8 +25228,8 @@
}
let pool = _this.collection;
if (Array.isArray(loc)) {
- const validLocations = _mainLocations.locationsAt(loc);
- pool = pool.filter((a) => !a.locationSetID || validLocations[a.locationSetID]);
+ const validHere = _sharedLocationManager.locationSetsAt(loc);
+ pool = pool.filter((a) => !a.locationSetID || validHere[a.locationSetID]);
}
const searchable = pool.filter((a) => a.searchable !== false && a.suggestion !== true);
const suggestions = pool.filter((a) => a.suggestion === true);
@@ -25019,7 +25251,18 @@
if (value.includes("=")) {
leadingTagKeyValues = searchable.filter((a) => a.tags && Object.keys(a.tags).some((key) => key + "=" + a.tags[key] === value)).concat(searchable.filter((a) => a.tags && Object.keys(a.tags).some((key) => leading(key + "=" + a.tags[key]))));
}
- let results = leadingNames.concat(leadingSuggestions, leadingNamesStripped, leadingSuggestionsStripped, leadingTerms, leadingSuggestionTerms, leadingTagValues, similarName, similarSuggestions, similarTerms, leadingTagKeyValues).slice(0, MAXRESULTS - 1);
+ let results = leadingNames.concat(
+ leadingSuggestions,
+ leadingNamesStripped,
+ leadingSuggestionsStripped,
+ leadingTerms,
+ leadingSuggestionTerms,
+ leadingTagValues,
+ similarName,
+ similarSuggestions,
+ similarTerms,
+ leadingTagKeyValues
+ ).slice(0, MAXRESULTS - 1);
if (geometry) {
if (typeof geometry === "string") {
results.push(_this.fallback(geometry));
@@ -25038,7 +25281,9 @@
let _searchName;
let _searchNameStripped;
_this.id = categoryID;
- _this.members = presetCollection((category.members || []).map((presetID) => allPresets[presetID]).filter(Boolean));
+ _this.members = presetCollection(
+ (category.members || []).map((presetID) => allPresets[presetID]).filter(Boolean)
+ );
_this.geometry = _this.members.collection.reduce((acc, preset) => {
for (let i2 in preset.geometry) {
const geometry = preset.geometry[i2];
@@ -25052,7 +25297,7 @@
_this.matchAllGeometry = (geometries) => _this.members.collection.some((preset) => preset.matchAllGeometry(geometries));
_this.matchScore = () => -1;
_this.name = () => _t(`_tagging.presets.categories.${categoryID}.name`, { "default": categoryID });
- _this.nameLabel = () => _t.html(`_tagging.presets.categories.${categoryID}.name`, { "default": categoryID });
+ _this.nameLabel = () => _t.append(`_tagging.presets.categories.${categoryID}.name`, { "default": categoryID });
_this.terms = () => [];
_this.searchName = () => {
if (!_searchName) {
@@ -25075,7 +25320,8 @@
}
// modules/presets/field.js
- function presetField(fieldID, field) {
+ function presetField(fieldID, field, allFields) {
+ allFields = allFields || {};
let _this = Object.assign({}, field);
_this.id = fieldID;
_this.safeid = utilSafeClassName(fieldID);
@@ -25085,13 +25331,25 @@
};
_this.t = (scope, options2) => _t(`_tagging.presets.fields.${fieldID}.${scope}`, options2);
_this.t.html = (scope, options2) => _t.html(`_tagging.presets.fields.${fieldID}.${scope}`, options2);
+ _this.t.append = (scope, options2) => _t.append(`_tagging.presets.fields.${fieldID}.${scope}`, options2);
_this.hasTextForStringId = (scope) => _mainLocalizer.hasTextForStringId(`_tagging.presets.fields.${fieldID}.${scope}`);
- _this.title = () => _this.overrideLabel || _this.t("label", { "default": fieldID });
- _this.label = () => _this.overrideLabel || _this.t.html("label", { "default": fieldID });
- const _placeholder = _this.placeholder;
- _this.placeholder = () => _this.t("placeholder", { "default": _placeholder });
+ _this.resolveReference = (which) => {
+ const referenceRegex = /^\{(.*)\}$/;
+ const match = (field[which] || "").match(referenceRegex);
+ if (match) {
+ const field2 = allFields[match[1]];
+ if (field2) {
+ return field2;
+ }
+ console.error(`Unable to resolve referenced field: ${match[1]}`);
+ }
+ return _this;
+ };
+ _this.title = () => _this.overrideLabel || _this.resolveReference("label").t("label", { "default": fieldID });
+ _this.label = () => _this.overrideLabel ? (selection2) => selection2.text(_this.overrideLabel) : _this.resolveReference("label").t.append("label", { "default": fieldID });
+ _this.placeholder = () => _this.resolveReference("placeholder").t("placeholder", { "default": "" });
_this.originalTerms = (_this.terms || []).join();
- _this.terms = () => _this.t("terms", { "default": _this.originalTerms }).toLowerCase().trim().split(/\s*,+\s*/);
+ _this.terms = () => _this.resolveReference("label").t("terms", { "default": _this.originalTerms }).toLowerCase().trim().split(/\s*,+\s*/);
_this.increment = _this.type === "number" ? _this.increment || 1 : void 0;
return _this;
}
@@ -25108,6 +25366,7 @@
let _searchNameStripped;
let _searchAliases;
let _searchAliasesStripped;
+ const referenceRegex = /^\{(.*)\}$/;
_this.id = presetID;
_this.safeid = utilSafeClassName(presetID);
_this.originalTerms = (_this.terms || []).join();
@@ -25117,8 +25376,8 @@
_this.originalReference = _this.reference || {};
_this.originalFields = _this.fields || [];
_this.originalMoreFields = _this.moreFields || [];
- _this.fields = () => _resolvedFields || (_resolvedFields = resolve("fields"));
- _this.moreFields = () => _resolvedMoreFields || (_resolvedMoreFields = resolve("moreFields"));
+ _this.fields = () => _resolvedFields || (_resolvedFields = resolveFields("fields"));
+ _this.moreFields = () => _resolvedMoreFields || (_resolvedMoreFields = resolveFields("moreFields"));
_this.resetFields = () => _resolvedFields = _resolvedMoreFields = null;
_this.tags = _this.tags || {};
_this.addTags = _this.addTags || _this.tags;
@@ -25155,15 +25414,26 @@
const textID = `_tagging.presets.presets.${presetID}.${scope}`;
return _t(textID, options2);
};
- _this.t.html = (scope, options2) => {
+ _this.t.append = (scope, options2) => {
const textID = `_tagging.presets.presets.${presetID}.${scope}`;
- return _t.html(textID, options2);
+ return _t.append(textID, options2);
};
+ function resolveReference(which) {
+ const match = (_this[which] || "").match(referenceRegex);
+ if (match) {
+ const preset2 = allPresets[match[1]];
+ if (preset2) {
+ return preset2;
+ }
+ console.error(`Unable to resolve referenced preset: ${match[1]}`);
+ }
+ return _this;
+ }
_this.name = () => {
- return _this.t("name", { "default": _this.originalName });
+ return resolveReference("originalName").t("name", { "default": _this.originalName || presetID });
};
_this.nameLabel = () => {
- return _this.t.html("name", { "default": _this.originalName });
+ return resolveReference("originalName").t.append("name", { "default": _this.originalName || presetID });
};
_this.subtitle = () => {
if (_this.suggestion) {
@@ -25177,14 +25447,16 @@
if (_this.suggestion) {
let path = presetID.split("/");
path.pop();
- return _t.html("_tagging.presets.presets." + path.join("/") + ".name");
+ return _t.append("_tagging.presets.presets." + path.join("/") + ".name");
}
return null;
};
_this.aliases = () => {
- return _this.t("aliases", { "default": _this.originalAliases }).trim().split(/\s*[\r\n]+\s*/);
+ return resolveReference("originalName").t("aliases", { "default": _this.originalAliases }).trim().split(/\s*[\r\n]+\s*/);
+ };
+ _this.terms = () => {
+ return resolveReference("originalName").t("terms", { "default": _this.originalTerms }).toLowerCase().trim().split(/\s*,+\s*/);
};
- _this.terms = () => _this.t("terms", { "default": _this.originalTerms }).toLowerCase().trim().split(/\s*,+\s*/);
_this.searchName = () => {
if (!_searchName) {
_searchName = (_this.suggestion ? _this.originalName : _this.name()).toLowerCase();
@@ -25238,7 +25510,7 @@
tags = utilObjectOmit(tags, Object.keys(removeTags));
if (geometry && !skipFieldDefaults) {
_this.fields().forEach((field) => {
- if (field.matchGeometry(geometry) && field.key && field.default === tags[field.key]) {
+ if (field.matchGeometry(geometry) && field.key && field.default === tags[field.key] && (!ignoringKeys || ignoringKeys.indexOf(field.key) === -1)) {
delete tags[field.key];
}
});
@@ -25282,11 +25554,11 @@
}
return tags;
};
- function resolve(which) {
+ function resolveFields(which) {
const fieldIDs = which === "fields" ? _this.originalFields : _this.originalMoreFields;
let resolved = [];
fieldIDs.forEach((fieldID) => {
- const match = fieldID.match(/\{(.*)\}/);
+ const match = fieldID.match(referenceRegex);
if (match !== null) {
resolved = resolved.concat(inheritFields(match[1], which));
} else if (allFields[fieldID]) {
@@ -25372,6 +25644,7 @@
fields: vals[3]
});
osmSetAreaKeys(_this.areaKeys());
+ osmSetLineTags(_this.lineTags());
osmSetPointTags(_this.pointTags());
osmSetVertexTags(_this.vertexTags());
});
@@ -25382,7 +25655,7 @@
Object.keys(d.fields).forEach((fieldID) => {
let f2 = d.fields[fieldID];
if (f2) {
- f2 = presetField(fieldID, f2);
+ f2 = presetField(fieldID, f2, _fields);
if (f2.locationSet)
newLocationSets.push(f2);
_fields[fieldID] = f2;
@@ -25426,7 +25699,9 @@
Object.keys(d.defaults).forEach((geometry) => {
const def = d.defaults[geometry];
if (Array.isArray(def)) {
- _defaults[geometry] = presetCollection(def.map((id2) => _presets[id2] || _categories[id2]).filter(Boolean));
+ _defaults[geometry] = presetCollection(
+ def.map((id2) => _presets[id2] || _categories[id2]).filter(Boolean)
+ );
} else {
delete _defaults[geometry];
}
@@ -25446,10 +25721,10 @@
});
});
if (d.featureCollection && Array.isArray(d.featureCollection.features)) {
- _mainLocations.mergeCustomGeoJSON(d.featureCollection);
+ _sharedLocationManager.mergeCustomGeoJSON(d.featureCollection);
}
if (newLocationSets.length) {
- _mainLocations.mergeLocationSets(newLocationSets);
+ _sharedLocationManager.mergeLocationSets(newLocationSets);
}
return _this;
};
@@ -25495,12 +25770,12 @@
}
}
if (bestMatch && bestMatch.locationSetID && bestMatch.locationSetID !== "+[Q2]" && Array.isArray(loc)) {
- let validLocations = _mainLocations.locationsAt(loc);
- if (!validLocations[bestMatch.locationSetID]) {
+ const validHere = _sharedLocationManager.locationSetsAt(loc);
+ if (!validHere[bestMatch.locationSetID]) {
matchCandidates.sort((a, b) => a.score < b.score ? 1 : -1);
for (let i2 = 0; i2 < matchCandidates.length; i2++) {
const candidateScore = matchCandidates[i2];
- if (!candidateScore.candidate.locationSetID || validLocations[candidateScore.candidate.locationSetID]) {
+ if (!candidateScore.candidate.locationSetID || validHere[candidateScore.candidate.locationSetID]) {
bestMatch = candidateScore.candidate;
bestScore = candidateScore.score;
break;
@@ -25567,6 +25842,21 @@
});
return areaKeys;
};
+ _this.lineTags = () => {
+ return _this.collection.filter((lineTags, d) => {
+ if (d.suggestion || d.replacement || d.searchable === false)
+ return lineTags;
+ const keys = d.tags && Object.keys(d.tags);
+ const key = keys && keys.length && keys[0];
+ if (!key)
+ return lineTags;
+ if (d.geometry.indexOf("line") !== -1) {
+ lineTags[key] = lineTags[key] || [];
+ lineTags[key].push(d.tags);
+ }
+ return lineTags;
+ }, {});
+ };
_this.pointTags = () => {
return _this.collection.reduce((pointTags, d) => {
if (d.suggestion || d.replacement || d.searchable === false)
@@ -25599,7 +25889,7 @@
};
_this.field = (id2) => _fields[id2];
_this.universal = () => _universal;
- _this.defaults = (geometry, n2, startWithRecents, loc) => {
+ _this.defaults = (geometry, n2, startWithRecents, loc, extraPresets) => {
let recents = [];
if (startWithRecents) {
recents = _this.recent().matchGeometry(geometry).collection.slice(0, 4);
@@ -25615,10 +25905,12 @@
} else {
defaults2 = _defaults[geometry].collection.concat(_this.fallback(geometry));
}
- let result = presetCollection(utilArrayUniq(recents.concat(defaults2)).slice(0, n2 - 1));
+ let result = presetCollection(
+ utilArrayUniq(recents.concat(defaults2).concat(extraPresets || [])).slice(0, n2 - 1)
+ );
if (Array.isArray(loc)) {
- const validLocations = _mainLocations.locationsAt(loc);
- result.collection = result.collection.filter((a) => !a.locationSetID || validLocations[a.locationSetID]);
+ const validHere = _sharedLocationManager.locationSetsAt(loc);
+ result.collection = result.collection.filter((a) => !a.locationSetID || validHere[a.locationSetID]);
}
return result;
};
@@ -25642,7 +25934,9 @@
return _this;
};
_this.recent = () => {
- return presetCollection(utilArrayUniq(_this.getRecents().map((d) => d.preset)));
+ return presetCollection(
+ utilArrayUniq(_this.getRecents().map((d) => d.preset).filter((d) => d.searchable !== false))
+ );
};
function RibbonItem(preset, source) {
let item = {};
@@ -25949,9 +26243,9 @@
}
function utilDisplayName(entity) {
var localizedNameKey = "name:" + _mainLocalizer.languageCode().toLowerCase();
- var name2 = entity.tags[localizedNameKey] || entity.tags.name || "";
- if (name2)
- return name2;
+ var name = entity.tags[localizedNameKey] || entity.tags.name || "";
+ if (name)
+ return name;
var tags = {
direction: entity.tags.direction,
from: entity.tags.from,
@@ -25979,18 +26273,18 @@
}
}
if (keyComponents.length) {
- name2 = _t("inspector.display_name." + keyComponents.join("_"), tags);
+ name = _t("inspector.display_name." + keyComponents.join("_"), tags);
}
- return name2;
+ return name;
}
function utilDisplayNameForPath(entity) {
- var name2 = utilDisplayName(entity);
+ var name = utilDisplayName(entity);
var isFirefox = utilDetect().browser.toLowerCase().indexOf("firefox") > -1;
var isNewChromium = Number(utilDetect().version.split(".")[0]) >= 96;
- if (!isFirefox && !isNewChromium && name2 && rtlRegex.test(name2)) {
- name2 = fixRTLTextForSvg(name2);
+ if (!isFirefox && !isNewChromium && name && rtlRegex.test(name)) {
+ name = fixRTLTextForSvg(name);
}
- return name2;
+ return name;
}
function utilDisplayType(id2) {
return {
@@ -26056,17 +26350,17 @@
for (var key in tags) {
if (!Array.isArray(tags[key]))
continue;
- tags[key] = tags[key].sort(function(val1, val2) {
+ tags[key] = tags[key].sort(function(val12, val2) {
var key2 = key2;
var count2 = tagCounts[key2 + "=" + val2];
- var count1 = tagCounts[key2 + "=" + val1];
+ var count1 = tagCounts[key2 + "=" + val12];
if (count2 !== count1) {
return count2 - count1;
}
- if (val2 && val1) {
- return val1.localeCompare(val2);
+ if (val2 && val12) {
+ return val12.localeCompare(val2);
}
- return val1 ? 1 : -1;
+ return val12 ? 1 : -1;
});
}
return tags;
@@ -26079,7 +26373,7 @@
return str2.split("&").reduce(function(obj, pair2) {
var parts = pair2.split("=");
if (parts.length === 2) {
- obj[parts[0]] = parts[1] === null ? "" : decodeURIComponent(parts[1]);
+ obj[parts[0]] = null === parts[1] ? "" : decodeURIComponent(parts[1]);
}
return obj;
}, {});
@@ -26099,7 +26393,7 @@
var s = document.body;
if (property in s)
return property;
- property = property.substr(0, 1).toUpperCase() + property.substr(1);
+ property = property.slice(0, 1).toUpperCase() + property.slice(1);
while (++i2 < n2) {
if (prefixes2[i2] + property in s) {
return prefixes2[i2] + property;
@@ -26148,7 +26442,13 @@
if (b.charAt(i2 - 1) === a.charAt(j2 - 1)) {
matrix[i2][j2] = matrix[i2 - 1][j2 - 1];
} else {
- matrix[i2][j2] = Math.min(matrix[i2 - 1][j2 - 1] + 1, Math.min(matrix[i2][j2 - 1] + 1, matrix[i2 - 1][j2] + 1));
+ matrix[i2][j2] = Math.min(
+ matrix[i2 - 1][j2 - 1] + 1,
+ Math.min(
+ matrix[i2][j2 - 1] + 1,
+ matrix[i2 - 1][j2] + 1
+ )
+ );
}
}
}
@@ -26379,7 +26679,10 @@
merged[k] = t2;
} else if (t1 !== t2) {
changed = true;
- merged[k] = utilUnicodeCharsTruncated(utilArrayUnion(t1.split(/;\s*/), t2.split(/;\s*/)).join(";"), 255);
+ merged[k] = utilUnicodeCharsTruncated(
+ utilArrayUnion(t1.split(/;\s*/), t2.split(/;\s*/)).join(";"),
+ 255
+ );
}
}
return changed ? this.update({ tags: merged }) : this;
@@ -27402,7 +27705,10 @@
function actionAddMidpoint(midpoint, node) {
return function(graph) {
graph = graph.replace(node.move(midpoint.loc));
- var parents = utilArrayIntersection(graph.parentWays(graph.entity(midpoint.edge[0])), graph.parentWays(graph.entity(midpoint.edge[1])));
+ var parents = utilArrayIntersection(
+ graph.parentWays(graph.entity(midpoint.edge[0])),
+ graph.parentWays(graph.entity(midpoint.edge[1]))
+ );
parents.forEach(function(way) {
for (var i2 = 0; i2 < way.nodes.length - 1; i2++) {
if (geoEdgeEqual([way.nodes[i2], way.nodes[i2 + 1]], midpoint.edge)) {
@@ -27435,8 +27741,16 @@
var entity = graph.entity(entityID);
var geometry = entity.geometry(graph);
var tags = entity.tags;
+ var preserveKeys;
+ if (newPreset) {
+ preserveKeys = [];
+ if (newPreset.addTags) {
+ preserveKeys = preserveKeys.concat(Object.keys(newPreset.addTags));
+ }
+ newPreset.fields().concat(newPreset.moreFields()).filter((f2) => f2.matchGeometry(geometry)).map((f2) => f2.key).filter(Boolean).forEach((key) => preserveKeys.push(key));
+ }
if (oldPreset)
- tags = oldPreset.unsetTags(tags, geometry, newPreset && newPreset.addTags ? Object.keys(newPreset.addTags) : null);
+ tags = oldPreset.unsetTags(tags, geometry, preserveKeys);
if (newPreset)
tags = newPreset.setTags(tags, geometry, skipFieldDefaults);
return graph.replace(entity.update({ tags }));
@@ -27452,6 +27766,40 @@
}
// modules/osm/node.js
+ var cardinal = {
+ north: 0,
+ n: 0,
+ northnortheast: 22,
+ nne: 22,
+ northeast: 45,
+ ne: 45,
+ eastnortheast: 67,
+ ene: 67,
+ east: 90,
+ e: 90,
+ eastsoutheast: 112,
+ ese: 112,
+ southeast: 135,
+ se: 135,
+ southsoutheast: 157,
+ sse: 157,
+ south: 180,
+ s: 180,
+ southsouthwest: 202,
+ ssw: 202,
+ southwest: 225,
+ sw: 225,
+ westsouthwest: 247,
+ wsw: 247,
+ west: 270,
+ w: 270,
+ westnorthwest: 292,
+ wnw: 292,
+ northwest: 315,
+ nw: 315,
+ northnorthwest: 337,
+ nnw: 337
+ };
function osmNode() {
if (!(this instanceof osmNode)) {
return new osmNode().initialize(arguments);
@@ -27496,40 +27844,6 @@
}
if (val === "")
return [];
- var cardinal = {
- north: 0,
- n: 0,
- northnortheast: 22,
- nne: 22,
- northeast: 45,
- ne: 45,
- eastnortheast: 67,
- ene: 67,
- east: 90,
- e: 90,
- eastsoutheast: 112,
- ese: 112,
- southeast: 135,
- se: 135,
- southsoutheast: 157,
- sse: 157,
- south: 180,
- s: 180,
- southsouthwest: 202,
- ssw: 202,
- southwest: 225,
- sw: 225,
- westsouthwest: 247,
- wsw: 247,
- west: 270,
- w: 270,
- westnorthwest: 292,
- wnw: 292,
- northwest: 315,
- nw: 315,
- northnorthwest: 337,
- nnw: 337
- };
var values = val.split(";");
var results = [];
values.forEach(function(v) {
@@ -27559,7 +27873,9 @@
}
}, this);
Object.keys(nodeIds).forEach(function(nodeId) {
- results.push(geoAngle(this, resolver.entity(nodeId), projection2) * (180 / Math.PI) + 90);
+ results.push(
+ geoAngle(this, resolver.entity(nodeId), projection2) * (180 / Math.PI) + 90
+ );
}, this);
}, this);
return utilArrayUniq(results);
@@ -27812,8 +28128,8 @@
indexRange += nodes.length;
}
for (j2 = 1; j2 < indexRange; j2++) {
- var point = geoVecInterp(hull[i2], hull[i2 + 1], j2 / indexRange);
- var node = nodes[(j2 + startIndex) % nodes.length].move(projection2.invert(point));
+ var point2 = geoVecInterp(hull[i2], hull[i2 + 1], j2 / indexRange);
+ var node = nodes[(j2 + startIndex) % nodes.length].move(projection2.invert(point2));
graph = graph.replace(node);
}
}
@@ -28416,9 +28732,12 @@
var entities = ids.map(function(id2) {
return graph.entity(id2);
});
- return Object.assign({ line: [] }, utilArrayGroupBy(entities, function(entity) {
- return entity.geometry(graph);
- }));
+ return Object.assign(
+ { line: [] },
+ utilArrayGroupBy(entities, function(entity) {
+ return entity.geometry(graph);
+ })
+ );
}
var action = function(graph) {
var ways = ids.map(graph.entity, graph);
@@ -28509,11 +28828,14 @@
return e.loc;
});
var intersections = geoPathIntersections(path1, path2);
- var common = utilArrayIntersection(joined[0].nodes.map(function(n2) {
- return n2.loc.toString();
- }), intersections.map(function(n2) {
- return n2.toString();
- }));
+ var common = utilArrayIntersection(
+ joined[0].nodes.map(function(n2) {
+ return n2.loc.toString();
+ }),
+ intersections.map(function(n2) {
+ return n2.toString();
+ })
+ );
if (common.length !== intersections.length) {
return "paths_intersect";
}
@@ -28558,30 +28880,33 @@
var entities = ids.map(function(id2) {
return graph.entity(id2);
});
- return Object.assign({ point: [], area: [], line: [], relation: [] }, utilArrayGroupBy(entities, function(entity) {
- return entity.geometry(graph);
- }));
+ return Object.assign(
+ { point: [], area: [], line: [], relation: [] },
+ utilArrayGroupBy(entities, function(entity) {
+ return entity.geometry(graph);
+ })
+ );
}
var action = function(graph) {
var geometries = groupEntitiesByGeometry(graph);
var target = geometries.area[0] || geometries.line[0];
var points = geometries.point;
- points.forEach(function(point) {
- target = target.mergeTags(point.tags);
+ points.forEach(function(point2) {
+ target = target.mergeTags(point2.tags);
graph = graph.replace(target);
- graph.parentRelations(point).forEach(function(parent) {
- graph = graph.replace(parent.replaceMember(point, target));
+ graph.parentRelations(point2).forEach(function(parent) {
+ graph = graph.replace(parent.replaceMember(point2, target));
});
var nodes = utilArrayUniq(graph.childNodes(target));
- var removeNode = point;
- if (!point.isNew()) {
+ var removeNode = point2;
+ if (!point2.isNew()) {
var inserted = false;
var canBeReplaced = function(node2) {
return !(graph.parentWays(node2).length > 1 || graph.parentRelations(node2).length);
};
var replaceNode = function(node2) {
- graph = graph.replace(point.update({ tags: node2.tags, loc: node2.loc }));
- target = target.replaceNode(node2.id, point.id);
+ graph = graph.replace(point2.update({ tags: node2.tags, loc: node2.loc }));
+ target = target.replaceNode(node2.id, point2.id);
graph = graph.replace(target);
removeNode = node2;
inserted = true;
@@ -28595,7 +28920,7 @@
break;
}
}
- if (!inserted && point.hasInterestingTags()) {
+ if (!inserted && point2.hasInterestingTags()) {
for (i2 = 0; i2 < nodes.length; i2++) {
node = nodes[i2];
if (canBeReplaced(node) && !node.hasInterestingTags()) {
@@ -28606,7 +28931,7 @@
if (!inserted) {
for (i2 = 0; i2 < nodes.length; i2++) {
node = nodes[i2];
- if (canBeReplaced(node) && utilCompareIDs(point.id, node.id) < 0) {
+ if (canBeReplaced(node) && utilCompareIDs(point2.id, node.id) < 0) {
replaceNode(node);
break;
}
@@ -29065,10 +29390,10 @@
},
multipolygon: function(resolver) {
var outers = this.members.filter(function(m) {
- return (m.role || "outer") === "outer";
+ return "outer" === (m.role || "outer");
});
var inners = this.members.filter(function(m) {
- return m.role === "inner";
+ return "inner" === m.role;
});
outers = osmJoinWays(outers, resolver);
inners = osmJoinWays(inners, resolver);
@@ -29893,144 +30218,155 @@
return;
currPath.push(entity.id);
currRestrictions = (currRestrictions || []).slice();
- var i3, j3;
if (entity.type === "node") {
- var parents2 = vgraph2.parentWays(entity);
- var nextWays = [];
- for (i3 = 0; i3 < parents2.length; i3++) {
- var way2 = parents2[i3];
- if (way2.__oneWay && way2.nodes[0] !== entity.id)
- continue;
- if (currPath.indexOf(way2.id) !== -1 && currPath.length >= 3)
+ stepNode(entity, currPath, currRestrictions);
+ } else {
+ stepWay(entity, currPath, currRestrictions, matchedRestriction);
+ }
+ }
+ function stepNode(entity, currPath, currRestrictions) {
+ var i3, j3;
+ var parents2 = vgraph2.parentWays(entity);
+ var nextWays = [];
+ for (i3 = 0; i3 < parents2.length; i3++) {
+ var way2 = parents2[i3];
+ if (way2.__oneWay && way2.nodes[0] !== entity.id)
+ continue;
+ if (currPath.indexOf(way2.id) !== -1 && currPath.length >= 3)
+ continue;
+ var restrict = null;
+ for (j3 = 0; j3 < currRestrictions.length; j3++) {
+ var restriction = currRestrictions[j3];
+ var f2 = restriction.memberByRole("from");
+ var v = restriction.membersByRole("via");
+ var t = restriction.memberByRole("to");
+ var isNo = /^no_/.test(restriction.tags.restriction);
+ var isOnly = /^only_/.test(restriction.tags.restriction);
+ if (!(isNo || isOnly)) {
continue;
- var restrict = null;
- for (j3 = 0; j3 < currRestrictions.length; j3++) {
- var restriction = currRestrictions[j3];
- var f2 = restriction.memberByRole("from");
- var v = restriction.membersByRole("via");
- var t = restriction.memberByRole("to");
- var isOnly = /^only_/.test(restriction.tags.restriction);
- var matchesFrom = f2.id === fromWayId;
- var matchesViaTo = false;
- var isAlongOnlyPath = false;
- if (t.id === way2.id) {
- if (v.length === 1 && v[0].type === "node") {
- matchesViaTo = v[0].id === entity.id && (matchesFrom && currPath.length === 2 || !matchesFrom && currPath.length > 2);
- } else {
- var pathVias = [];
- for (k = 2; k < currPath.length; k += 2) {
- pathVias.push(currPath[k]);
- }
- var restrictionVias = [];
- for (k = 0; k < v.length; k++) {
- if (v[k].type === "way") {
- restrictionVias.push(v[k].id);
- }
- }
- var diff = utilArrayDifference(pathVias, restrictionVias);
- matchesViaTo = !diff.length;
+ }
+ var matchesFrom = f2.id === fromWayId;
+ var matchesViaTo = false;
+ var isAlongOnlyPath = false;
+ if (t.id === way2.id) {
+ if (v.length === 1 && v[0].type === "node") {
+ matchesViaTo = v[0].id === entity.id && (matchesFrom && currPath.length === 2 || !matchesFrom && currPath.length > 2);
+ } else {
+ var pathVias = [];
+ for (k = 2; k < currPath.length; k += 2) {
+ pathVias.push(currPath[k]);
}
- } else if (isOnly) {
+ var restrictionVias = [];
for (k = 0; k < v.length; k++) {
- if (v[k].type === "way" && v[k].id === way2.id) {
- isAlongOnlyPath = true;
- break;
+ if (v[k].type === "way") {
+ restrictionVias.push(v[k].id);
}
}
+ var diff = utilArrayDifference(pathVias, restrictionVias);
+ matchesViaTo = !diff.length;
}
- if (matchesViaTo) {
- if (isOnly) {
- restrict = { id: restriction.id, direct: matchesFrom, from: f2.id, only: true, end: true };
- } else {
- restrict = { id: restriction.id, direct: matchesFrom, from: f2.id, no: true, end: true };
+ } else if (isOnly) {
+ for (k = 0; k < v.length; k++) {
+ if (v[k].type === "way" && v[k].id === way2.id) {
+ isAlongOnlyPath = true;
+ break;
}
+ }
+ }
+ if (matchesViaTo) {
+ if (isOnly) {
+ restrict = { id: restriction.id, direct: matchesFrom, from: f2.id, only: true, end: true };
} else {
- if (isAlongOnlyPath) {
- restrict = { id: restriction.id, direct: false, from: f2.id, only: true, end: false };
- } else if (isOnly) {
- restrict = { id: restriction.id, direct: false, from: f2.id, no: true, end: true };
- }
+ restrict = { id: restriction.id, direct: matchesFrom, from: f2.id, no: true, end: true };
+ }
+ } else {
+ if (isAlongOnlyPath) {
+ restrict = { id: restriction.id, direct: false, from: f2.id, only: true, end: false };
+ } else if (isOnly) {
+ restrict = { id: restriction.id, direct: false, from: f2.id, no: true, end: true };
}
- if (restrict && restrict.direct)
- break;
}
- nextWays.push({ way: way2, restrict });
+ if (restrict && restrict.direct)
+ break;
}
- nextWays.forEach(function(nextWay) {
- step(nextWay.way, currPath, currRestrictions, nextWay.restrict);
- });
- } else {
- if (currPath.length >= 3) {
- var turnPath = currPath.slice();
- if (matchedRestriction && matchedRestriction.direct === false) {
- for (i3 = 0; i3 < turnPath.length; i3++) {
- if (turnPath[i3] === matchedRestriction.from) {
- turnPath = turnPath.slice(i3);
- break;
- }
+ nextWays.push({ way: way2, restrict });
+ }
+ nextWays.forEach(function(nextWay) {
+ step(nextWay.way, currPath, currRestrictions, nextWay.restrict);
+ });
+ }
+ function stepWay(entity, currPath, currRestrictions, matchedRestriction) {
+ var i3;
+ if (currPath.length >= 3) {
+ var turnPath = currPath.slice();
+ if (matchedRestriction && matchedRestriction.direct === false) {
+ for (i3 = 0; i3 < turnPath.length; i3++) {
+ if (turnPath[i3] === matchedRestriction.from) {
+ turnPath = turnPath.slice(i3);
+ break;
}
}
- var turn = pathToTurn(turnPath);
- if (turn) {
- if (matchedRestriction) {
- turn.restrictionID = matchedRestriction.id;
- turn.no = matchedRestriction.no;
- turn.only = matchedRestriction.only;
- turn.direct = matchedRestriction.direct;
- }
- turns.push(osmTurn(turn));
+ }
+ var turn = pathToTurn(turnPath);
+ if (turn) {
+ if (matchedRestriction) {
+ turn.restrictionID = matchedRestriction.id;
+ turn.no = matchedRestriction.no;
+ turn.only = matchedRestriction.only;
+ turn.direct = matchedRestriction.direct;
}
- if (currPath[0] === currPath[2])
- return;
+ turns.push(osmTurn(turn));
}
- if (matchedRestriction && matchedRestriction.end)
+ if (currPath[0] === currPath[2])
return;
- var n1 = vgraph2.entity(entity.first());
- var n2 = vgraph2.entity(entity.last());
- var dist = geoSphericalDistance(n1.loc, n2.loc);
- var nextNodes = [];
- if (currPath.length > 1) {
- if (dist > maxDistance)
- return;
- if (!entity.__via)
- return;
- }
- if (!entity.__oneWay && keyVertexIds.indexOf(n1.id) !== -1 && currPath.indexOf(n1.id) === -1) {
- nextNodes.push(n1);
- }
- if (keyVertexIds.indexOf(n2.id) !== -1 && currPath.indexOf(n2.id) === -1) {
- nextNodes.push(n2);
- }
- nextNodes.forEach(function(nextNode) {
- var fromRestrictions = vgraph2.parentRelations(entity).filter(function(r) {
- if (!r.isRestriction())
- return false;
- var f3 = r.memberByRole("from");
- if (!f3 || f3.id !== entity.id)
- return false;
- var isOnly2 = /^only_/.test(r.tags.restriction);
- if (!isOnly2)
- return true;
- var isOnlyVia = false;
- var v2 = r.membersByRole("via");
- if (v2.length === 1 && v2[0].type === "node") {
- isOnlyVia = v2[0].id === nextNode.id;
- } else {
- for (var i4 = 0; i4 < v2.length; i4++) {
- if (v2[i4].type !== "way")
- continue;
- var viaWay = vgraph2.entity(v2[i4].id);
- if (viaWay.first() === nextNode.id || viaWay.last() === nextNode.id) {
- isOnlyVia = true;
- break;
- }
+ }
+ if (matchedRestriction && matchedRestriction.end)
+ return;
+ var n1 = vgraph2.entity(entity.first());
+ var n2 = vgraph2.entity(entity.last());
+ var dist = geoSphericalDistance(n1.loc, n2.loc);
+ var nextNodes = [];
+ if (currPath.length > 1) {
+ if (dist > maxDistance)
+ return;
+ if (!entity.__via)
+ return;
+ }
+ if (!entity.__oneWay && keyVertexIds.indexOf(n1.id) !== -1 && currPath.indexOf(n1.id) === -1) {
+ nextNodes.push(n1);
+ }
+ if (keyVertexIds.indexOf(n2.id) !== -1 && currPath.indexOf(n2.id) === -1) {
+ nextNodes.push(n2);
+ }
+ nextNodes.forEach(function(nextNode) {
+ var fromRestrictions = vgraph2.parentRelations(entity).filter(function(r) {
+ if (!r.isRestriction())
+ return false;
+ var f2 = r.memberByRole("from");
+ if (!f2 || f2.id !== entity.id)
+ return false;
+ var isOnly = /^only_/.test(r.tags.restriction);
+ if (!isOnly)
+ return true;
+ var isOnlyVia = false;
+ var v = r.membersByRole("via");
+ if (v.length === 1 && v[0].type === "node") {
+ isOnlyVia = v[0].id === nextNode.id;
+ } else {
+ for (var i4 = 0; i4 < v.length; i4++) {
+ if (v[i4].type !== "way")
+ continue;
+ var viaWay = vgraph2.entity(v[i4].id);
+ if (viaWay.first() === nextNode.id || viaWay.last() === nextNode.id) {
+ isOnlyVia = true;
+ break;
}
}
- return isOnlyVia;
- });
- step(nextNode, currPath, currRestrictions.concat(fromRestrictions), false);
+ }
+ return isOnlyVia;
});
- }
+ step(nextNode, currPath, currRestrictions.concat(fromRestrictions), false);
+ });
}
function pathToTurn(path) {
if (path.length < 3)
@@ -30124,7 +30460,10 @@
return "other";
}
});
- return Object.assign({ closedWay: [], multipolygon: [], other: [] }, geometryGroups);
+ return Object.assign(
+ { closedWay: [], multipolygon: [], other: [] },
+ geometryGroups
+ );
}
var action = function(graph) {
var entities = groupEntities(graph);
@@ -30139,11 +30478,14 @@
return polygons.map(function(d, n2) {
if (i2 === n2)
return null;
- return geoPolygonContainsPolygon(d.nodes.map(function(n3) {
- return n3.loc;
- }), w.nodes.map(function(n3) {
- return n3.loc;
- }));
+ return geoPolygonContainsPolygon(
+ d.nodes.map(function(n3) {
+ return n3.loc;
+ }),
+ w.nodes.map(function(n3) {
+ return n3.loc;
+ })
+ );
});
});
var members = [];
@@ -30588,7 +30930,10 @@
var k = keys[i2];
if (o[k] !== b[k] && a[k] !== b[k]) {
if (o[k] !== a[k]) {
- _conflicts.push(_t.html("merge_remote_changes.conflict.tags", { tag: k, local: a[k], remote: b[k], user: { html: user(remote.user) } }));
+ _conflicts.push(_t.html(
+ "merge_remote_changes.conflict.tags",
+ { tag: k, local: a[k], remote: b[k], user: { html: user(remote.user) } }
+ ));
} else {
if (b.hasOwnProperty(k)) {
tags[k] = b[k];
@@ -30931,7 +31276,9 @@
t = 1;
t = Math.min(Math.max(+t, 0), 1);
var node = graph.entity(nodeID);
- return graph.replace(node.move(geoVecInterp(node.loc, toLoc, t)));
+ return graph.replace(
+ node.move(geoVecInterp(node.loc, toLoc, t))
+ );
};
action.transitionable = true;
return action;
@@ -30974,7 +31321,7 @@
var nodeCount = {};
var points = [];
var corner = { i: 0, dotp: 1 };
- var node, point, loc, score, motions, i2, j2;
+ var node, point2, loc, score, motions, i2, j2;
for (i2 = 0; i2 < nodes.length; i2++) {
node = nodes[i2];
nodeCount[node.id] = (nodeCount[node.id] || 0) + 1;
@@ -30996,17 +31343,17 @@
var straights = [];
var simplified = [];
for (i2 = 0; i2 < points.length; i2++) {
- point = points[i2];
+ point2 = points[i2];
var dotp = 0;
if (isClosed || i2 > 0 && i2 < points.length - 1) {
var a = points[(i2 - 1 + points.length) % points.length];
var b = points[(i2 + 1) % points.length];
- dotp = Math.abs(geoOrthoNormalizedDotProduct(a.coord, b.coord, point.coord));
+ dotp = Math.abs(geoOrthoNormalizedDotProduct(a.coord, b.coord, point2.coord));
}
if (dotp > upperThreshold) {
- straights.push(point);
+ straights.push(point2);
} else {
- simplified.push(point);
+ simplified.push(point2);
}
}
var bestPoints = clonePoints(simplified);
@@ -31032,22 +31379,22 @@
if (isClosed)
bestCoords.push(bestCoords[0]);
for (i2 = 0; i2 < bestPoints.length; i2++) {
- point = bestPoints[i2];
- if (!geoVecEqual(originalPoints[i2].coord, point.coord)) {
- node = graph.entity(point.id);
- loc = projection2.invert(point.coord);
+ point2 = bestPoints[i2];
+ if (!geoVecEqual(originalPoints[i2].coord, point2.coord)) {
+ node = graph.entity(point2.id);
+ loc = projection2.invert(point2.coord);
graph = graph.replace(node.move(geoVecInterp(node.loc, loc, t)));
}
}
for (i2 = 0; i2 < straights.length; i2++) {
- point = straights[i2];
- if (nodeCount[point.id] > 1)
+ point2 = straights[i2];
+ if (nodeCount[point2.id] > 1)
continue;
- node = graph.entity(point.id);
+ node = graph.entity(point2.id);
if (t === 1 && graph.parentWays(node).length === 1 && graph.parentRelations(node).length === 0 && !node.hasInterestingTags()) {
graph = actionDeleteNode(node.id)(graph);
} else {
- var choice = geoVecProject(point.coord, bestCoords);
+ var choice = geoVecProject(point2.coord, bestCoords);
if (choice) {
loc = projection2.invert(choice.target);
graph = graph.replace(node.move(geoVecInterp(node.loc, loc, t)));
@@ -31061,13 +31408,13 @@
return { id: p.id, coord: [p.coord[0], p.coord[1]] };
});
}
- function calcMotion(point2, i3, array2) {
+ function calcMotion(point3, i3, array2) {
if (!isClosed && (i3 === 0 || i3 === array2.length - 1))
return [0, 0];
if (nodeCount[array2[i3].id] > 1)
return [0, 0];
var a2 = array2[(i3 - 1 + array2.length) % array2.length].coord;
- var origin = point2.coord;
+ var origin = point3.coord;
var b2 = array2[(i3 + 1) % array2.length].coord;
var p = geoVecSubtract(a2, origin);
var q = geoVecSubtract(b2, origin);
@@ -31192,8 +31539,8 @@
var action = function(graph) {
return graph.update(function(graph2) {
utilGetAllNodes(rotateIds, graph2).forEach(function(node) {
- var point = geoRotate([projection2(node.loc)], angle2, pivot)[0];
- graph2 = graph2.replace(node.move(projection2.invert(point)));
+ var point2 = geoRotate([projection2(node.loc)], angle2, pivot)[0];
+ graph2 = graph2.replace(node.move(projection2.invert(point2)));
});
});
};
@@ -31204,18 +31551,18 @@
function actionScale(ids, pivotLoc, scaleFactor, projection2) {
return function(graph) {
return graph.update(function(graph2) {
- let point, radial;
+ let point2, radial;
utilGetAllNodes(ids, graph2).forEach(function(node) {
- point = projection2(node.loc);
+ point2 = projection2(node.loc);
radial = [
- point[0] - pivotLoc[0],
- point[1] - pivotLoc[1]
+ point2[0] - pivotLoc[0],
+ point2[1] - pivotLoc[1]
];
- point = [
+ point2 = [
pivotLoc[0] + scaleFactor * radial[0],
pivotLoc[1] + scaleFactor * radial[1]
];
- graph2 = graph2.replace(node.move(projection2.invert(point)));
+ graph2 = graph2.replace(node.move(projection2.invert(point2)));
});
});
};
@@ -31253,10 +31600,10 @@
var endPoint = endpoints[1];
for (var i2 = 0; i2 < points.length; i2++) {
var node = nodes[i2];
- var point = points[i2];
- var u = positionAlongWay(point, startPoint, endPoint);
- var point2 = geoVecInterp(startPoint, endPoint, u);
- var loc2 = projection2.invert(point2);
+ var point2 = points[i2];
+ var u = positionAlongWay(point2, startPoint, endPoint);
+ var point22 = geoVecInterp(startPoint, endPoint, u);
+ var loc2 = projection2.invert(point22);
graph = graph.replace(node.move(geoVecInterp(node.loc, loc2, t)));
}
return graph;
@@ -31273,10 +31620,10 @@
var endPoint = endpoints[1];
var maxDistance = 0;
for (var i2 = 0; i2 < points.length; i2++) {
- var point = points[i2];
- var u = positionAlongWay(point, startPoint, endPoint);
+ var point2 = points[i2];
+ var u = positionAlongWay(point2, startPoint, endPoint);
var p = geoVecInterp(startPoint, endPoint, u);
- var dist = geoVecLength(p, point);
+ var dist = geoVecLength(p, point2);
if (!isNaN(dist) && dist > maxDistance) {
maxDistance = dist;
}
@@ -31365,9 +31712,9 @@
var i2;
for (i2 = 1; i2 < points.length - 1; i2++) {
var node = nodes[i2];
- var point = points[i2];
+ var point2 = points[i2];
if (t < 1 || shouldKeepNode(node, graph)) {
- var u = positionAlongWay(point, startPoint, endPoint);
+ var u = positionAlongWay(point2, startPoint, endPoint);
var p = geoVecInterp(startPoint, endPoint, u);
var loc2 = projection2.invert(p);
graph = graph.replace(node.move(geoVecInterp(node.loc, loc2, t)));
@@ -31396,10 +31743,10 @@
}
var maxDistance = 0;
for (i2 = 1; i2 < points.length - 1; i2++) {
- var point = points[i2];
- var u = positionAlongWay(point, startPoint, endPoint);
+ var point2 = points[i2];
+ var u = positionAlongWay(point2, startPoint, endPoint);
var p = geoVecInterp(startPoint, endPoint, u);
- var dist = geoVecLength(p, point);
+ var dist = geoVecLength(p, point2);
if (isNaN(dist) || dist > threshold) {
return "too_bendy";
} else if (dist > maxDistance) {
@@ -31687,7 +32034,17 @@
var _disableSpace = false;
var _lastSpace = null;
function behaviorDraw(context) {
- var dispatch10 = dispatch_default("move", "down", "downcancel", "click", "clickWay", "clickNode", "undo", "cancel", "finish");
+ var dispatch10 = dispatch_default(
+ "move",
+ "down",
+ "downcancel",
+ "click",
+ "clickWay",
+ "clickNode",
+ "undo",
+ "cancel",
+ "finish"
+ );
var keybinding = utilKeybinding("draw");
var _hover = behaviorHover(context).altDisables(true).ignoreVertex(true).on("hover", context.ui().sidebar.hover);
var _edit = behaviorEdit(context);
@@ -31788,7 +32145,12 @@
dispatch10.call("clickNode", this, target, d);
return;
} else if (target && target.type === "way" && (mode.id !== "add-point" || mode.preset.matchGeometry("vertex"))) {
- var choice = geoChooseEdge(context.graph().childNodes(target), loc, context.projection, context.activeID());
+ var choice = geoChooseEdge(
+ context.graph().childNodes(target),
+ loc,
+ context.projection,
+ context.activeID()
+ );
if (choice) {
var edge = [target.nodes[choice.index - 1], target.nodes[choice.index]];
dispatch10.call("clickWay", this, choice.loc, edge, d);
@@ -32380,13 +32742,31 @@
function setAnimationParams(transition2, fromTo) {
var toFrom = fromTo === "from" ? "to" : "from";
transition2.styleTween("stroke-opacity", function(d) {
- return ratchetyInterpolator(_params[d.id][toFrom].opacity, _params[d.id][fromTo].opacity, steps);
+ return ratchetyInterpolator(
+ _params[d.id][toFrom].opacity,
+ _params[d.id][fromTo].opacity,
+ steps
+ );
}).styleTween("stroke-width", function(d) {
- return ratchetyInterpolator(_params[d.id][toFrom].width, _params[d.id][fromTo].width, steps, "px");
+ return ratchetyInterpolator(
+ _params[d.id][toFrom].width,
+ _params[d.id][fromTo].width,
+ steps,
+ "px"
+ );
}).styleTween("fill-opacity", function(d) {
- return ratchetyInterpolator(_params[d.id][toFrom].opacity, _params[d.id][fromTo].opacity, steps);
+ return ratchetyInterpolator(
+ _params[d.id][toFrom].opacity,
+ _params[d.id][fromTo].opacity,
+ steps
+ );
}).styleTween("r", function(d) {
- return ratchetyInterpolator(_params[d.id][toFrom].width, _params[d.id][fromTo].width, steps, "px");
+ return ratchetyInterpolator(
+ _params[d.id][toFrom].width,
+ _params[d.id][fromTo].width,
+ steps,
+ "px"
+ );
});
}
function calcAnimationParams(selection2) {
@@ -32476,7 +32856,7 @@
d3_event.preventDefault();
var disabled = _operation.disabled();
if (disabled) {
- context.ui().flash.duration(4e3).iconName("#iD-operation-" + _operation.id).iconClass("operation disabled").label(_operation.tooltip)();
+ context.ui().flash.duration(4e3).iconName("#iD-operation-" + _operation.id).iconClass("operation disabled").label(_operation.tooltip())();
} else {
context.ui().flash.duration(2e3).iconName("#iD-operation-" + _operation.id).iconClass("operation").label(_operation.annotation() || _operation.title)();
if (_operation.point)
@@ -32580,14 +32960,14 @@
};
operation.tooltip = function() {
var disable = operation.disabled();
- return disable ? _t("operations.circularize." + disable + "." + _amount) : _t("operations.circularize.description." + _amount);
+ return disable ? _t.append("operations.circularize." + disable + "." + _amount) : _t.append("operations.circularize.description." + _amount);
};
operation.annotation = function() {
return _t("operations.circularize.annotation.feature", { n: _actions.length });
};
operation.id = "circularize";
operation.keys = [_t("operations.circularize.key")];
- operation.title = _t("operations.circularize.title");
+ operation.title = _t.append("operations.circularize.title");
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -32749,14 +33129,14 @@
};
operation.tooltip = function() {
var disable = operation.disabled();
- return disable ? _t("operations.delete." + disable + "." + multi) : _t("operations.delete.description." + multi);
+ return disable ? _t.append("operations.delete." + disable + "." + multi) : _t.append("operations.delete.description." + multi);
};
operation.annotation = function() {
return selectedIDs.length === 1 ? _t("operations.delete.annotation." + context.graph().geometry(selectedIDs[0])) : _t("operations.delete.annotation.feature", { n: selectedIDs.length });
};
operation.id = "delete";
operation.keys = [uiCmd("\u2318\u232B"), uiCmd("\u2318\u2326"), uiCmd("\u2326")];
- operation.title = _t("operations.delete.title");
+ operation.title = _t.append("operations.delete.title");
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -32857,14 +33237,14 @@
};
operation.tooltip = function() {
var disable = operation.disabled();
- return disable ? _t("operations.orthogonalize." + disable + "." + _amount) : _t("operations.orthogonalize.description." + _type + "." + _amount);
+ return disable ? _t.append("operations.orthogonalize." + disable + "." + _amount) : _t.append("operations.orthogonalize.description." + _type + "." + _amount);
};
operation.annotation = function() {
return _t("operations.orthogonalize.annotation." + _type, { n: _actions.length });
};
operation.id = "orthogonalize";
operation.keys = [_t("operations.orthogonalize.key")];
- operation.title = _t("operations.orthogonalize.title");
+ operation.title = _t.append("operations.orthogonalize.title");
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -32929,14 +33309,14 @@
};
operation.tooltip = function() {
var disable = operation.disabled();
- return disable ? _t("operations.reflect." + disable + "." + multi) : _t("operations.reflect.description." + axis + "." + multi);
+ return disable ? _t.append("operations.reflect." + disable + "." + multi) : _t.append("operations.reflect.description." + axis + "." + multi);
};
operation.annotation = function() {
return _t("operations.reflect.annotation." + axis + ".feature", { n: selectedIDs.length });
};
operation.id = "reflect-" + axis;
operation.keys = [_t("operations.reflect.key." + axis)];
- operation.title = _t("operations.reflect.title." + axis);
+ operation.title = _t.append("operations.reflect.title." + axis);
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -32990,14 +33370,14 @@
};
operation.tooltip = function() {
var disable = operation.disabled();
- return disable ? _t("operations.move." + disable + "." + multi) : _t("operations.move.description." + multi);
+ return disable ? _t.append("operations.move." + disable + "." + multi) : _t.append("operations.move.description." + multi);
};
operation.annotation = function() {
return selectedIDs.length === 1 ? _t("operations.move.annotation." + context.graph().geometry(selectedIDs[0])) : _t("operations.move.annotation.feature", { n: selectedIDs.length });
};
operation.id = "move";
operation.keys = [_t("operations.move.key")];
- operation.title = _t("operations.move.title");
+ operation.title = _t.append("operations.move.title");
operation.behavior = behaviorOperation(context).which(operation);
operation.mouseOnly = true;
return operation;
@@ -33171,14 +33551,14 @@
};
operation.tooltip = function() {
var disable = operation.disabled();
- return disable ? _t("operations.rotate." + disable + "." + multi) : _t("operations.rotate.description." + multi);
+ return disable ? _t.append("operations.rotate." + disable + "." + multi) : _t.append("operations.rotate.description." + multi);
};
operation.annotation = function() {
return selectedIDs.length === 1 ? _t("operations.rotate.annotation." + context.graph().geometry(selectedIDs[0])) : _t("operations.rotate.annotation.feature", { n: selectedIDs.length });
};
operation.id = "rotate";
operation.keys = [_t("operations.rotate.key")];
- operation.title = _t("operations.rotate.title");
+ operation.title = _t.append("operations.rotate.title");
operation.behavior = behaviorOperation(context).which(operation);
operation.mouseOnly = true;
return operation;
@@ -33571,7 +33951,7 @@
_isCancelled = !context.editable() || d3_event.shiftKey || hasHidden;
if (_isCancelled) {
if (hasHidden) {
- context.ui().flash.duration(4e3).iconName("#iD-icon-no").label(_t("modes.drag_node.connected_to_hidden"))();
+ context.ui().flash.duration(4e3).iconName("#iD-icon-no").label(_t.append("modes.drag_node.connected_to_hidden"))();
}
return drag.cancel();
}
@@ -33621,7 +34001,9 @@
}
}
}
- context.replace(actionMoveNode(entity.id, loc));
+ context.replace(
+ actionMoveNode(entity.id, loc)
+ );
var isInvalid = false;
if (target) {
isInvalid = hasRelationConflict(entity, target, edge, context.graph());
@@ -33632,11 +34014,14 @@
var nope = context.surface().classed("nope");
if (isInvalid === "relation" || isInvalid === "restriction") {
if (!nope) {
- context.ui().flash.duration(4e3).iconName("#iD-icon-no").label(_t.html("operations.connect." + isInvalid, { relation: _mainPresetIndex.item("type/restriction").name() }))();
+ context.ui().flash.duration(4e3).iconName("#iD-icon-no").label(_t.append(
+ "operations.connect." + isInvalid,
+ { relation: _mainPresetIndex.item("type/restriction").name() }
+ ))();
}
} else if (isInvalid) {
var errorID = isInvalid === "line" ? "lines" : "areas";
- context.ui().flash.duration(3e3).iconName("#iD-icon-no").label(_t.html("self_intersection.error." + errorID))();
+ context.ui().flash.duration(3e3).iconName("#iD-icon-no").label(_t.append("self_intersection.error." + errorID))();
} else {
if (nope) {
context.ui().flash.duration(1).label("")();
@@ -33709,14 +34094,14 @@
}
return false;
}
- function move(d3_event, entity, point) {
+ function move(d3_event, entity, point2) {
if (_isCancelled)
return;
d3_event.stopPropagation();
context.surface().classed("nope-disabled", d3_event.altKey);
- _lastLoc = context.projection.invert(point);
+ _lastLoc = context.projection.invert(point2);
doMove(d3_event, entity);
- var nudge = geoViewportEdge(point, context.map().dimensions());
+ var nudge = geoViewportEdge(point2, context.map().dimensions());
if (nudge) {
startNudge(d3_event, entity, nudge);
} else {
@@ -33731,19 +34116,33 @@
var nope = d && d.properties && d.properties.nope || context.surface().classed("nope");
var target = d && d.properties && d.properties.entity;
if (nope) {
- context.perform(_actionBounceBack(entity.id, _startLoc));
+ context.perform(
+ _actionBounceBack(entity.id, _startLoc)
+ );
} else if (target && target.type === "way") {
var choice = geoChooseEdge(context.graph().childNodes(target), context.map().mouse(), context.projection, entity.id);
- context.replace(actionAddMidpoint({
- loc: choice.loc,
- edge: [target.nodes[choice.index - 1], target.nodes[choice.index]]
- }, entity), connectAnnotation(entity, target));
+ context.replace(
+ actionAddMidpoint({
+ loc: choice.loc,
+ edge: [target.nodes[choice.index - 1], target.nodes[choice.index]]
+ }, entity),
+ connectAnnotation(entity, target)
+ );
} else if (target && target.type === "node" && shouldSnapToNode(target)) {
- context.replace(actionConnect([target.id, entity.id]), connectAnnotation(entity, target));
+ context.replace(
+ actionConnect([target.id, entity.id]),
+ connectAnnotation(entity, target)
+ );
} else if (_wasMidpoint) {
- context.replace(actionNoop(), _t("operations.add.annotation.vertex"));
+ context.replace(
+ actionNoop(),
+ _t("operations.add.annotation.vertex")
+ );
} else {
- context.replace(actionNoop(), moveAnnotation(entity));
+ context.replace(
+ actionNoop(),
+ moveAnnotation(entity)
+ );
}
if (wasPoint) {
context.enter(modeSelect(context, [entity.id]));
@@ -34041,7 +34440,9 @@
items.forEach((item) => {
const match = item.match(/\#(\d+)\((.+)\)?/);
if (match !== null && match.length > 2) {
- newList.push(linkEntity2("w" + match[1]) + " " + _t("QA.keepRight.errorTypes.231.layer", { layer: match[2] }));
+ newList.push(
+ linkEntity2("w" + match[1]) + " " + _t("QA.keepRight.errorTypes.231.layer", { layer: match[2] })
+ );
}
});
return newList.join(", ");
@@ -34135,7 +34536,7 @@
} = feature3;
let {
geometry: { coordinates: loc },
- properties: { description: description2 = "" }
+ properties: { description = "" }
} = feature3;
const issueTemplate = _krData.errorTypes[itemType];
const parentIssueType = (Math.floor(itemType / 10) * 10).toString();
@@ -34143,38 +34544,38 @@
const whichTemplate = _krData.errorTypes[whichType];
switch (whichType) {
case "170":
- description2 = `This feature has a FIXME tag: ${description2}`;
+ description = `This feature has a FIXME tag: ${description}`;
break;
case "292":
case "293":
- description2 = description2.replace("A turn-", "This turn-");
+ description = description.replace("A turn-", "This turn-");
break;
case "294":
case "295":
case "296":
case "297":
case "298":
- description2 = `This turn-restriction~${description2}`;
+ description = `This turn-restriction~${description}`;
break;
case "300":
- description2 = "This highway is missing a maxspeed tag";
+ description = "This highway is missing a maxspeed tag";
break;
case "411":
case "412":
case "413":
- description2 = `This feature~${description2}`;
+ description = `This feature~${description}`;
break;
}
let coincident = false;
do {
let delta = coincident ? [1e-5, 0] : [0, 1e-5];
loc = geoVecAdd(loc, delta);
- let bbox = geoExtent(loc).bbox();
- coincident = _cache.rtree.search(bbox).length;
+ let bbox2 = geoExtent(loc).bbox();
+ coincident = _cache.rtree.search(bbox2).length;
} while (coincident);
let d = new QAItem(loc, this, itemType, id2, {
comment,
- description: description2,
+ description,
whichType,
parentIssueType,
severity: whichTemplate.severity || "error",
@@ -34230,8 +34631,8 @@
const viewport = projection2.clipExtent();
const min3 = [viewport[0][0], viewport[1][1]];
const max3 = [viewport[1][0], viewport[0][1]];
- const bbox = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox();
- return _cache.rtree.search(bbox).map((d) => d.data);
+ const bbox2 = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox();
+ return _cache.rtree.search(bbox2).map((d) => d.data);
},
getError(id2) {
return _cache.data[id2];
@@ -34302,7 +34703,10 @@
}
function pointAverage(points) {
if (points.length) {
- const sum = points.reduce((acc, point) => geoVecAdd(acc, [point.lon, point.lat]), [0, 0]);
+ const sum = points.reduce(
+ (acc, point2) => geoVecAdd(acc, [point2.lon, point2.lat]),
+ [0, 0]
+ );
return geoVecScale(sum, 1 / points.length);
} else {
return [0, 0];
@@ -34335,8 +34739,8 @@
do {
let delta = coincident ? [1e-5, 0] : bumpUp ? [0, 1e-5] : [0, 0];
loc = geoVecAdd(loc, delta);
- let bbox = geoExtent(loc).bbox();
- coincident = _cache2.rtree.search(bbox).length;
+ let bbox2 = geoExtent(loc).bbox();
+ coincident = _cache2.rtree.search(bbox2).length;
} while (coincident);
return loc;
}
@@ -34377,7 +34781,11 @@
const params = Object.assign({}, options2, { east, south, west, north });
const requests = {};
Object.keys(_impOsmUrls).forEach((k) => {
- const kParams = Object.assign({}, params, k === "mr" ? { type: "PARKING,ROAD,BOTH,PATH" } : { confidenceLevel: "C1" });
+ const kParams = Object.assign(
+ {},
+ params,
+ k === "mr" ? { type: "PARKING,ROAD,BOTH,PATH" } : { confidenceLevel: "C1" }
+ );
const url = `${_impOsmUrls[k]}/search?` + utilQsString(kParams);
const controller = new AbortController();
requests[k] = controller;
@@ -34445,9 +34853,9 @@
}
if (data.entities) {
data.entities.forEach((feature3) => {
- const { point, id: id2, segments, numberOfPasses, turnType } = feature3;
+ const { point: point2, id: id2, segments, numberOfPasses, turnType } = feature3;
const itemId = `${id2.replace(/[,:+#]/g, "_")}`;
- const loc = preventCoincident([point.lon, point.lat], true);
+ const loc = preventCoincident([point2.lon, point2.lat], true);
const ids = id2.split(",");
const from_way = ids[0];
const via_node = ids[3];
@@ -34574,8 +34982,8 @@
const viewport = projection2.clipExtent();
const min3 = [viewport[0][0], viewport[1][1]];
const max3 = [viewport[1][0], viewport[0][1]];
- const bbox = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox();
- return _cache2.rtree.search(bbox).map((d) => d.data);
+ const bbox2 = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox();
+ return _cache2.rtree.search(bbox2).map((d) => d.data);
},
getError(id2) {
return _cache2.data[id2];
@@ -34607,6 +35015,7 @@
// node_modules/marked/lib/marked.esm.js
function getDefaults() {
return {
+ async: false,
baseUrl: null,
breaks: false,
extensions: null,
@@ -34621,7 +35030,6 @@
sanitize: false,
sanitizer: null,
silent: false,
- smartLists: false,
smartypants: false,
tokenizer: null,
walkTokens: null,
@@ -34673,10 +35081,10 @@
regex = typeof regex === "string" ? regex : regex.source;
opt = opt || "";
const obj = {
- replace: (name2, val) => {
+ replace: (name, val) => {
val = val.source || val;
val = val.replace(caret, "$1");
- regex = regex.replace(name2, val);
+ regex = regex.replace(name, val);
return obj;
},
getRegex: () => {
@@ -34849,7 +35257,7 @@
href,
title,
text: text2,
- tokens: lexer2.inlineTokens(text2, [])
+ tokens: lexer2.inlineTokens(text2)
};
lexer2.state.inLink = false;
return token;
@@ -34913,7 +35321,7 @@
return {
type: "code",
raw,
- lang: cap[2] ? cap[2].trim() : cap[2],
+ lang: cap[2] ? cap[2].trim().replace(this.rules.inline._escapes, "$1") : cap[2],
text: text2
};
}
@@ -34930,15 +35338,13 @@
text2 = trimmed.trim();
}
}
- const token = {
+ return {
type: "heading",
raw: cap[0],
depth: cap[1].length,
text: text2,
- tokens: []
+ tokens: this.lexer.inline(text2)
};
- this.lexer.inline(token.text, token.tokens);
- return token;
}
}
hr(src) {
@@ -35011,7 +35417,8 @@
if (!endEarly) {
const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent2 - 1)}}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))`);
const hrRegex = new RegExp(`^ {0,${Math.min(3, indent2 - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`);
- const fencesBeginRegex = new RegExp(`^( {0,${Math.min(3, indent2 - 1)}})(\`\`\`|~~~)`);
+ const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent2 - 1)}}(?:\`\`\`|~~~)`);
+ const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent2 - 1)}}#`);
while (src) {
rawLine = src.split("\n", 1)[0];
line = rawLine;
@@ -35021,7 +35428,7 @@
if (fencesBeginRegex.test(line)) {
break;
}
- if (this.rules.block.heading.test(line)) {
+ if (headingBeginRegex.test(line)) {
break;
}
if (nextBulletRegex.test(line)) {
@@ -35107,10 +35514,10 @@
text: cap[0]
};
if (this.options.sanitize) {
+ const text2 = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape4(cap[0]);
token.type = "paragraph";
- token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape4(cap[0]);
- token.tokens = [];
- this.lexer.inline(token.text, token.tokens);
+ token.text = text2;
+ token.tokens = this.lexer.inline(text2);
}
return token;
}
@@ -35125,8 +35532,8 @@
type: "def",
tag,
raw: cap[0],
- href: cap[2],
- title: cap[3]
+ href: cap[2] ? cap[2].replace(this.rules.inline._escapes, "$1") : cap[2],
+ title: cap[3] ? cap[3].replace(this.rules.inline._escapes, "$1") : cap[3]
};
}
}
@@ -35164,15 +35571,13 @@
}
l = item.header.length;
for (j2 = 0; j2 < l; j2++) {
- item.header[j2].tokens = [];
- this.lexer.inline(item.header[j2].text, item.header[j2].tokens);
+ item.header[j2].tokens = this.lexer.inline(item.header[j2].text);
}
l = item.rows.length;
for (j2 = 0; j2 < l; j2++) {
row = item.rows[j2];
for (k = 0; k < row.length; k++) {
- row[k].tokens = [];
- this.lexer.inline(row[k].text, row[k].tokens);
+ row[k].tokens = this.lexer.inline(row[k].text);
}
}
return item;
@@ -35182,41 +35587,36 @@
lheading(src) {
const cap = this.rules.block.lheading.exec(src);
if (cap) {
- const token = {
+ return {
type: "heading",
raw: cap[0],
depth: cap[2].charAt(0) === "=" ? 1 : 2,
text: cap[1],
- tokens: []
+ tokens: this.lexer.inline(cap[1])
};
- this.lexer.inline(token.text, token.tokens);
- return token;
}
}
paragraph(src) {
const cap = this.rules.block.paragraph.exec(src);
if (cap) {
- const token = {
+ const text2 = cap[1].charAt(cap[1].length - 1) === "\n" ? cap[1].slice(0, -1) : cap[1];
+ return {
type: "paragraph",
raw: cap[0],
- text: cap[1].charAt(cap[1].length - 1) === "\n" ? cap[1].slice(0, -1) : cap[1],
- tokens: []
+ text: text2,
+ tokens: this.lexer.inline(text2)
};
- this.lexer.inline(token.text, token.tokens);
- return token;
}
}
text(src) {
const cap = this.rules.block.text.exec(src);
if (cap) {
- const token = {
+ return {
type: "text",
raw: cap[0],
text: cap[0],
- tokens: []
+ tokens: this.lexer.inline(cap[0])
};
- this.lexer.inline(token.text, token.tokens);
- return token;
}
}
escape(src) {
@@ -35345,21 +35745,22 @@
if (delimTotal > 0)
continue;
rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);
+ const raw = src.slice(0, lLength + match.index + (match[0].length - rDelim.length) + rLength);
if (Math.min(lLength, rLength) % 2) {
- const text3 = src.slice(1, lLength + match.index + rLength);
+ const text3 = raw.slice(1, -1);
return {
type: "em",
- raw: src.slice(0, lLength + match.index + rLength + 1),
+ raw,
text: text3,
- tokens: this.lexer.inlineTokens(text3, [])
+ tokens: this.lexer.inlineTokens(text3)
};
}
- const text2 = src.slice(2, lLength + match.index + rLength - 1);
+ const text2 = raw.slice(2, -2);
return {
type: "strong",
- raw: src.slice(0, lLength + match.index + rLength + 1),
+ raw,
text: text2,
- tokens: this.lexer.inlineTokens(text2, [])
+ tokens: this.lexer.inlineTokens(text2)
};
}
}
@@ -35397,7 +35798,7 @@
type: "del",
raw: cap[0],
text: cap[2],
- tokens: this.lexer.inlineTokens(cap[2], [])
+ tokens: this.lexer.inlineTokens(cap[2])
};
}
}
@@ -35512,7 +35913,9 @@
block.gfm.table = edit(block.gfm.table).replace("hr", block.hr).replace("heading", " {0,3}#{1,6} ").replace("blockquote", " {0,3}>").replace("code", " {4}[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", block._tag).getRegex();
block.gfm.paragraph = edit(block._paragraph).replace("hr", block.hr).replace("heading", " {0,3}#{1,6} ").replace("|lheading", "").replace("table", block.gfm.table).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", block._tag).getRegex();
block.pedantic = merge2({}, block.normal, {
- html: edit(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?\\1> *(?:\\n{2,}|\\s*$)|
An error occurred:
" + escape4(e.message + "", true) + ""; + } + throw e; + } try { const tokens = Lexer.lex(src, opt); if (opt.walkTokens) { + if (opt.async) { + return Promise.all(marked.walkTokens(tokens, opt.walkTokens)).then(() => { + return Parser.parse(tokens, opt); + }).catch(onError); + } marked.walkTokens(tokens, opt.walkTokens); } return Parser.parse(tokens, opt); } catch (e) { - e.message += "\nPlease report this to https://github.com/markedjs/marked."; - if (opt.silent) { - return "
An error occurred:
" + escape4(e.message + "", true) + ""; - } - throw e; + onError(e); } } marked.options = marked.setOptions = function(opt) { @@ -36504,10 +36932,12 @@ ${content} if (pack.walkTokens) { const walkTokens2 = marked.defaults.walkTokens; opts.walkTokens = function(token) { - pack.walkTokens.call(this, token); + let values = []; + values.push(pack.walkTokens.call(this, token)); if (walkTokens2) { - walkTokens2.call(this, token); + values = values.concat(walkTokens2.call(this, token)); } + return values; }; } if (hasExtensions) { @@ -36517,35 +36947,37 @@ ${content} }); }; marked.walkTokens = function(tokens, callback) { + let values = []; for (const token of tokens) { - callback.call(marked, token); + values = values.concat(callback.call(marked, token)); switch (token.type) { case "table": { for (const cell of token.header) { - marked.walkTokens(cell.tokens, callback); + values = values.concat(marked.walkTokens(cell.tokens, callback)); } for (const row of token.rows) { for (const cell of row) { - marked.walkTokens(cell.tokens, callback); + values = values.concat(marked.walkTokens(cell.tokens, callback)); } } break; } case "list": { - marked.walkTokens(token.items, callback); + values = values.concat(marked.walkTokens(token.items, callback)); break; } default: { if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) { - marked.walkTokens(token[childTokens], callback); + values = values.concat(marked.walkTokens(token[childTokens], callback)); }); } else if (token.tokens) { - marked.walkTokens(token.tokens, callback); + values = values.concat(marked.walkTokens(token.tokens, callback)); } } } } + return values; }; marked.parseInline = function(src, opt) { if (typeof src === "undefined" || src === null) { @@ -36622,8 +37054,8 @@ ${content} do { let delta = coincident ? [1e-5, 0] : [0, 1e-5]; loc = geoVecAdd(loc, delta); - let bbox = geoExtent(loc).bbox(); - coincident = _cache3.rtree.search(bbox).length; + let bbox2 = geoExtent(loc).bbox(); + coincident = _cache3.rtree.search(bbox2).length; } while (coincident); return loc; } @@ -36668,7 +37100,7 @@ ${content} if (_cache3.loadedTile[tile.id] || _cache3.inflightTile[tile.id]) return; let [x, y, z] = tile.xyz; - let url = `${_osmoseUrlRoot}/issues/${z}/${x}/${y}.json?` + utilQsString(params); + let url = `${_osmoseUrlRoot}/issues/${z}/${x}/${y}.geojson?` + utilQsString(params); let controller = new AbortController(); _cache3.inflightTile[tile.id] = controller; json_default(url, { signal: controller.signal }).then((data) => { @@ -36785,8 +37217,8 @@ ${content} const viewport = projection2.clipExtent(); const min3 = [viewport[0][0], viewport[1][1]]; const max3 = [viewport[1][0], viewport[0][1]]; - const bbox = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox(); - return _cache3.rtree.search(bbox).map((d) => d.data); + const bbox2 = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox(); + return _cache3.rtree.search(bbox2).map((d) => d.data); }, getError(id2) { return _cache3.data[id2]; @@ -37046,10 +37478,10 @@ ${content} const viewport = projection2.clipExtent(); const min3 = [viewport[0][0], viewport[1][1]]; const max3 = [viewport[1][0], viewport[0][1]]; - const bbox = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox(); + const bbox2 = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox(); const sequenceIds = {}; let lineStrings = []; - _mlyCache.images.rtree.search(bbox).forEach(function(d) { + _mlyCache.images.rtree.search(bbox2).forEach(function(d) { if (d.data.sequence_id) { sequenceIds[d.data.sequence_id] = true; } @@ -37341,15 +37773,19 @@ ${content} const tile = new import_vector_tile.VectorTile(new import_pbf.default(uintArray.buffer)); const layer = tile.layers["mpy-or"]; const geometries = layer.feature(0).loadGeometry(); - const polygon2 = geometries.map((ring) => ring.map((point) => [point.x / layer.extent, point.y / layer.extent])); - tag = new mapillary.OutlineTag(data.id, new mapillary.PolygonGeometry(polygon2[0]), { - text: text2, - textColor: color2, - lineColor: color2, - lineWidth: 2, - fillColor: color2, - fillOpacity: 0.3 - }); + const polygon2 = geometries.map((ring) => ring.map((point2) => [point2.x / layer.extent, point2.y / layer.extent])); + tag = new mapillary.OutlineTag( + data.id, + new mapillary.PolygonGeometry(polygon2[0]), + { + text: text2, + textColor: color2, + lineColor: color2, + lineWidth: 2, + fillColor: color2, + fillOpacity: 0.3 + } + ); return tag; } }, @@ -37406,7 +37842,7 @@ ${content} var issue = this; if (issue.severity === "warning") { fixes.push(new validationIssueFix({ - title: _t.html("issues.fix.ignore_issue.title"), + title: _t.append("issues.fix.ignore_issue.title"), icon: "iD-icon-close", onClick: function() { context.validator().ignoreIssue(this.issue.id); @@ -37414,7 +37850,7 @@ ${content} })); } fixes.forEach(function(fix) { - fix.id = fix.title; + fix.id = fix.title.stringId; fix.issue = issue; if (fix.autoArgs) { issue.autoFix = fix; @@ -37640,7 +38076,7 @@ ${content} // modules/services/nominatim.js var import_rbush5 = __toESM(require_rbush_min()); - var apibase = "https://nominatim.openstreetmap.org/"; + var apibase = nominatimApiUrl; var _inflight = {}; var _nominatimCache; var nominatim_default = { @@ -37667,7 +38103,9 @@ ${content} }); }, reverse: function(loc, callback) { - var cached = _nominatimCache.search({ minX: loc[0], minY: loc[1], maxX: loc[0], maxY: loc[1] }); + var cached = _nominatimCache.search( + { minX: loc[0], minY: loc[1], maxX: loc[0], maxY: loc[1] } + ); if (cached.length > 0) { if (callback) callback(null, cached[0].data); @@ -37728,356 +38166,355 @@ ${content} function simplify(str2) { if (typeof str2 !== "string") return ""; - return import_diacritics2.default.remove(str2.replace(/&/g, "and").replace(/İ/ig, "i").replace(/[\s\-=_!"#%'*{},.\/:;?\(\)\[\]@\\$\^*+<>«»~`’\u00a1\u00a7\u00b6\u00b7\u00bf\u037e\u0387\u055a-\u055f\u0589\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964\u0965\u0970\u0af0\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f14\u0f85\u0fd0-\u0fd4\u0fd9\u0fda\u104a-\u104f\u10fb\u1360-\u1368\u166d\u166e\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u1805\u1807-\u180a\u1944\u1945\u1a1e\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e\u1c7f\u1cc0-\u1cc7\u1cd3\u2000-\u206f\u2cf9-\u2cfc\u2cfe\u2cff\u2d70\u2e00-\u2e7f\u3001-\u3003\u303d\u30fb\ua4fe\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce\ua8cf\ua8f8-\ua8fa\ua92e\ua92f\ua95f\ua9c1-\ua9cd\ua9de\ua9df\uaa5c-\uaa5f\uaade\uaadf\uaaf0\uaaf1\uabeb\ufe10-\ufe16\ufe19\ufe30\ufe45\ufe46\ufe49-\ufe4c\ufe50-\ufe52\ufe54-\ufe57\ufe5f-\ufe61\ufe68\ufe6a\ufe6b\ufeff\uff01-\uff03\uff05-\uff07\uff0a\uff0c\uff0e\uff0f\uff1a\uff1b\uff1f\uff20\uff3c\uff61\uff64\uff65]+/g, "").toLowerCase()); + return import_diacritics2.default.remove( + str2.replace(/&/g, "and").replace(/İ/ig, "i").replace(/[\s\-=_!"#%'*{},.\/:;?\(\)\[\]@\\$\^*+<>«»~`’\u00a1\u00a7\u00b6\u00b7\u00bf\u037e\u0387\u055a-\u055f\u0589\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964\u0965\u0970\u0af0\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f14\u0f85\u0fd0-\u0fd4\u0fd9\u0fda\u104a-\u104f\u10fb\u1360-\u1368\u166d\u166e\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u1805\u1807-\u180a\u1944\u1945\u1a1e\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e\u1c7f\u1cc0-\u1cc7\u1cd3\u2000-\u206f\u2cf9-\u2cfc\u2cfe\u2cff\u2d70\u2e00-\u2e7f\u3001-\u3003\u303d\u30fb\ua4fe\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce\ua8cf\ua8f8-\ua8fa\ua92e\ua92f\ua95f\ua9c1-\ua9cd\ua9de\ua9df\uaa5c-\uaa5f\uaade\uaadf\uaaf0\uaaf1\uabeb\ufe10-\ufe16\ufe19\ufe30\ufe45\ufe46\ufe49-\ufe4c\ufe50-\ufe52\ufe54-\ufe57\ufe5f-\ufe61\ufe68\ufe6a\ufe6b\ufeff\uff01-\uff03\uff05-\uff07\uff0a\uff0c\uff0e\uff0f\uff1a\uff1b\uff1f\uff20\uff3c\uff61\uff64\uff65]+/g, "").toLowerCase() + ); } // node_modules/name-suggestion-index/config/matchGroups.json - var matchGroups = { - adult_gaming_centre: [ - "amenity/casino", - "amenity/gambling", - "leisure/adult_gaming_centre" - ], - beauty: [ - "shop/beauty", - "shop/hairdresser_supply" - ], - bed: [ - "shop/bed", - "shop/furniture" - ], - beverages: [ - "shop/alcohol", - "shop/beer", - "shop/beverages", - "shop/kiosk", - "shop/wine" - ], - camping: [ - "tourism/camp_site", - "tourism/caravan_site" - ], - car_parts: [ - "shop/car_parts", - "shop/car_repair", - "shop/tires", - "shop/tyres" - ], - clinic: [ - "amenity/clinic", - "amenity/doctors", - "healthcare/clinic", - "healthcare/laboratory", - "healthcare/physiotherapist", - "healthcare/sample_collection", - "healthcare/dialysis" - ], - convenience: [ - "shop/beauty", - "shop/chemist", - "shop/convenience", - "shop/cosmetics", - "shop/grocery", - "shop/kiosk", - "shop/newsagent", - "shop/perfumery" - ], - coworking: [ - "amenity/coworking_space", - "office/coworking", - "office/coworking_space" - ], - dentist: [ - "amenity/dentist", - "amenity/doctors", - "healthcare/dentist" - ], - electronics: [ - "office/telecommunication", - "shop/computer", - "shop/electronics", - "shop/hifi", - "shop/kiosk", - "shop/mobile", - "shop/mobile_phone", - "shop/telecommunication" - ], - fabric: [ - "shop/fabric", - "shop/haberdashery", - "shop/sewing" - ], - fashion: [ - "shop/accessories", - "shop/bag", - "shop/boutique", - "shop/clothes", - "shop/department_store", - "shop/fashion", - "shop/fashion_accessories", - "shop/sports", - "shop/shoes" - ], - financial: [ - "amenity/bank", - "office/accountant", - "office/financial", - "office/financial_advisor", - "office/tax_advisor", - "shop/tax" - ], - fitness: [ - "leisure/fitness_centre", - "leisure/fitness_center", - "leisure/sports_centre", - "leisure/sports_center" - ], - food: [ - "amenity/bar", - "amenity/cafe", - "amenity/fast_food", - "amenity/ice_cream", - "amenity/pub", - "amenity/restaurant", - "shop/bakery", - "shop/candy", - "shop/chocolate", - "shop/coffee", - "shop/confectionary", - "shop/confectionery", - "shop/food", - "shop/kiosk", - "shop/ice_cream", - "shop/pastry", - "shop/tea" - ], - fuel: [ - "amenity/fuel", - "shop/gas", - "shop/convenience;gas", - "shop/gas;convenience" - ], - gift: [ - "shop/gift", - "shop/card", - "shop/cards", - "shop/kiosk", - "shop/stationery" - ], - hardware: [ - "shop/bathroom_furnishing", - "shop/carpet", - "shop/diy", - "shop/doityourself", - "shop/doors", - "shop/electrical", - "shop/flooring", - "shop/hardware", - "shop/hardware_store", - "shop/power_tools", - "shop/tool_hire", - "shop/tools", - "shop/trade" - ], - health_food: [ - "shop/health", - "shop/health_food", - "shop/herbalist", - "shop/nutrition_supplements" - ], - hobby: [ - "shop/electronics", - "shop/hobby", - "shop/books", - "shop/games", - "shop/collector", - "shop/toys", - "shop/model", - "shop/video_games", - "shop/anime" - ], - hospital: [ - "amenity/doctors", - "amenity/hospital", - "healthcare/hospital" - ], - houseware: [ - "shop/houseware", - "shop/interior_decoration" - ], - lifeboat_station: [ - "amenity/lifeboat_station", - "emergency/lifeboat_station", - "emergency/marine_rescue" - ], - lodging: [ - "tourism/hotel", - "tourism/motel" - ], - money_transfer: [ - "amenity/money_transfer", - "shop/money_transfer" - ], - office_supplies: [ - "shop/office_supplies", - "shop/stationary", - "shop/stationery" - ], - outdoor: [ - "shop/clothes", - "shop/outdoor", - "shop/sports" - ], - parcel_locker: [ - "amenity/parcel_locker", - "amenity/vending_machine" - ], - pharmacy: [ - "amenity/doctors", - "amenity/pharmacy", - "healthcare/pharmacy" - ], - playground: [ - "amenity/theme_park", - "leisure/amusement_arcade", - "leisure/playground" - ], - rental: [ - "amenity/bicycle_rental", - "amenity/boat_rental", - "amenity/car_rental", - "amenity/truck_rental", - "amenity/vehicle_rental", - "shop/kiosk", - "shop/rental" - ], - school: [ - "amenity/childcare", - "amenity/college", - "amenity/kindergarten", - "amenity/language_school", - "amenity/prep_school", - "amenity/school", - "amenity/university" - ], - storage: [ - "shop/storage_units", - "shop/storage_rental" - ], - substation: [ - "power/station", - "power/substation", - "power/sub_station" - ], - supermarket: [ - "shop/food", - "shop/frozen_food", - "shop/greengrocer", - "shop/grocery", - "shop/supermarket", - "shop/wholesale" - ], - variety_store: [ - "shop/variety_store", - "shop/discount", - "shop/convenience" - ], - vending: [ - "amenity/vending_machine", - "shop/kiosk", - "shop/vending_machine" - ], - weight_loss: [ - "amenity/clinic", - "amenity/doctors", - "amenity/weight_clinic", - "healthcare/counselling", - "leisure/fitness_centre", - "office/therapist", - "shop/beauty", - "shop/diet", - "shop/food", - "shop/health_food", - "shop/herbalist", - "shop/nutrition", - "shop/nutrition_supplements", - "shop/weight_loss" - ], - wholesale: [ - "shop/wholesale", - "shop/supermarket", - "shop/department_store" - ] - }; var matchGroups_default = { - matchGroups + matchGroups: { + adult_gaming_centre: [ + "amenity/casino", + "amenity/gambling", + "leisure/adult_gaming_centre" + ], + beauty: [ + "shop/beauty", + "shop/hairdresser_supply" + ], + bed: [ + "shop/bed", + "shop/furniture" + ], + beverages: [ + "shop/alcohol", + "shop/beer", + "shop/beverages", + "shop/kiosk", + "shop/wine" + ], + camping: [ + "tourism/camp_site", + "tourism/caravan_site" + ], + car_parts: [ + "shop/car_parts", + "shop/car_repair", + "shop/tires", + "shop/tyres" + ], + clinic: [ + "amenity/clinic", + "amenity/doctors", + "healthcare/clinic", + "healthcare/laboratory", + "healthcare/physiotherapist", + "healthcare/sample_collection", + "healthcare/dialysis" + ], + convenience: [ + "shop/beauty", + "shop/chemist", + "shop/convenience", + "shop/cosmetics", + "shop/grocery", + "shop/kiosk", + "shop/newsagent", + "shop/perfumery" + ], + coworking: [ + "amenity/coworking_space", + "office/coworking", + "office/coworking_space" + ], + dentist: [ + "amenity/dentist", + "amenity/doctors", + "healthcare/dentist" + ], + electronics: [ + "office/telecommunication", + "shop/computer", + "shop/electronics", + "shop/hifi", + "shop/kiosk", + "shop/mobile", + "shop/mobile_phone", + "shop/telecommunication" + ], + fabric: [ + "shop/fabric", + "shop/haberdashery", + "shop/sewing" + ], + fashion: [ + "shop/accessories", + "shop/bag", + "shop/boutique", + "shop/clothes", + "shop/department_store", + "shop/fashion", + "shop/fashion_accessories", + "shop/sports", + "shop/shoes" + ], + financial: [ + "amenity/bank", + "office/accountant", + "office/financial", + "office/financial_advisor", + "office/tax_advisor", + "shop/tax" + ], + fitness: [ + "leisure/fitness_centre", + "leisure/fitness_center", + "leisure/sports_centre", + "leisure/sports_center" + ], + food: [ + "amenity/bar", + "amenity/cafe", + "amenity/fast_food", + "amenity/ice_cream", + "amenity/pub", + "amenity/restaurant", + "shop/bakery", + "shop/candy", + "shop/chocolate", + "shop/coffee", + "shop/confectionary", + "shop/confectionery", + "shop/food", + "shop/kiosk", + "shop/ice_cream", + "shop/pastry", + "shop/tea" + ], + fuel: [ + "amenity/fuel", + "shop/gas", + "shop/convenience;gas", + "shop/gas;convenience" + ], + gift: [ + "shop/gift", + "shop/card", + "shop/cards", + "shop/kiosk", + "shop/stationery" + ], + hardware: [ + "shop/bathroom_furnishing", + "shop/carpet", + "shop/diy", + "shop/doityourself", + "shop/doors", + "shop/electrical", + "shop/flooring", + "shop/hardware", + "shop/hardware_store", + "shop/power_tools", + "shop/tool_hire", + "shop/tools", + "shop/trade" + ], + health_food: [ + "shop/health", + "shop/health_food", + "shop/herbalist", + "shop/nutrition_supplements" + ], + hobby: [ + "shop/electronics", + "shop/hobby", + "shop/books", + "shop/games", + "shop/collector", + "shop/toys", + "shop/model", + "shop/video_games", + "shop/anime" + ], + hospital: [ + "amenity/doctors", + "amenity/hospital", + "healthcare/hospital" + ], + houseware: [ + "shop/houseware", + "shop/interior_decoration" + ], + lifeboat_station: [ + "amenity/lifeboat_station", + "emergency/lifeboat_station", + "emergency/marine_rescue" + ], + lodging: [ + "tourism/hotel", + "tourism/motel" + ], + money_transfer: [ + "amenity/money_transfer", + "shop/money_transfer" + ], + office_supplies: [ + "shop/office_supplies", + "shop/stationary", + "shop/stationery" + ], + outdoor: [ + "shop/clothes", + "shop/outdoor", + "shop/sports" + ], + parcel_locker: [ + "amenity/parcel_locker", + "amenity/vending_machine" + ], + pharmacy: [ + "amenity/doctors", + "amenity/pharmacy", + "healthcare/pharmacy" + ], + playground: [ + "amenity/theme_park", + "leisure/amusement_arcade", + "leisure/playground" + ], + rental: [ + "amenity/bicycle_rental", + "amenity/boat_rental", + "amenity/car_rental", + "amenity/truck_rental", + "amenity/vehicle_rental", + "shop/kiosk", + "shop/rental" + ], + school: [ + "amenity/childcare", + "amenity/college", + "amenity/kindergarten", + "amenity/language_school", + "amenity/prep_school", + "amenity/school", + "amenity/university" + ], + storage: [ + "shop/storage_units", + "shop/storage_rental" + ], + substation: [ + "power/station", + "power/substation", + "power/sub_station" + ], + supermarket: [ + "shop/food", + "shop/frozen_food", + "shop/greengrocer", + "shop/grocery", + "shop/supermarket", + "shop/wholesale" + ], + variety_store: [ + "shop/variety_store", + "shop/discount", + "shop/convenience" + ], + vending: [ + "amenity/vending_machine", + "shop/kiosk", + "shop/vending_machine" + ], + weight_loss: [ + "amenity/clinic", + "amenity/doctors", + "amenity/weight_clinic", + "healthcare/counselling", + "leisure/fitness_centre", + "office/therapist", + "shop/beauty", + "shop/diet", + "shop/food", + "shop/health_food", + "shop/herbalist", + "shop/nutrition", + "shop/nutrition_supplements", + "shop/weight_loss" + ], + wholesale: [ + "shop/wholesale", + "shop/supermarket", + "shop/department_store" + ] + } }; // node_modules/name-suggestion-index/config/genericWords.json - var genericWords = [ - "^(barn|bazaa?r|bench|bou?tique|building|casa|church)$", - "^(baseball|basketball|football|soccer|softball|tennis(halle)?)\\s?(field|court)?$", - "^(club|green|out|ware)\\s?house$", - "^(driveway|el \xE1rbol|fountain|generic|golf|government|graveyard)$", - "^(fixme|n\\s?\\/?\\s?a|name|no\\s?name|none|null|temporary|test|unknown)$", - "^(hofladen|librairie|magazine?|maison)$", - "^(mobile home|skate)?\\s?park$", - "^(obuwie|pond|pool|sale|shops?|sklep|stores?)$", - "^\\?+$", - "^private$", - "^tattoo( studio)?$", - "^windmill$", - "^\u0446\u0435\u0440\u043A\u043E\u0432\u043D\u0430\u044F( \u043B\u0430\u0432\u043A\u0430)?$" - ]; var genericWords_default = { - genericWords + genericWords: [ + "^(barn|bazaa?r|bench|bou?tique|building|casa|church)$", + "^(baseball|basketball|football|soccer|softball|tennis(halle)?)\\s?(field|court)?$", + "^(club|green|out|ware)\\s?house$", + "^(driveway|el \xE1rbol|fountain|generic|golf|government|graveyard)$", + "^(fixme|n\\s?\\/?\\s?a|name|no\\s?name|none|null|temporary|test|unknown)$", + "^(hofladen|librairie|magazine?|maison)$", + "^(mobile home|skate)?\\s?park$", + "^(obuwie|pond|pool|sale|shops?|sklep|stores?)$", + "^\\?+$", + "^private$", + "^tattoo( studio)?$", + "^windmill$", + "^\u0446\u0435\u0440\u043A\u043E\u0432\u043D\u0430\u044F( \u043B\u0430\u0432\u043A\u0430)?$" + ] }; // node_modules/name-suggestion-index/config/trees.json - var trees = { - brands: { - emoji: "\u{1F354}", - mainTag: "brand:wikidata", - sourceTags: ["brand", "name"], - nameTags: { - primary: "^(name|name:\\w+)$", - alternate: "^(brand|brand:\\w+|operator|operator:\\w+|\\w+_name|\\w+_name:\\w+)$" - } - }, - flags: { - emoji: "\u{1F6A9}", - mainTag: "flag:wikidata", - nameTags: { - primary: "^(flag:name|flag:name:\\w+)$", - alternate: "^(country|country:\\w+|flag|flag:\\w+|subject|subject:\\w+)$" - } - }, - operators: { - emoji: "\u{1F4BC}", - mainTag: "operator:wikidata", - sourceTags: ["operator"], - nameTags: { - primary: "^(name|name:\\w+|operator|operator:\\w+)$", - alternate: "^(brand|brand:\\w+|\\w+_name|\\w+_name:\\w+)$" - } - }, - transit: { - emoji: "\u{1F687}", - mainTag: "network:wikidata", - sourceTags: ["network"], - nameTags: { - primary: "^network$", - alternate: "^(operator|operator:\\w+|network:\\w+|\\w+_name|\\w+_name:\\w+)$" + var trees_default = { + trees: { + brands: { + emoji: "\u{1F354}", + mainTag: "brand:wikidata", + sourceTags: ["brand", "name"], + nameTags: { + primary: "^(name|name:\\w+)$", + alternate: "^(brand|brand:\\w+|operator|operator:\\w+|\\w+_name|\\w+_name:\\w+)$" + } + }, + flags: { + emoji: "\u{1F6A9}", + mainTag: "flag:wikidata", + nameTags: { + primary: "^(flag:name|flag:name:\\w+)$", + alternate: "^(country|country:\\w+|flag|flag:\\w+|subject|subject:\\w+)$" + } + }, + operators: { + emoji: "\u{1F4BC}", + mainTag: "operator:wikidata", + sourceTags: ["operator"], + nameTags: { + primary: "^(name|name:\\w+|operator|operator:\\w+)$", + alternate: "^(brand|brand:\\w+|\\w+_name|\\w+_name:\\w+)$" + } + }, + transit: { + emoji: "\u{1F687}", + mainTag: "network:wikidata", + sourceTags: ["network"], + nameTags: { + primary: "^network$", + alternate: "^(operator|operator:\\w+|network:\\w+|\\w+_name|\\w+_name:\\w+)$" + } } } }; - var trees_default = { - trees - }; // node_modules/name-suggestion-index/lib/matcher.js - var matchGroups2 = matchGroups_default.matchGroups; - var trees2 = trees_default.trees; + var matchGroups = matchGroups_default.matchGroups; + var trees = trees_default.trees; var Matcher = class { constructor() { this.matchIndex = void 0; @@ -38101,7 +38538,7 @@ ${content} const k = parts[1]; const v = parts[2]; const thiskv = `${k}/${v}`; - const tree = trees2[t]; + const tree = trees[t]; let branch = that.matchIndex.get(thiskv); if (!branch) { branch = { @@ -38126,7 +38563,7 @@ ${content} const skipGenericKV = skipGenericKVMatches(t, k, v); const genericKV = /* @__PURE__ */ new Set([`${k}/yes`, `building/yes`]); const matchGroupKV = /* @__PURE__ */ new Set(); - Object.values(matchGroups2).forEach((matchGroup) => { + Object.values(matchGroups).forEach((matchGroup) => { const inGroup = matchGroup.some((otherkv) => otherkv === thiskv); if (!inGroup) return; @@ -38283,8 +38720,8 @@ ${content} let didMatch = tryMatch(which, kv); if (didMatch) return; - for (let mg in matchGroups2) { - const matchGroup = matchGroups2[mg]; + for (let mg in matchGroups) { + const matchGroup = matchGroups[mg]; const inGroup = matchGroup.some((otherkv) => otherkv === kv); if (!inGroup) continue; @@ -38590,19 +39027,19 @@ ${content} var _segmentsByWayId = {}; var tree = {}; function entityBBox(entity) { - var bbox = entity.extent(head).bbox(); - bbox.id = entity.id; - _bboxes[entity.id] = bbox; - return bbox; + var bbox2 = entity.extent(head).bbox(); + bbox2.id = entity.id; + _bboxes[entity.id] = bbox2; + return bbox2; } function segmentBBox(segment) { var extent = segment.extent(head); if (!extent) return null; - var bbox = extent.bbox(); - bbox.segment = segment; - _segmentsBBoxes[segment.id] = bbox; - return bbox; + var bbox2 = extent.bbox(); + bbox2.segment = segment; + _segmentsBBoxes[segment.id] = bbox2; + return bbox2; } function removeEntity(entity) { _rtree.remove(_bboxes[entity.id]); @@ -38696,23 +39133,23 @@ ${content} } tree.intersects = function(extent, graph) { updateToGraph(graph); - return _rtree.search(extent.bbox()).map(function(bbox) { - return graph.entity(bbox.id); + return _rtree.search(extent.bbox()).map(function(bbox2) { + return graph.entity(bbox2.id); }); }; tree.waySegments = function(extent, graph) { updateToGraph(graph); - return _segmentsRTree.search(extent.bbox()).map(function(bbox) { - return bbox.segment; + return _segmentsRTree.search(extent.bbox()).map(function(bbox2) { + return bbox2.segment; }); }; return tree; } // modules/svg/icon.js - function svgIcon(name2, svgklass, useklass) { + function svgIcon(name, svgklass, useklass) { return function drawIcon(selection2) { - selection2.selectAll("svg.icon" + (svgklass ? "." + svgklass.split(" ")[0] : "")).data([0]).enter().append("svg").attr("class", "icon " + (svgklass || "")).append("use").attr("xlink:href", name2).attr("class", useklass); + selection2.selectAll("svg.icon" + (svgklass ? "." + svgklass.split(" ")[0] : "")).data([0]).enter().append("svg").attr("class", "icon " + (svgklass || "")).append("use").attr("xlink:href", name).attr("class", useklass); }; } @@ -39382,12 +39819,12 @@ ${content} message: function(context2) { const entity1 = context2.hasEntity(this.entityIds[0]); if (this.entityIds[0] === this.entityIds[2]) { - return entity1 ? _t.html("issues.almost_junction.self.message", { + return entity1 ? _t.append("issues.almost_junction.self.message", { feature: utilDisplayLabel(entity1, context2.graph()) }) : ""; } else { const entity2 = context2.hasEntity(this.entityIds[2]); - return entity1 && entity2 ? _t.html("issues.almost_junction.message", { + return entity1 && entity2 ? _t.append("issues.almost_junction.message", { feature: utilDisplayLabel(entity1, context2.graph()), feature2: utilDisplayLabel(entity2, context2.graph()) }) : ""; @@ -39413,7 +39850,7 @@ ${content} function makeFixes(context2) { let fixes = [new validationIssueFix({ icon: "iD-icon-abutment", - title: _t.html("issues.fix.connect_features.title"), + title: _t.append("issues.fix.connect_features.title"), onClick: function(context3) { const annotation = _t("issues.fix.connect_almost_junction.annotation"); const [, endNodeId, crossWayId] = this.issue.entityIds; @@ -39424,7 +39861,10 @@ ${content} if (nearEndNodes.length > 0) { const collinear = findSmallJoinAngle(midNode, endNode, nearEndNodes); if (collinear) { - context3.perform(actionMergeNodes([collinear.id, endNode.id], collinear.loc), annotation); + context3.perform( + actionMergeNodes([collinear.id, endNode.id], collinear.loc), + annotation + ); return; } } @@ -39433,9 +39873,15 @@ ${content} const edgeNodes = [context3.entity(targetEdge[0]), context3.entity(targetEdge[1])]; const closestNodeInfo = geoSphericalClosestNode(edgeNodes, crossLoc); if (closestNodeInfo.distance < WELD_TH_METERS) { - context3.perform(actionMergeNodes([closestNodeInfo.node.id, endNode.id], closestNodeInfo.node.loc), annotation); + context3.perform( + actionMergeNodes([closestNodeInfo.node.id, endNode.id], closestNodeInfo.node.loc), + annotation + ); } else { - context3.perform(actionAddMidpoint({ loc: crossLoc, edge: targetEdge }, endNode), annotation); + context3.perform( + actionAddMidpoint({ loc: crossLoc, edge: targetEdge }, endNode), + annotation + ); } } })]; @@ -39443,12 +39889,15 @@ ${content} if (node && !node.hasInterestingTags()) { fixes.push(new validationIssueFix({ icon: "maki-barrier", - title: _t.html("issues.fix.tag_as_disconnected.title"), + title: _t.append("issues.fix.tag_as_disconnected.title"), onClick: function(context3) { const nodeID = this.issue.entityIds[1]; const tags = Object.assign({}, context3.entity(nodeID).tags); tags.noexit = "yes"; - context3.perform(actionChangeTags(nodeID, tags), _t("issues.fix.tag_as_disconnected.annotation")); + context3.perform( + actionChangeTags(nodeID, tags), + _t("issues.fix.tag_as_disconnected.annotation") + ); } })); } @@ -39631,8 +40080,8 @@ ${content} function shouldCheckWay(way) { if (way.nodes.length <= 2 || way.isClosed() && way.nodes.length <= 4) return false; - var bbox = way.extent(graph).bbox(); - var hypotenuseMeters = geoSphericalDistance([bbox.minX, bbox.minY], [bbox.maxX, bbox.maxY]); + var bbox2 = way.extent(graph).bbox(); + var hypotenuseMeters = geoSphericalDistance([bbox2.minX, bbox2.minY], [bbox2.maxX, bbox2.maxY]); if (hypotenuseMeters < 1.5) return false; return true; @@ -39709,6 +40158,10 @@ ${content} if (nearby.type !== "node" || nearby.geometry(graph) !== "point") continue; if (nearby.loc === node.loc || geoSphericalDistance(node.loc, nearby.loc) < pointThresholdMeters) { + if ("memorial:type" in node.tags && "memorial:type" in nearby.tags && node.tags["memorial:type"] === "stolperstein" && nearby.tags["memorial:type"] === "stolperstein") + continue; + if ("memorial" in node.tags && "memorial" in nearby.tags && node.tags.memorial === "stolperstein" && nearby.tags.memorial === "stolperstein") + continue; var zAxisKeys = { layer: true, level: true, "addr:housenumber": true, "addr:unit": true }; var zAxisDifferentiates = false; for (var key in zAxisKeys) { @@ -39727,7 +40180,7 @@ ${content} severity: "warning", message: function(context2) { var entity2 = context2.hasEntity(this.entityIds[0]), entity22 = context2.hasEntity(this.entityIds[1]); - return entity2 && entity22 ? _t.html("issues.close_nodes.detached.message", { + return entity2 && entity22 ? _t.append("issues.close_nodes.detached.message", { feature: utilDisplayLabel(entity2, context2.graph()), feature2: utilDisplayLabel(entity22, context2.graph()) }) : ""; @@ -39738,11 +40191,11 @@ ${content} return [ new validationIssueFix({ icon: "iD-operation-disconnect", - title: _t.html("issues.fix.move_points_apart.title") + title: _t.append("issues.fix.move_points_apart.title") }), new validationIssueFix({ icon: "iD-icon-layers", - title: _t.html("issues.fix.use_different_layers_or_levels.title") + title: _t.append("issues.fix.use_different_layers_or_levels.title") }) ]; } @@ -39779,7 +40232,7 @@ ${content} severity: "warning", message: function(context2) { var entity2 = context2.hasEntity(this.entityIds[0]); - return entity2 ? _t.html("issues.close_nodes.message", { way: utilDisplayLabel(entity2, context2.graph()) }) : ""; + return entity2 ? _t.append("issues.close_nodes.message", { way: utilDisplayLabel(entity2, context2.graph()) }) : ""; }, reference: showReference, entityIds: [way.id, node1.id, node2.id], @@ -39788,7 +40241,7 @@ ${content} return [ new validationIssueFix({ icon: "iD-icon-plus", - title: _t.html("issues.fix.merge_points.title"), + title: _t.append("issues.fix.merge_points.title"), onClick: function(context2) { var entityIds = this.issue.entityIds; var action = actionMergeNodes([entityIds[1], entityIds[2]]); @@ -39797,7 +40250,7 @@ ${content} }), new validationIssueFix({ icon: "iD-operation-disconnect", - title: _t.html("issues.fix.move_points_apart.title") + title: _t.append("issues.fix.move_points_apart.title") }) ]; } @@ -39929,7 +40382,7 @@ ${content} return {}; } var pathFeature = entity1IsPath ? entity1 : entity2; - if (["marked", "unmarked"].indexOf(pathFeature.tags.crossing) !== -1) { + if (["marked", "unmarked", "traffic_signals"].indexOf(pathFeature.tags.crossing) !== -1) { return bothLines ? { highway: "crossing", crossing: pathFeature.tags.crossing } : {}; } return bothLines ? { highway: "crossing" } : {}; @@ -40031,8 +40484,8 @@ ${content} continue; segment1 = [n1.loc, n2.loc]; segment2 = [nA.loc, nB.loc]; - var point = geoLineIntersection(segment1, segment2); - if (point) { + var point2 = geoLineIntersection(segment1, segment2); + if (point2) { edgeCrossInfos.push({ wayInfos: [ { @@ -40046,7 +40499,7 @@ ${content} edge: [nA.id, nB.id] } ], - crossPoint: point + crossPoint: point2 }); if (oneOnly) { checkedSingleCrossingWays[way2.id] = true; @@ -40133,7 +40586,7 @@ ${content} message: function(context2) { var graph2 = context2.graph(); var entity1 = graph2.hasEntity(this.entityIds[0]), entity2 = graph2.hasEntity(this.entityIds[1]); - return entity1 && entity2 ? _t.html("issues.crossing_ways.message", { + return entity1 && entity2 ? _t.append("issues.crossing_ways.message", { feature: utilDisplayLabel(entity1, graph2), feature2: utilDisplayLabel(entity2, graph2) }) : ""; @@ -40163,7 +40616,7 @@ ${content} if (isCrossingIndoors) { fixes.push(new validationIssueFix({ icon: "iD-icon-layers", - title: _t.html("issues.fix.use_different_levels.title") + title: _t.append("issues.fix.use_different_levels.title") })); } else if (isCrossingTunnels || isCrossingBridges || featureType1 === "building" || featureType2 === "building") { fixes.push(makeChangeLayerFix("higher")); @@ -40179,7 +40632,7 @@ ${content} } fixes.push(new validationIssueFix({ icon: "iD-operation-move", - title: _t.html("issues.fix.reposition_features.title") + title: _t.append("issues.fix.reposition_features.title") })); return fixes; } @@ -40191,7 +40644,7 @@ ${content} function makeAddBridgeOrTunnelFix(fixTitleID, iconName, bridgeOrTunnel) { return new validationIssueFix({ icon: iconName, - title: _t.html("issues.fix." + fixTitleID + ".title"), + title: _t.append("issues.fix." + fixTitleID + ".title"), onClick: function(context2) { var mode = context2.mode(); if (!mode || mode.id !== "select") @@ -40342,37 +40795,40 @@ ${content} } return new validationIssueFix({ icon: "iD-icon-crossing", - title: _t.html("issues.fix." + fixTitleID + ".title"), + title: _t.append("issues.fix." + fixTitleID + ".title"), onClick: function(context2) { var loc = this.issue.loc; var connectionTags2 = this.issue.data.connectionTags; var edges = this.issue.data.edges; - context2.perform(function actionConnectCrossingWays(graph) { - var node = osmNode({ loc, tags: connectionTags2 }); - graph = graph.replace(node); - var nodesToMerge = [node.id]; - var mergeThresholdInMeters = 0.75; - edges.forEach(function(edge) { - var edgeNodes = [graph.entity(edge[0]), graph.entity(edge[1])]; - var nearby = geoSphericalClosestNode(edgeNodes, loc); - if ((!nearby.node.hasInterestingTags() || nearby.node.isCrossing()) && nearby.distance < mergeThresholdInMeters) { - nodesToMerge.push(nearby.node.id); - } else { - graph = actionAddMidpoint({ loc, edge }, node)(graph); + context2.perform( + function actionConnectCrossingWays(graph) { + var node = osmNode({ loc, tags: connectionTags2 }); + graph = graph.replace(node); + var nodesToMerge = [node.id]; + var mergeThresholdInMeters = 0.75; + edges.forEach(function(edge) { + var edgeNodes = [graph.entity(edge[0]), graph.entity(edge[1])]; + var nearby = geoSphericalClosestNode(edgeNodes, loc); + if ((!nearby.node.hasInterestingTags() || nearby.node.isCrossing()) && nearby.distance < mergeThresholdInMeters) { + nodesToMerge.push(nearby.node.id); + } else { + graph = actionAddMidpoint({ loc, edge }, node)(graph); + } + }); + if (nodesToMerge.length > 1) { + graph = actionMergeNodes(nodesToMerge, loc)(graph); } - }); - if (nodesToMerge.length > 1) { - graph = actionMergeNodes(nodesToMerge, loc)(graph); - } - return graph; - }, _t("issues.fix.connect_crossing_features.annotation")); + return graph; + }, + _t("issues.fix.connect_crossing_features.annotation") + ); } }); } function makeChangeLayerFix(higherOrLower) { return new validationIssueFix({ icon: "iD-icon-" + (higherOrLower === "higher" ? "up" : "down"), - title: _t.html("issues.fix.tag_this_as_" + higherOrLower + ".title"), + title: _t.append("issues.fix.tag_this_as_" + higherOrLower + ".title"), onClick: function(context2) { var mode = context2.mode(); if (!mode || mode.id !== "select") @@ -40404,7 +40860,10 @@ ${content} } } tags.layer = layer.toString(); - context2.perform(actionChangeTags(entity.id, tags), _t("operations.change_tags.annotation")); + context2.perform( + actionChangeTags(entity.id, tags), + _t("operations.change_tags.annotation") + ); } }); } @@ -40437,10 +40896,13 @@ ${content} } function removeDrawNode() { context.pauseChangeDispatch(); - context.replace(function actionDeleteDrawNode(graph) { - var way = graph.entity(wayID); - return graph.replace(way.removeNode(_drawNode.id)).remove(_drawNode); - }, _annotation); + context.replace( + function actionDeleteDrawNode(graph) { + var way = graph.entity(wayID); + return graph.replace(way.removeNode(_drawNode.id)).remove(_drawNode); + }, + _annotation + ); _drawNode = void 0; context.resumeChangeDispatch(); } @@ -40549,7 +41011,9 @@ ${content} _headNodeID = _origWay.nodes[_origWay.nodes.length - 1]; } _wayGeometry = _origWay.geometry(context.graph()); - _annotation = _t((_origWay.nodes.length === (_origWay.isClosed() ? 2 : 1) ? "operations.start.annotation." : "operations.continue.annotation.") + _wayGeometry); + _annotation = _t( + (_origWay.nodes.length === (_origWay.isClosed() ? 2 : 1) ? "operations.start.annotation." : "operations.continue.annotation.") + _wayGeometry + ); _pointerHasMoved = false; context.pauseChangeDispatch(); context.perform(actionNoop(), _annotation); @@ -40611,7 +41075,10 @@ ${content} }; drawWay.addWay = function(loc, edge, d) { attemptAdd(d, loc, function() { - context.replace(actionAddMidpoint({ loc, edge }, _drawNode), _annotation); + context.replace( + actionAddMidpoint({ loc, edge }, _drawNode), + _annotation + ); }); }; drawWay.addNode = function(node, d) { @@ -40620,10 +41087,13 @@ ${content} return; } attemptAdd(d, node.loc, function() { - context.replace(function actionReplaceDrawNode(graph) { - graph = graph.replace(graph.entity(wayID).removeNode(_drawNode.id)).remove(_drawNode); - return graph.replace(graph.entity(wayID).addNode(node.id, _nodeIndex)); - }, _annotation); + context.replace( + function actionReplaceDrawNode(graph) { + graph = graph.replace(graph.entity(wayID).removeNode(_drawNode.id)).remove(_drawNode); + return graph.replace(graph.entity(wayID).addNode(node.id, _nodeIndex)); + }, + _annotation + ); }); }; function getFeatureType(ways) { @@ -40641,18 +41111,18 @@ ${content} const [secondLastNodeId, lastNodeId] = _origWay.nodes.slice(isDrawingArea ? -3 : -2); const historyGraph = context.history().graph(); if (!lastNodeId || !secondLastNodeId || !historyGraph.hasEntity(lastNodeId) || !historyGraph.hasEntity(secondLastNodeId)) { - context.ui().flash.duration(4e3).iconName("#iD-icon-no").label(_t.html("operations.follow.error.needs_more_initial_nodes"))(); + context.ui().flash.duration(4e3).iconName("#iD-icon-no").label(_t.append("operations.follow.error.needs_more_initial_nodes"))(); return; } const lastNodesParents = historyGraph.parentWays(historyGraph.entity(lastNodeId)).filter((w) => w.id !== wayID); const secondLastNodesParents = historyGraph.parentWays(historyGraph.entity(secondLastNodeId)).filter((w) => w.id !== wayID); const featureType = getFeatureType(lastNodesParents); if (lastNodesParents.length !== 1 || secondLastNodesParents.length === 0) { - context.ui().flash.duration(4e3).iconName("#iD-icon-no").label(_t.html(`operations.follow.error.intersection_of_multiple_ways.${featureType}`))(); + context.ui().flash.duration(4e3).iconName("#iD-icon-no").label(_t.append(`operations.follow.error.intersection_of_multiple_ways.${featureType}`))(); return; } if (!secondLastNodesParents.some((n2) => n2.id === lastNodesParents[0].id)) { - context.ui().flash.duration(4e3).iconName("#iD-icon-no").label(_t.html(`operations.follow.error.intersection_of_different_ways.${featureType}`))(); + context.ui().flash.duration(4e3).iconName("#iD-icon-no").label(_t.append(`operations.follow.error.intersection_of_different_ways.${featureType}`))(); return; } const way = lastNodesParents[0]; @@ -40669,7 +41139,7 @@ ${content} properties: { target: true, entity: nextNode } }); } catch (ex) { - context.ui().flash.duration(4e3).iconName("#iD-icon-no").label(_t.html("operations.follow.error.unknown"))(); + context.ui().flash.duration(4e3).iconName("#iD-icon-no").label(_t.append("operations.follow.error.unknown"))(); } } keybinding.on(_t("operations.follow.key"), followMode); @@ -40726,7 +41196,7 @@ ${content} id: "draw-line" }; var behavior = behaviorDrawWay(context, wayID, mode, startGraph).on("rejectedSelfIntersection.modeDrawLine", function() { - context.ui().flash.iconName("#iD-icon-no").label(_t.html("self_intersection.error.lines"))(); + context.ui().flash.iconName("#iD-icon-no").label(_t.append("self_intersection.error.lines"))(); }); mode.wayID = wayID; mode.isContinuing = continuing; @@ -40763,7 +41233,7 @@ ${content} message: function(context) { var entity2 = this.entityIds.length && context.hasEntity(this.entityIds[0]); var label = entity2 && utilDisplayLabel(entity2, context.graph()); - return _t.html("issues.disconnected_way.routable.message", { count: this.entityIds.length, highway: label }); + return _t.append("issues.disconnected_way.routable.message", { count: this.entityIds.length, highway: label }); }, reference: showReference, entityIds: Array.from(routingIslandWays).map(function(way) { @@ -40786,12 +41256,12 @@ ${content} } if (!fixes.length) { fixes.push(new validationIssueFix({ - title: _t.html("issues.fix.connect_feature.title") + title: _t.append("issues.fix.connect_feature.title") })); } fixes.push(new validationIssueFix({ icon: "iD-operation-delete", - title: _t.html("issues.fix.delete_feature.title"), + title: _t.append("issues.fix.delete_feature.title"), entityIds: [singleEntity.id], onClick: function(context2) { var id2 = this.issue.entityIds[0]; @@ -40803,7 +41273,7 @@ ${content} })); } else { fixes.push(new validationIssueFix({ - title: _t.html("issues.fix.connect_features.title") + title: _t.append("issues.fix.connect_features.title") })); } return fixes; @@ -40880,7 +41350,7 @@ ${content} var useLeftContinue = whichEnd === "start" && textDirection === "ltr" || whichEnd === "end" && textDirection === "rtl"; return new validationIssueFix({ icon: "iD-operation-continue" + (useLeftContinue ? "-left" : ""), - title: _t.html("issues.fix.continue_from_" + whichEnd + ".title"), + title: _t.append("issues.fix.continue_from_" + whichEnd + ".title"), entityIds: [vertexID], onClick: function(context) { var wayId = this.issue.entityIds[0]; @@ -40893,7 +41363,9 @@ ${content} if (!context.editable() || !map2.trimmedExtent().contains(vertex2.loc)) { map2.zoomToEase(vertex2); } - context.enter(modeDrawLine(context, wayId, context.graph(), "line", way.affix(vertexId), true)); + context.enter( + modeDrawLine(context, wayId, context.graph(), "line", way.affix(vertexId), true) + ); } }); } @@ -40927,7 +41399,10 @@ ${content} severity: "warning", message: function(context) { var entity2 = context.hasEntity(this.entityIds[0]); - return entity2 ? _t.html("issues.invalid_format.email.message" + this.data, { feature: utilDisplayLabel(entity2, context.graph()), email: emails.join(", ") }) : ""; + return entity2 ? _t.append( + "issues.invalid_format.email.message" + this.data, + { feature: utilDisplayLabel(entity2, context.graph()), email: emails.join(", ") } + ) : ""; }, reference: showReferenceEmail, entityIds: [entity.id], @@ -40961,14 +41436,14 @@ ${content} severity: "warning", message: function(context2) { var entity2 = context2.hasEntity(this.entityIds[0]); - return entity2 ? _t.html("issues.fixme_tag.message", { + return entity2 ? _t.append("issues.fixme_tag.message", { feature: utilDisplayLabel(entity2, context2.graph(), true) }) : ""; }, dynamicFixes: function() { return [ new validationIssueFix({ - title: _t.html("issues.fix.address_the_concern.title") + title: _t.append("issues.fix.address_the_concern.title") }) ]; }, @@ -41116,7 +41591,7 @@ ${content} severity: "warning", message: function(context) { var entity2 = context.hasEntity(this.entityIds[0]); - return entity2 ? _t.html("issues.impossible_oneway." + messageID + ".message", { + return entity2 ? _t.append("issues.impossible_oneway." + messageID + ".message", { feature: utilDisplayLabel(entity2, context.graph()) }) : ""; }, @@ -41127,7 +41602,7 @@ ${content} if (attachedOneways.length) { fixes.push(new validationIssueFix({ icon: "iD-operation-reverse", - title: _t.html("issues.fix.reverse_feature.title"), + title: _t.append("issues.fix.reverse_feature.title"), entityIds: [way.id], onClick: function(context) { var id2 = this.issue.entityIds[0]; @@ -41140,7 +41615,7 @@ ${content} var useLeftContinue = isFirst && textDirection === "ltr" || !isFirst && textDirection === "rtl"; fixes.push(new validationIssueFix({ icon: "iD-operation-continue" + (useLeftContinue ? "-left" : ""), - title: _t.html("issues.fix.continue_from_" + (isFirst ? "start" : "end") + ".title"), + title: _t.append("issues.fix.continue_from_" + (isFirst ? "start" : "end") + ".title"), onClick: function(context) { var entityID = this.issue.entityIds[0]; var vertexID = this.issue.entityIds[1]; @@ -41166,7 +41641,9 @@ ${content} if (!context.editable() || !map2.trimmedExtent().contains(vertex.loc)) { map2.zoomToEase(vertex); } - context.enter(modeDrawLine(context, way.id, context.graph(), "line", way.affix(vertex.id), true)); + context.enter( + modeDrawLine(context, way.id, context.graph(), "line", way.affix(vertex.id), true) + ); } validation.type = type3; return validation; @@ -41210,7 +41687,7 @@ ${content} severity: "warning", message: (context) => { const entity2 = context.hasEntity(entityID); - return entity2 ? _t.html("issues.incompatible_source.feature.message", { + return entity2 ? _t.append("issues.incompatible_source.feature.message", { feature: utilDisplayLabel(entity2, context.graph(), true), value: source }) : ""; @@ -41220,7 +41697,7 @@ ${content} hash: source, dynamicFixes: () => { return [ - new validationIssueFix({ title: _t.html("issues.fix.remove_proprietary_data.title") }) + new validationIssueFix({ title: _t.append("issues.fix.remove_proprietary_data.title") }) ]; } }); @@ -41283,7 +41760,10 @@ ${content} if (!geoHasSelfIntersections(testNodes, testNodes[0].id)) { return function(context) { var way2 = context.entity(this.issue.entityIds[0]); - context.perform(actionMergeNodes([way2.nodes[0], way2.nodes[way2.nodes.length - 1]], nodes[0].loc), _t("issues.fix.connect_endpoints.annotation")); + context.perform( + actionMergeNodes([way2.nodes[0], way2.nodes[way2.nodes.length - 1]], nodes[0].loc), + _t("issues.fix.connect_endpoints.annotation") + ); }; } } @@ -41295,7 +41775,10 @@ ${content} var way2 = context.entity(wayId); var nodeId = way2.nodes[0]; var index = way2.nodes.length; - context.perform(actionAddVertex(wayId, nodeId, index), _t("issues.fix.connect_endpoints.annotation")); + context.perform( + actionAddVertex(wayId, nodeId, index), + _t("issues.fix.connect_endpoints.annotation") + ); }; } } @@ -41303,13 +41786,25 @@ ${content} var tagSuggestingArea = tagSuggestingLineIsArea(entity); if (!tagSuggestingArea) return null; + var validAsLine = false; + var presetAsLine = _mainPresetIndex.matchTags(entity.tags, "line"); + if (presetAsLine) { + validAsLine = true; + var key = Object.keys(tagSuggestingArea)[0]; + if (presetAsLine.tags[key] && presetAsLine.tags[key] === "*") { + validAsLine = false; + } + if (Object.keys(presetAsLine.tags).length === 0) { + validAsLine = false; + } + } return new validationIssue({ type: type3, subtype: "area_as_line", severity: "warning", message: function(context) { var entity2 = context.hasEntity(this.entityIds[0]); - return entity2 ? _t.html("issues.tag_suggests_area.message", { + return entity2 ? _t.append("issues.tag_suggests_area.message", { feature: utilDisplayLabel(entity2, "area", true), tag: utilTagText({ tags: tagSuggestingArea }) }) : ""; @@ -41321,21 +41816,26 @@ ${content} var fixes = []; var entity2 = context.entity(this.entityIds[0]); var connectEndsOnClick = makeConnectEndpointsFixOnClick(entity2, context.graph()); - fixes.push(new validationIssueFix({ - title: _t.html("issues.fix.connect_endpoints.title"), - onClick: connectEndsOnClick - })); + if (!validAsLine) { + fixes.push(new validationIssueFix({ + title: _t.append("issues.fix.connect_endpoints.title"), + onClick: connectEndsOnClick + })); + } fixes.push(new validationIssueFix({ icon: "iD-operation-delete", - title: _t.html("issues.fix.remove_tag.title"), + title: _t.append("issues.fix.remove_tag.title"), onClick: function(context2) { var entityId = this.issue.entityIds[0]; var entity3 = context2.entity(entityId); var tags = Object.assign({}, entity3.tags); - for (var key in tagSuggestingArea) { - delete tags[key]; + for (var key2 in tagSuggestingArea) { + delete tags[key2]; } - context2.perform(actionChangeTags(entityId, tags), _t("issues.fix.remove_tag.annotation")); + context2.perform( + actionChangeTags(entityId, tags), + _t("issues.fix.remove_tag.annotation") + ); } })); return fixes; @@ -41361,7 +41861,7 @@ ${content} severity: "warning", message: function(context) { var entity2 = context.hasEntity(this.entityIds[0]); - return entity2 ? _t.html("issues.vertex_as_point.message", { + return entity2 ? _t.append("issues.vertex_as_point.message", { feature: utilDisplayLabel(entity2, "vertex", true) }) : ""; }, @@ -41377,7 +41877,7 @@ ${content} severity: "warning", message: function(context) { var entity2 = context.hasEntity(this.entityIds[0]); - return entity2 ? _t.html("issues.point_as_vertex.message", { + return entity2 ? _t.append("issues.point_as_vertex.message", { feature: utilDisplayLabel(entity2, "point", true) }) : ""; }, @@ -41435,7 +41935,7 @@ ${content} severity: "warning", message: function(context) { var entity2 = context.hasEntity(this.entityIds[0]); - return entity2 ? _t.html("issues." + referenceId + ".message", { + return entity2 ? _t.append("issues." + referenceId + ".message", { feature: utilDisplayLabel(entity2, targetGeom, true) }) : ""; }, @@ -41460,13 +41960,16 @@ ${content} if (tags2.area) { delete tags2.area; } - context2.perform(actionChangeTags(entityId2, tags2), _t("issues.fix.convert_to_line.annotation")); + context2.perform( + actionChangeTags(entityId2, tags2), + _t("issues.fix.convert_to_line.annotation") + ); }; } return [ new validationIssueFix({ icon: "iD-icon-line", - title: _t.html("issues.fix.convert_to_line.title"), + title: _t.append("issues.fix.convert_to_line.title"), onClick: convertOnClick }) ]; @@ -41478,14 +41981,17 @@ ${content} extractOnClick = function(context2) { var entityId2 = this.issue.entityIds[0]; var action = actionExtract(entityId2, context2.projection); - context2.perform(action, _t("operations.extract.annotation", { n: 1 })); + context2.perform( + action, + _t("operations.extract.annotation", { n: 1 }) + ); context2.enter(modeSelect(context2, [action.getExtractedNodeID()])); }; } return [ new validationIssueFix({ icon: "iD-operation-extract", - title: _t.html("issues.fix.extract_point.title"), + title: _t.append("issues.fix.extract_point.title"), onClick: extractOnClick }) ]; @@ -41509,7 +42015,7 @@ ${content} severity: "warning", message: function(context) { var entity2 = context.hasEntity(this.entityIds[0]); - return entity2 ? _t.html("issues.unclosed_multipolygon_part.message", { + return entity2 ? _t.append("issues.unclosed_multipolygon_part.message", { feature: utilDisplayLabel(entity2, context.graph(), true) }) : ""; }, @@ -41576,7 +42082,7 @@ ${content} severity: "warning", message: function(context) { var member2 = context.hasEntity(this.entityIds[1]), relation2 = context.hasEntity(this.entityIds[0]); - return member2 && relation2 ? _t.html("issues.missing_role.message", { + return member2 && relation2 ? _t.append("issues.missing_role.message", { member: utilDisplayLabel(member2, context.graph()), relation: utilDisplayLabel(relation2, context.graph()) }) : ""; @@ -41593,11 +42099,14 @@ ${content} makeAddRoleFix("outer"), new validationIssueFix({ icon: "iD-operation-delete", - title: _t.html("issues.fix.remove_from_relation.title"), + title: _t.append("issues.fix.remove_from_relation.title"), onClick: function(context) { - context.perform(actionDeleteMember(this.issue.entityIds[0], this.issue.data.member.index), _t("operations.delete_member.annotation", { - n: 1 - })); + context.perform( + actionDeleteMember(this.issue.entityIds[0], this.issue.data.member.index), + _t("operations.delete_member.annotation", { + n: 1 + }) + ); } }) ]; @@ -41609,13 +42118,16 @@ ${content} } function makeAddRoleFix(role) { return new validationIssueFix({ - title: _t.html("issues.fix.set_as_" + role + ".title"), + title: _t.append("issues.fix.set_as_" + role + ".title"), onClick: function(context) { var oldMember = this.issue.data.member; var member = { id: this.issue.entityIds[1], type: oldMember.type, role }; - context.perform(actionChangeMember(this.issue.entityIds[0], member, oldMember.index), _t("operations.change_role.annotation", { - n: 1 - })); + context.perform( + actionChangeMember(this.issue.entityIds[0], member, oldMember.index), + _t("operations.change_role.annotation", { + n: 1 + }) + ); } }); } @@ -41674,7 +42186,7 @@ ${content} severity, message: function(context2) { var entity2 = context2.hasEntity(this.entityIds[0]); - return entity2 ? _t.html("issues." + messageID + ".message", { + return entity2 ? _t.append("issues." + messageID + ".message", { feature: utilDisplayLabel(entity2, context2.graph()) }) : ""; }, @@ -41685,7 +42197,7 @@ ${content} var selectFixType = subtype === "highway_classification" ? "select_road_type" : "select_preset"; fixes.push(new validationIssueFix({ icon: "iD-icon-search", - title: _t.html("issues.fix." + selectFixType + ".title"), + title: _t.append("issues.fix." + selectFixType + ".title"), onClick: function(context3) { context3.ui().sidebar.showPresetList(); } @@ -41703,12 +42215,14 @@ ${content} } }; } - fixes.push(new validationIssueFix({ - icon: "iD-operation-delete", - title: _t.html("issues.fix.delete_feature.title"), - disabledReason: disabledReasonID ? _t("operations.delete." + disabledReasonID + ".single") : void 0, - onClick: deleteOnClick - })); + fixes.push( + new validationIssueFix({ + icon: "iD-operation-delete", + title: _t.append("issues.fix.delete_feature.title"), + disabledReason: disabledReasonID ? _t("operations.delete." + disabledReasonID + ".single") : void 0, + onClick: deleteOnClick + }) + ); return fixes; } })]; @@ -41802,7 +42316,7 @@ ${content} let fixes = [ new validationIssueFix({ autoArgs, - title: _t.html("issues.fix.upgrade_tags.title"), + title: _t.append("issues.fix.upgrade_tags.title"), onClick: (context) => { context.perform(doUpgrade, _t("issues.fix.upgrade_tags.annotation")); } @@ -41810,12 +42324,14 @@ ${content} ]; const item = nsiResult && nsiResult.matched; if (item) { - fixes.push(new validationIssueFix({ - title: _t.html("issues.fix.tag_as_not.title", { name: item.displayName }), - onClick: (context) => { - context.perform(addNotTag, _t("issues.fix.tag_as_not.annotation")); - } - })); + fixes.push( + new validationIssueFix({ + title: _t.append("issues.fix.tag_as_not.title", { name: item.displayName }), + onClick: (context) => { + context.perform(addNotTag, _t("issues.fix.tag_as_not.annotation")); + } + }) + ); } return fixes; } @@ -41862,7 +42378,7 @@ ${content} if (subtype === "noncanonical_brand" && isOnlyAddingTags) { messageID += "_incomplete"; } - return _t.html(messageID, { + return _t.append(messageID, { feature: utilDisplayLabel(currEntity, context.graph(), true) }); } @@ -41900,7 +42416,7 @@ ${content} return [ new validationIssueFix({ autoArgs: [doUpgrade, _t("issues.fix.move_tags.annotation")], - title: _t.html("issues.fix.move_tags.title"), + title: _t.append("issues.fix.move_tags.title"), onClick: (context) => { context.perform(doUpgrade, _t("issues.fix.move_tags.annotation")); } @@ -41921,7 +42437,10 @@ ${content} let currMultipolygon = context.hasEntity(multipolygon.id); if (!currMultipolygon) return ""; - return _t.html("issues.old_multipolygon.message", { multipolygon: utilDisplayLabel(currMultipolygon, context.graph(), true) }); + return _t.append( + "issues.old_multipolygon.message", + { multipolygon: utilDisplayLabel(currMultipolygon, context.graph(), true) } + ); } function showReference(selection2) { selection2.selectAll(".issue-reference").data([0]).enter().append("div").attr("class", "issue-reference").call(_t.append("issues.old_multipolygon.reference")); @@ -41992,9 +42511,9 @@ ${content} return [ new validationIssueFix({ icon: "iD-operation-delete", - title: _t.html("issues.fix." + fixID + ".title"), + title: _t.append("issues.fix." + fixID + ".title"), onClick: function(context) { - context.perform(doUpgrade, _t("issues.fix.upgrade_tags.annotation")); + context.perform(doUpgrade, _t("issues.fix.remove_tag.annotation")); } }) ]; @@ -42018,7 +42537,10 @@ ${content} var currEntity = context.hasEntity(this.entityIds[0]); if (!currEntity) return ""; - return _t.html("issues.private_data.contact.message", { feature: utilDisplayLabel(currEntity, context.graph()) }); + return _t.append( + "issues.private_data.contact.message", + { feature: utilDisplayLabel(currEntity, context.graph()) } + ); } function showReference(selection2) { var enter = selection2.selectAll(".issue-reference").data([0]).enter(); @@ -42078,9 +42600,9 @@ ${content} } return false; } - function isGenericName(name2, tags) { - name2 = name2.toLowerCase(); - return nameMatchesRawTag(name2, tags) || isGenericMatchInNsi(tags); + function isGenericName(name, tags) { + name = name.toLowerCase(); + return nameMatchesRawTag(name, tags) || isGenericMatchInNsi(tags); } function makeGenericNameIssue(entityId, nameKey, genericName, langCode) { return new validationIssue({ @@ -42093,7 +42615,10 @@ ${content} return ""; let preset = _mainPresetIndex.match(entity, context.graph()); let langName = langCode && _mainLocalizer.languageName(langCode); - return _t.html("issues.generic_name.message" + (langName ? "_language" : ""), { feature: preset.name(), name: genericName, language: langName }); + return _t.append( + "issues.generic_name.message" + (langName ? "_language" : ""), + { feature: preset.name(), name: genericName, language: langName } + ); }, reference: showReference, entityIds: [entityId], @@ -42102,13 +42627,16 @@ ${content} return [ new validationIssueFix({ icon: "iD-operation-delete", - title: _t.html("issues.fix.remove_the_name.title"), + title: _t.append("issues.fix.remove_the_name.title"), onClick: function(context) { let entityId2 = this.issue.entityIds[0]; let entity = context.entity(entityId2); let tags = Object.assign({}, entity.tags); delete tags[nameKey]; - context.perform(actionChangeTags(entityId2, tags), _t("issues.fix.remove_generic_name.annotation")); + context.perform( + actionChangeTags(entityId2, tags), + _t("issues.fix.remove_generic_name.annotation") + ); } }) ]; @@ -42129,7 +42657,10 @@ ${content} return ""; const preset = _mainPresetIndex.match(entity, context.graph()); const langName = langCode && _mainLocalizer.languageName(langCode); - return _t.html("issues.incorrect_name.message" + (langName ? "_language" : ""), { feature: preset.name(), name: incorrectName, language: langName }); + return _t.append( + "issues.incorrect_name.message" + (langName ? "_language" : ""), + { feature: preset.name(), name: incorrectName, language: langName } + ); }, reference: showReference, entityIds: [entityId], @@ -42138,13 +42669,16 @@ ${content} return [ new validationIssueFix({ icon: "iD-operation-delete", - title: _t.html("issues.fix.remove_the_name.title"), + title: _t.append("issues.fix.remove_the_name.title"), onClick: function(context) { const entityId2 = this.issue.entityIds[0]; const entity = context.entity(entityId2); let tags = Object.assign({}, entity.tags); delete tags[nameKey]; - context.perform(actionChangeTags(entityId2, tags), _t("issues.fix.remove_mistaken_name.annotation")); + context.perform( + actionChangeTags(entityId2, tags), + _t("issues.fix.remove_mistaken_name.annotation") + ); } }) ]; @@ -42246,7 +42780,7 @@ ${content} severity: "warning", message: function(context2) { var entity2 = context2.hasEntity(this.entityIds[0]); - return entity2 ? _t.html("issues.unsquare_way.message", { + return entity2 ? _t.append("issues.unsquare_way.message", { feature: utilDisplayLabel(entity2, context2.graph()) }) : ""; }, @@ -42257,11 +42791,14 @@ ${content} return [ new validationIssueFix({ icon: "iD-operation-orthogonalize", - title: _t.html("issues.fix.square_feature.title"), + title: _t.append("issues.fix.square_feature.title"), autoArgs, onClick: function(context2, completionHandler) { var entityId = this.issue.entityIds[0]; - context2.perform(actionOrthogonalize(entityId, context2.projection, void 0, degreeThreshold), _t("operations.orthogonalize.annotation.feature", { n: 1 })); + context2.perform( + actionOrthogonalize(entityId, context2.projection, void 0, degreeThreshold), + _t("operations.orthogonalize.annotation.feature", { n: 1 }) + ); window.setTimeout(function() { completionHandler(); }, 175); @@ -42762,7 +43299,16 @@ ${content} // modules/core/uploader.js function coreUploader(context) { - var dispatch10 = dispatch_default("saveStarted", "saveEnded", "willAttemptUpload", "progressChanged", "resultNoChanges", "resultErrors", "resultConflicts", "resultSuccess"); + var dispatch10 = dispatch_default( + "saveStarted", + "saveEnded", + "willAttemptUpload", + "progressChanged", + "resultNoChanges", + "resultErrors", + "resultConflicts", + "resultSuccess" + ); var _isSaving = false; var _conflicts = []; var _errors = []; @@ -43129,11 +43675,16 @@ ${content} }; source.label = function() { var id_safe = source.id.replace(/\./g, "
/g, "").replace(/<\/code>/g, "")
};
});
- var helpPane = uiPane("help", context).key(_t("help.key")).label(_t.html("help.title")).description(_t.html("help.title")).iconName("iD-icon-help");
+ var helpPane = uiPane("help", context).key(_t("help.key")).label(_t.append("help.title")).description(_t.append("help.title")).iconName("iD-icon-help");
helpPane.renderContent = function(content) {
function clickHelp(d, i2) {
var rtl = _mainLocalizer.textDirection() === "rtl";
@@ -66809,7 +68654,9 @@ ${content}
d3_event.preventDefault();
clickHelp(d, docs.indexOf(d));
});
- var shortcuts = toc.append("li").attr("class", "shortcuts").call(uiTooltip().title(_t.html("shortcuts.tooltip")).keys(["?"]).placement("top")).append("a").attr("href", "#").on("click", clickShortcuts);
+ var shortcuts = toc.append("li").attr("class", "shortcuts").call(
+ uiTooltip().title(() => _t.append("shortcuts.tooltip")).keys(["?"]).placement("top")
+ ).append("a").attr("href", "#").on("click", clickShortcuts);
shortcuts.append("div").call(_t.append("shortcuts.title"));
var walkthrough = toc.append("li").attr("class", "walkthrough").append("a").attr("href", "#").on("click", clickWalkthrough);
walkthrough.append("svg").attr("class", "logo logo-walkthrough").append("use").attr("xlink:href", "#iD-logo-walkthrough");
@@ -66829,7 +68676,7 @@ ${content}
if (!_issues)
return "";
var issueCountText = _issues.length > 1e3 ? "1000+" : String(_issues.length);
- return _t.html("inspector.title_count", { title: { html: _t.html("issues." + severity + "s.list_title") }, count: issueCountText });
+ return _t.append("inspector.title_count", { title: _t("issues." + severity + "s.list_title"), count: issueCountText });
}).disclosureContent(renderDisclosureContent).shouldDisplay(function() {
return _issues && _issues.length;
});
@@ -66879,8 +68726,8 @@ ${content}
});
textEnter.append("span").attr("class", "issue-message");
items = items.merge(itemsEnter).order();
- items.selectAll(".issue-message").html(function(d) {
- return d.message(context);
+ items.selectAll(".issue-message").text("").each(function(d) {
+ return d.message(context)(select_default2(this));
});
}
context.validator().on("validated.uiSectionValidationIssues" + id2, function() {
@@ -66889,14 +68736,17 @@ ${content}
section.reRender();
});
});
- context.map().on("move.uiSectionValidationIssues" + id2, debounce_default(function() {
- window.requestIdleCallback(function() {
- if (getOptions().where === "visible") {
- reloadIssues();
- }
- section.reRender();
- });
- }, 1e3));
+ context.map().on(
+ "move.uiSectionValidationIssues" + id2,
+ debounce_default(function() {
+ window.requestIdleCallback(function() {
+ if (getOptions().where === "visible") {
+ reloadIssues();
+ }
+ section.reRender();
+ });
+ }, 1e3)
+ );
return section;
}
@@ -66958,7 +68808,7 @@ ${content}
var MINSQUARE = 0;
var MAXSQUARE = 20;
var DEFAULTSQUARE = 5;
- var section = uiSection("issues-rules", context).disclosureContent(renderDisclosureContent).label(_t.html("issues.rules.title"));
+ var section = uiSection("issues-rules", context).disclosureContent(renderDisclosureContent).label(() => _t.append("issues.rules.title"));
var _ruleKeys = context.validator().getRuleKeys().filter(function(key) {
return key !== "maprules";
}).sort(function(key1, key2) {
@@ -66980,17 +68830,19 @@ ${content}
container = container.merge(containerEnter);
container.selectAll(".issue-rules-list").call(drawListItems, _ruleKeys, "checkbox", "rule", toggleRule, isRuleEnabled);
}
- function drawListItems(selection2, data, type3, name2, change, active) {
+ function drawListItems(selection2, data, type3, name, change, active) {
var items = selection2.selectAll("li").data(data);
items.exit().remove();
var enter = items.enter().append("li");
- if (name2 === "rule") {
- enter.call(uiTooltip().title(function(d) {
- return _t.html("issues." + d + ".tip");
- }).placement("top"));
+ if (name === "rule") {
+ enter.call(
+ uiTooltip().title(function(d) {
+ return _t.append("issues." + d + ".tip");
+ }).placement("top")
+ );
}
var label = enter.append("label");
- label.append("input").attr("type", type3).attr("name", name2).on("change", change);
+ label.append("input").attr("type", type3).attr("name", name).on("change", change);
label.append("span").html(function(d) {
var params = {};
if (d === "unsquare_way") {
@@ -67089,7 +68941,10 @@ ${content}
var hiddenOpts = cases[type3];
var hiddenIssues = context.validator().getIssues(hiddenOpts);
if (hiddenIssues.length) {
- selection2.select(".box .details").html("").call(_t.append("issues.no_issues.hidden_issues." + type3, { count: hiddenIssues.length.toString() }));
+ selection2.select(".box .details").html("").call(_t.append(
+ "issues.no_issues.hidden_issues." + type3,
+ { count: hiddenIssues.length.toString() }
+ ));
return;
}
}
@@ -67138,15 +68993,18 @@ ${content}
context.validator().on("validated.uiSectionValidationStatus", function() {
window.requestIdleCallback(section.reRender);
});
- context.map().on("move.uiSectionValidationStatus", debounce_default(function() {
- window.requestIdleCallback(section.reRender);
- }, 1e3));
+ context.map().on(
+ "move.uiSectionValidationStatus",
+ debounce_default(function() {
+ window.requestIdleCallback(section.reRender);
+ }, 1e3)
+ );
return section;
}
// modules/ui/panes/issues.js
function uiPaneIssues(context) {
- var issuesPane = uiPane("issues", context).key(_t("issues.key")).label(_t.html("issues.title")).description(_t.html("issues.title")).iconName("iD-icon-alert").sections([
+ var issuesPane = uiPane("issues", context).key(_t("issues.key")).label(_t.append("issues.title")).description(_t.append("issues.title")).iconName("iD-icon-alert").sections([
uiSectionValidationOptions(context),
uiSectionValidationStatus(context),
uiSectionValidationIssues("issues-errors", "error", context),
@@ -67221,7 +69079,7 @@ ${content}
function uiSectionDataLayers(context) {
var settingsCustomData = uiSettingsCustomData(context).on("change", customChanged);
var layers = context.layers();
- var section = uiSection("data-layers", context).label(_t.html("map_data.data_layers")).disclosureContent(renderDisclosureContent);
+ var section = uiSection("data-layers", context).label(() => _t.append("map_data.data_layers")).disclosureContent(renderDisclosureContent);
function renderDisclosureContent(selection2) {
var container = selection2.selectAll(".data-layer-container").data([0]);
container.enter().append("div").attr("class", "data-layer-container").merge(container).call(drawOsmItems).call(drawQAItems).call(drawCustomDataItems).call(drawVectorItems).call(drawPanelItems);
@@ -67262,9 +69120,13 @@ ${content}
});
var labelEnter = liEnter.append("label").each(function(d) {
if (d.id === "osm") {
- select_default2(this).call(uiTooltip().title(_t.html("map_data.layers." + d.id + ".tooltip")).keys([uiCmd("\u2325" + _t("area_fill.wireframe.key"))]).placement("bottom"));
+ select_default2(this).call(
+ uiTooltip().title(() => _t.append("map_data.layers." + d.id + ".tooltip")).keys([uiCmd("\u2325" + _t("area_fill.wireframe.key"))]).placement("bottom")
+ );
} else {
- select_default2(this).call(uiTooltip().title(_t.html("map_data.layers." + d.id + ".tooltip")).placement("bottom"));
+ select_default2(this).call(
+ uiTooltip().title(() => _t.append("map_data.layers." + d.id + ".tooltip")).placement("bottom")
+ );
}
});
labelEnter.append("input").attr("type", "checkbox").on("change", function(d3_event, d) {
@@ -67292,13 +69154,15 @@ ${content}
return "list-item list-item-" + d.id;
});
var labelEnter = liEnter.append("label").each(function(d) {
- select_default2(this).call(uiTooltip().title(_t.html("map_data.layers." + d.id + ".tooltip")).placement("bottom"));
+ select_default2(this).call(
+ uiTooltip().title(() => _t.append("map_data.layers." + d.id + ".tooltip")).placement("bottom")
+ );
});
labelEnter.append("input").attr("type", "checkbox").on("change", function(d3_event, d) {
toggleLayer(d.id);
});
- labelEnter.append("span").html(function(d) {
- return _t.html("map_data.layers." + d.id + ".title");
+ labelEnter.append("span").each(function(d) {
+ _t.append("map_data.layers." + d.id + ".title")(select_default2(this));
});
li.merge(liEnter).classed("active", function(d) {
return d.layer.enabled();
@@ -67344,7 +69208,9 @@ ${content}
return "list-item list-item-" + d.src;
});
var labelEnter = liEnter.append("label").each(function(d) {
- select_default2(this).call(uiTooltip().title(d.tooltip).placement("top"));
+ select_default2(this).call(
+ uiTooltip().title(d.tooltip).placement("top")
+ );
});
labelEnter.append("input").attr("type", "radio").attr("name", "vectortile").on("change", selectVTLayer);
labelEnter.append("span").text(function(d) {
@@ -67370,16 +69236,22 @@ ${content}
ul.exit().remove();
var ulEnter = ul.enter().append("ul").attr("class", "layer-list layer-list-data");
var liEnter = ulEnter.append("li").attr("class", "list-item-data");
- var labelEnter = liEnter.append("label").call(uiTooltip().title(_t.html("map_data.layers.custom.tooltip")).placement("top"));
+ var labelEnter = liEnter.append("label").call(
+ uiTooltip().title(() => _t.append("map_data.layers.custom.tooltip")).placement("top")
+ );
labelEnter.append("input").attr("type", "checkbox").on("change", function() {
toggleLayer("data");
});
labelEnter.append("span").call(_t.append("map_data.layers.custom.title"));
- liEnter.append("button").attr("class", "open-data-options").call(uiTooltip().title(_t.html("settings.custom_data.tooltip")).placement(_mainLocalizer.textDirection() === "rtl" ? "right" : "left")).on("click", function(d3_event) {
+ liEnter.append("button").attr("class", "open-data-options").call(
+ uiTooltip().title(() => _t.append("settings.custom_data.tooltip")).placement(_mainLocalizer.textDirection() === "rtl" ? "right" : "left")
+ ).on("click", function(d3_event) {
d3_event.preventDefault();
editCustom();
}).call(svgIcon("#iD-icon-more"));
- liEnter.append("button").attr("class", "zoom-to-data").call(uiTooltip().title(_t.html("map_data.layers.custom.zoom")).placement(_mainLocalizer.textDirection() === "rtl" ? "right" : "left")).on("click", function(d3_event) {
+ liEnter.append("button").attr("class", "zoom-to-data").call(
+ uiTooltip().title(() => _t.append("map_data.layers.custom.zoom")).placement(_mainLocalizer.textDirection() === "rtl" ? "right" : "left")
+ ).on("click", function(d3_event) {
if (select_default2(this).classed("disabled"))
return;
d3_event.preventDefault();
@@ -67403,13 +69275,17 @@ ${content}
}
function drawPanelItems(selection2) {
var panelsListEnter = selection2.selectAll(".md-extras-list").data([0]).enter().append("ul").attr("class", "layer-list md-extras-list");
- var historyPanelLabelEnter = panelsListEnter.append("li").attr("class", "history-panel-toggle-item").append("label").call(uiTooltip().title(_t.html("map_data.history_panel.tooltip")).keys([uiCmd("\u2318\u21E7" + _t("info_panels.history.key"))]).placement("top"));
+ var historyPanelLabelEnter = panelsListEnter.append("li").attr("class", "history-panel-toggle-item").append("label").call(
+ uiTooltip().title(() => _t.append("map_data.history_panel.tooltip")).keys([uiCmd("\u2318\u21E7" + _t("info_panels.history.key"))]).placement("top")
+ );
historyPanelLabelEnter.append("input").attr("type", "checkbox").on("change", function(d3_event) {
d3_event.preventDefault();
context.ui().info.toggle("history");
});
historyPanelLabelEnter.append("span").call(_t.append("map_data.history_panel.title"));
- var measurementPanelLabelEnter = panelsListEnter.append("li").attr("class", "measurement-panel-toggle-item").append("label").call(uiTooltip().title(_t.html("map_data.measurement_panel.tooltip")).keys([uiCmd("\u2318\u21E7" + _t("info_panels.measurement.key"))]).placement("top"));
+ var measurementPanelLabelEnter = panelsListEnter.append("li").attr("class", "measurement-panel-toggle-item").append("label").call(
+ uiTooltip().title(() => _t.append("map_data.measurement_panel.tooltip")).keys([uiCmd("\u2318\u21E7" + _t("info_panels.measurement.key"))]).placement("top")
+ );
measurementPanelLabelEnter.append("input").attr("type", "checkbox").on("change", function(d3_event) {
d3_event.preventDefault();
context.ui().info.toggle("measurement");
@@ -67417,16 +69293,19 @@ ${content}
measurementPanelLabelEnter.append("span").call(_t.append("map_data.measurement_panel.title"));
}
context.layers().on("change.uiSectionDataLayers", section.reRender);
- context.map().on("move.uiSectionDataLayers", debounce_default(function() {
- window.requestIdleCallback(section.reRender);
- }, 1e3));
+ context.map().on(
+ "move.uiSectionDataLayers",
+ debounce_default(function() {
+ window.requestIdleCallback(section.reRender);
+ }, 1e3)
+ );
return section;
}
// modules/ui/sections/map_features.js
function uiSectionMapFeatures(context) {
var _features = context.features().keys();
- var section = uiSection("map-features", context).label(_t.html("map_data.map_features")).disclosureContent(renderDisclosureContent).expandedByDefault(false);
+ var section = uiSection("map-features", context).label(() => _t.append("map_data.map_features")).disclosureContent(renderDisclosureContent).expandedByDefault(false);
function renderDisclosureContent(selection2) {
var container = selection2.selectAll(".layer-feature-list-container").data([0]);
var containerEnter = container.enter().append("div").attr("class", "layer-feature-list-container");
@@ -67443,21 +69322,26 @@ ${content}
container = container.merge(containerEnter);
container.selectAll(".layer-feature-list").call(drawListItems, _features, "checkbox", "feature", clickFeature, showsFeature);
}
- function drawListItems(selection2, data, type3, name2, change, active) {
+ function drawListItems(selection2, data, type3, name, change, active) {
var items = selection2.selectAll("li").data(data);
items.exit().remove();
- var enter = items.enter().append("li").call(uiTooltip().title(function(d) {
- var tip = _t.html(name2 + "." + d + ".tooltip");
- if (autoHiddenFeature(d)) {
- var msg = showsLayer("osm") ? _t.html("map_data.autohidden") : _t.html("map_data.osmhidden");
- tip += "" + msg + "";
- }
- return tip;
- }).placement("top"));
+ var enter = items.enter().append("li").call(
+ uiTooltip().title(function(d) {
+ var tip = _t.append(name + "." + d + ".tooltip");
+ if (autoHiddenFeature(d)) {
+ var msg = showsLayer("osm") ? _t.append("map_data.autohidden") : _t.append("map_data.osmhidden");
+ return (selection3) => {
+ selection3.call(tip);
+ selection3.append("div").call(msg);
+ };
+ }
+ return tip;
+ }).placement("top")
+ );
var label = enter.append("label");
- label.append("input").attr("type", type3).attr("name", name2).on("change", change);
+ label.append("input").attr("type", type3).attr("name", name).on("change", change);
label.append("span").html(function(d) {
- return _t.html(name2 + "." + d + ".description");
+ return _t.html(name + "." + d + ".description");
});
items = items.merge(enter);
items.classed("active", active).selectAll("input").property("checked", active).property("indeterminate", autoHiddenFeature);
@@ -67481,7 +69365,7 @@ ${content}
// modules/ui/sections/map_style_options.js
function uiSectionMapStyleOptions(context) {
- var section = uiSection("fill-area", context).label(_t.html("map_data.style_options")).disclosureContent(renderDisclosureContent).expandedByDefault(false);
+ var section = uiSection("fill-area", context).label(() => _t.append("map_data.style_options")).disclosureContent(renderDisclosureContent).expandedByDefault(false);
function renderDisclosureContent(selection2) {
var container = selection2.selectAll(".layer-fill-list").data([0]);
container.enter().append("ul").attr("class", "layer-list layer-fill-list").merge(container).call(drawListItems, context.map().areaFillOptions, "radio", "area_fill", setFill, isActiveFill);
@@ -67490,21 +69374,23 @@ ${content}
return context.surface().classed("highlight-edited");
});
}
- function drawListItems(selection2, data, type3, name2, change, active) {
+ function drawListItems(selection2, data, type3, name, change, active) {
var items = selection2.selectAll("li").data(data);
items.exit().remove();
- var enter = items.enter().append("li").call(uiTooltip().title(function(d) {
- return _t.html(name2 + "." + d + ".tooltip");
- }).keys(function(d) {
- var key = d === "wireframe" ? _t("area_fill.wireframe.key") : null;
- if (d === "highlight_edits")
- key = _t("map_data.highlight_edits.key");
- return key ? [key] : null;
- }).placement("top"));
+ var enter = items.enter().append("li").call(
+ uiTooltip().title(function(d) {
+ return _t.append(name + "." + d + ".tooltip");
+ }).keys(function(d) {
+ var key = d === "wireframe" ? _t("area_fill.wireframe.key") : null;
+ if (d === "highlight_edits")
+ key = _t("map_data.highlight_edits.key");
+ return key ? [key] : null;
+ }).placement("top")
+ );
var label = enter.append("label");
- label.append("input").attr("type", type3).attr("name", name2).on("change", change);
+ label.append("input").attr("type", type3).attr("name", name).on("change", change);
label.append("span").html(function(d) {
- return _t.html(name2 + "." + d + ".description");
+ return _t.html(name + "." + d + ".description");
});
items = items.merge(enter);
items.classed("active", active).selectAll("input").property("checked", active).property("indeterminate", false);
@@ -67526,7 +69412,7 @@ ${content}
// modules/ui/sections/photo_overlays.js
function uiSectionPhotoOverlays(context) {
var layers = context.layers();
- var section = uiSection("photo-overlays", context).label(_t.html("photo_overlays.title")).disclosureContent(renderDisclosureContent).expandedByDefault(false);
+ var section = uiSection("photo-overlays", context).label(() => _t.append("photo_overlays.title")).disclosureContent(renderDisclosureContent).expandedByDefault(false);
function renderDisclosureContent(selection2) {
var container = selection2.selectAll(".photo-overlay-container").data([0]);
container.enter().append("div").attr("class", "photo-overlay-container").merge(container).call(drawPhotoItems).call(drawPhotoTypeItems).call(drawDateFilter).call(drawUsernameFilter);
@@ -67566,7 +69452,9 @@ ${content}
titleID = "kartaview_images.tooltip";
else
titleID = d.id.replace(/-/g, "_") + ".tooltip";
- select_default2(this).call(uiTooltip().title(_t.html(titleID)).placement("top"));
+ select_default2(this).call(
+ uiTooltip().title(() => _t.append(titleID)).placement("top")
+ );
});
labelEnter.append("input").attr("type", "checkbox").on("change", function(d3_event, d) {
toggleLayer(d.id);
@@ -67593,7 +69481,9 @@ ${content}
return "list-item-photo-types list-item-" + d;
});
var labelEnter = liEnter.append("label").each(function(d) {
- select_default2(this).call(uiTooltip().title(_t.html("photo_overlays.photo_type." + d + ".tooltip")).placement("top"));
+ select_default2(this).call(
+ uiTooltip().title(() => _t.append("photo_overlays.photo_type." + d + ".tooltip")).placement("top")
+ );
});
labelEnter.append("input").attr("type", "checkbox").on("change", function(d3_event, d) {
context.photos().togglePhotoType(d);
@@ -67615,10 +69505,12 @@ ${content}
li.exit().remove();
var liEnter = li.enter().append("li").attr("class", "list-item-date-filter");
var labelEnter = liEnter.append("label").each(function(d) {
- select_default2(this).call(uiTooltip().title(_t.html("photo_overlays.date_filter." + d + ".tooltip")).placement("top"));
+ select_default2(this).call(
+ uiTooltip().title(() => _t.append("photo_overlays.date_filter." + d + ".tooltip")).placement("top")
+ );
});
- labelEnter.append("span").html(function(d) {
- return _t.html("photo_overlays.date_filter." + d + ".title");
+ labelEnter.append("span").each(function(d) {
+ _t.append("photo_overlays.date_filter." + d + ".title")(select_default2(this));
});
labelEnter.append("input").attr("type", "date").attr("class", "list-item-input").attr("placeholder", _t("units.year_month_day")).call(utilNoAuto).each(function(d) {
utilGetSetValue(select_default2(this), context.photos().dateFilterValue(d) || "");
@@ -67642,7 +69534,9 @@ ${content}
li.exit().remove();
var liEnter = li.enter().append("li").attr("class", "list-item-username-filter");
var labelEnter = liEnter.append("label").each(function() {
- select_default2(this).call(uiTooltip().title(_t.html("photo_overlays.username_filter.tooltip")).placement("top"));
+ select_default2(this).call(
+ uiTooltip().title(() => _t.append("photo_overlays.username_filter.tooltip")).placement("top")
+ );
});
labelEnter.append("span").call(_t.append("photo_overlays.username_filter.title"));
labelEnter.append("input").attr("type", "text").attr("class", "list-item-input").call(utilNoAuto).property("value", usernameValue).on("change", function() {
@@ -67681,7 +69575,7 @@ ${content}
// modules/ui/panes/map_data.js
function uiPaneMapData(context) {
- var mapDataPane = uiPane("map-data", context).key(_t("map_data.key")).label(_t.html("map_data.title")).description(_t.html("map_data.description")).iconName("iD-icon-data").sections([
+ var mapDataPane = uiPane("map-data", context).key(_t("map_data.key")).label(_t.append("map_data.title")).description(_t.append("map_data.description")).iconName("iD-icon-data").sections([
uiSectionDataLayers(context),
uiSectionPhotoOverlays(context),
uiSectionMapStyleOptions(context),
@@ -67692,7 +69586,7 @@ ${content}
// modules/ui/panes/preferences.js
function uiPanePreferences(context) {
- let preferencesPane = uiPane("preferences", context).key(_t("preferences.key")).label(_t.html("preferences.title")).description(_t.html("preferences.description")).iconName("fas-user-cog").sections([
+ let preferencesPane = uiPane("preferences", context).key(_t("preferences.key")).label(_t.append("preferences.title")).description(_t.append("preferences.description")).iconName("fas-user-cog").sections([
uiSectionPrivacy(context)
]);
return preferencesPane;
@@ -67739,7 +69633,7 @@ ${content}
var map2 = context.map();
map2.redrawEnable(false);
map2.on("hitMinZoom.ui", function() {
- ui.flash.iconName("#iD-icon-no").label(_t.html("cannot_zoom"))();
+ ui.flash.iconName("#iD-icon-no").label(_t.append("cannot_zoom"))();
});
container.append("svg").attr("id", "ideditor-defs").call(ui.svgDefs);
container.append("div").attr("class", "sidebar").call(ui.sidebar);
@@ -67784,15 +69678,17 @@ ${content}
footerWrap.append("div").attr("class", "scale-block").call(uiScale(context));
var aboutList = footerWrap.append("div").attr("class", "info-block").append("ul").attr("class", "map-footer-list");
aboutList.append("li").attr("class", "user-list").call(uiContributors(context));
- var apiConnections = context.apiConnections();
+ var apiConnections = context.connection().apiConnections();
if (apiConnections && apiConnections.length > 1) {
- aboutList.append("li").attr("class", "source-switch").call(uiSourceSwitch(context).keys(apiConnections));
+ aboutList.append("li").attr("class", "source-switch").call(
+ uiSourceSwitch(context).keys(apiConnections)
+ );
}
aboutList.append("li").attr("class", "issues-info").call(uiIssuesInfo(context));
aboutList.append("li").attr("class", "feature-warning").call(uiFeatureInfo(context));
var issueLinks = aboutList.append("li");
- issueLinks.append("a").attr("target", "_blank").attr("href", "https://github.com/openstreetmap/iD/issues").attr("aria-label", _t("report_a_bug")).call(svgIcon("#iD-icon-bug", "light")).call(uiTooltip().title(_t.html("report_a_bug")).placement("top"));
- issueLinks.append("a").attr("target", "_blank").attr("href", "https://github.com/openstreetmap/iD/blob/develop/CONTRIBUTING.md#translating").attr("aria-label", _t("help_translate")).call(svgIcon("#iD-icon-translate", "light")).call(uiTooltip().title(_t.html("help_translate")).placement("top"));
+ issueLinks.append("a").attr("target", "_blank").attr("href", "https://github.com/openstreetmap/iD/issues").attr("aria-label", _t("report_a_bug")).call(svgIcon("#iD-icon-bug", "light")).call(uiTooltip().title(() => _t.append("report_a_bug")).placement("top"));
+ issueLinks.append("a").attr("target", "_blank").attr("href", "https://github.com/openstreetmap/iD/blob/develop/CONTRIBUTING.md#translating").attr("aria-label", _t("help_translate")).call(svgIcon("#iD-icon-translate", "light")).call(uiTooltip().title(() => _t.append("help_translate")).placement("top"));
aboutList.append("li").attr("class", "version").call(uiVersion(context));
if (!context.embed()) {
aboutList.call(uiAccount(context));
@@ -67801,7 +69697,7 @@ ${content}
map2.redrawEnable(true);
ui.hash = behaviorHash(context);
ui.hash();
- if (!ui.hash.hadHash) {
+ if (!ui.hash.hadLocation) {
map2.centerZoom([0, 0], 2);
}
window.onbeforeunload = function() {
@@ -68011,7 +69907,7 @@ ${content}
const dispatch10 = dispatch_default("enter", "exit", "change");
let context = utilRebind({}, dispatch10, "on");
let _deferred2 = /* @__PURE__ */ new Set();
- context.version = "2.21.1";
+ context.version = "2.23.2";
context.privacyVersion = "20201202";
context.initialHashParams = window.location.hash ? utilStringQs(window.location.hash) : {};
context.changeset = null;
@@ -68070,13 +69966,6 @@ ${content}
}
return context;
};
- let _apiConnections;
- context.apiConnections = function(val) {
- if (!arguments.length)
- return _apiConnections;
- _apiConnections = val;
- return context;
- };
context.locale = function(locale2) {
if (!arguments.length)
return _mainLocalizer.localeCode();
@@ -68409,8 +70298,8 @@ ${content}
_mainLocalizer.preferredLocaleCodes(context.initialHashParams.locale);
}
_mainLocalizer.ensureLoaded();
- _background.ensureLoaded();
_mainPresetIndex.ensureLoaded();
+ _background.ensureLoaded();
Object.values(services).forEach((service) => {
if (service && typeof service.init === "function") {
service.init();
@@ -68428,6 +70317,7 @@ ${content}
}
if (!context.container().empty()) {
_ui.ensureLoaded().then(() => {
+ _background.init();
_photos.init();
});
}
@@ -68454,14 +70344,15 @@ ${content}
const nsiVersion = package_default.dependencies["name-suggestion-index"] || package_default.devDependencies["name-suggestion-index"];
const v = (0, import_vparse2.default)(nsiVersion);
const vMinor = `${v.major}.${v.minor}`;
+ const cdn = nsiCdnUrl.replace("{version}", vMinor);
const sources = {
- "nsi_data": `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/nsi.min.json`,
- "nsi_dissolved": `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/dissolved.min.json`,
- "nsi_features": `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/featureCollection.min.json`,
- "nsi_generics": `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/genericWords.min.json`,
- "nsi_presets": `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/presets/nsi-id-presets.min.json`,
- "nsi_replacements": `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/replacements.min.json`,
- "nsi_trees": `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/trees.min.json`
+ "nsi_data": cdn + "dist/nsi.min.json",
+ "nsi_dissolved": cdn + "dist/dissolved.min.json",
+ "nsi_features": cdn + "dist/featureCollection.min.json",
+ "nsi_generics": cdn + "dist/genericWords.min.json",
+ "nsi_presets": cdn + "dist/presets/nsi-id-presets.min.json",
+ "nsi_replacements": cdn + "dist/replacements.min.json",
+ "nsi_trees": cdn + "dist/trees.min.json"
};
let fileMap = _mainFileFetcher.fileMap();
for (const k in sources) {
@@ -68497,9 +70388,37 @@ ${content}
qids: /* @__PURE__ */ new Map(),
ids: /* @__PURE__ */ new Map()
};
- _nsi.matcher = new Matcher();
- _nsi.matcher.buildMatchIndex(_nsi.data);
- _nsi.matcher.buildLocationIndex(_nsi.data, _mainLocations.loco());
+ const matcher = _nsi.matcher = new Matcher();
+ matcher.buildMatchIndex(_nsi.data);
+ matcher.itemLocation = /* @__PURE__ */ new Map();
+ matcher.locationSets = /* @__PURE__ */ new Map();
+ Object.keys(_nsi.data).forEach((tkv) => {
+ const items = _nsi.data[tkv].items;
+ if (!Array.isArray(items) || !items.length)
+ return;
+ items.forEach((item) => {
+ if (matcher.itemLocation.has(item.id))
+ return;
+ const locationSetID = _sharedLocationManager.locationSetID(item.locationSet);
+ matcher.itemLocation.set(item.id, locationSetID);
+ if (matcher.locationSets.has(locationSetID))
+ return;
+ const fakeFeature = { id: locationSetID, properties: { id: locationSetID, area: 1 } };
+ matcher.locationSets.set(locationSetID, fakeFeature);
+ });
+ });
+ matcher.locationIndex = (bbox2) => {
+ const validHere = _sharedLocationManager.locationSetsAt([bbox2[0], bbox2[1]]);
+ const results = [];
+ for (const [locationSetID, area] of Object.entries(validHere)) {
+ const fakeFeature = matcher.locationSets.get(locationSetID);
+ if (fakeFeature) {
+ fakeFeature.properties.area = area;
+ results.push(fakeFeature);
+ }
+ }
+ return results;
+ };
Object.keys(_nsi.data).forEach((tkv) => {
const category = _nsi.data[tkv];
const parts = tkv.split("/", 3);
@@ -68617,8 +70536,8 @@ ${content}
if (tags.name && testNameFragments) {
const nameParts = tags.name.split(/[\s\-\/,.]/);
for (let split = nameParts.length; split > 0; split--) {
- const name2 = nameParts.slice(0, split).join(" ");
- primary.add(name2);
+ const name = nameParts.slice(0, split).join(" ");
+ primary.add(name);
}
}
Object.keys(tags).forEach((osmkey) => {
@@ -68717,42 +70636,35 @@ ${content}
return changed ? { newTags, matched: null } : null;
}
const tuples = gatherTuples(tryKVs, tryNames);
- let foundPrimary = false;
- let bestItem;
- for (let i2 = 0; i2 < tuples.length && !foundPrimary; i2++) {
+ for (let i2 = 0; i2 < tuples.length; i2++) {
const tuple = tuples[i2];
const hits = _nsi.matcher.match(tuple.k, tuple.v, tuple.n, loc);
if (!hits || !hits.length)
continue;
if (hits[0].match !== "primary" && hits[0].match !== "alternate")
break;
+ let itemID, item;
for (let j2 = 0; j2 < hits.length; j2++) {
const hit = hits[j2];
- const isPrimary = hits[j2].match === "primary";
- const itemID = hit.itemID;
+ itemID = hit.itemID;
if (_nsi.dissolved[itemID])
continue;
- const item = _nsi.ids.get(itemID);
+ item = _nsi.ids.get(itemID);
if (!item)
continue;
const mainTag = item.mainTag;
const itemQID = item.tags[mainTag];
const notQID = newTags[`not:${mainTag}`];
if (!itemQID || itemQID === notQID || newTags.office && !item.tags.office) {
+ item = null;
continue;
- }
- if (!bestItem || isPrimary) {
- bestItem = item;
- if (isPrimary) {
- foundPrimary = true;
- }
+ } else {
break;
}
}
- }
- if (bestItem) {
- const itemID = bestItem.id;
- const item = JSON.parse(JSON.stringify(bestItem));
+ if (!item)
+ continue;
+ item = JSON.parse(JSON.stringify(item));
const tkv = item.tkv;
const parts = tkv.split("/", 3);
const k = parts[1];
@@ -68793,9 +70705,9 @@ ${content}
if (!isMoved) {
const nameParts = origName.split(/[\s\-\/,.]/);
for (let split = nameParts.length; split > 0; split--) {
- const name2 = nameParts.slice(0, split).join(" ");
+ const name = nameParts.slice(0, split).join(" ");
const branch = nameParts.slice(split).join(" ");
- const nameHits = _nsi.matcher.match(k, v, name2, loc);
+ const nameHits = _nsi.matcher.match(k, v, name, loc);
if (!nameHits || !nameHits.length)
continue;
if (nameHits.some((hit) => hit.itemID === itemID)) {
@@ -68842,12 +70754,7 @@ ${content}
var nsi_default = {
init: () => {
setNsiSources();
- _mainPresetIndex.ensureLoaded().then(() => loadNsiPresets()).then(() => delay(100)).then(() => _mainLocations.mergeLocationSets([])).then(() => loadNsiData()).then(() => _nsiStatus = "ok").catch(() => _nsiStatus = "failed");
- function delay(msec) {
- return new Promise((resolve) => {
- window.setTimeout(resolve, msec);
- });
- }
+ _mainPresetIndex.ensureLoaded().then(() => loadNsiPresets()).then(() => loadNsiData()).then(() => _nsiStatus = "ok").catch(() => _nsiStatus = "failed");
},
reset: () => {
},
@@ -68904,14 +70811,14 @@ ${content}
}
function loadNextTilePage(which, currZoom, url, tile) {
var cache = _oscCache[which];
- var bbox = tile.extent.bbox();
+ var bbox2 = tile.extent.bbox();
var maxPages = maxPageAtZoom(currZoom);
var nextPage = cache.nextPage[tile.id] || 1;
var params = utilQsString({
ipp: maxResults,
page: nextPage,
- bbTopLeft: [bbox.maxY, bbox.minX].join(","),
- bbBottomRight: [bbox.minY, bbox.maxX].join(",")
+ bbTopLeft: [bbox2.maxY, bbox2.minX].join(","),
+ bbBottomRight: [bbox2.minY, bbox2.maxX].join(",")
}, true);
if (nextPage > maxPages)
return;
@@ -69019,9 +70926,9 @@ ${content}
var viewport = projection2.clipExtent();
var min3 = [viewport[0][0], viewport[1][1]];
var max3 = [viewport[1][0], viewport[0][1]];
- var bbox = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox();
+ var bbox2 = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox();
var sequenceKeys = {};
- _oscCache.images.rtree.search(bbox).forEach(function(d) {
+ _oscCache.images.rtree.search(bbox2).forEach(function(d) {
sequenceKeys[d.data.sequence_id] = true;
});
var lineStrings = [];
@@ -69357,7 +71264,14 @@ ${content}
}
function run() {
var url = options2.prefix !== false ? o.url + options2.path : options2.path;
- return oauth2.rawxhr(options2.method, url, token("oauth2_access_token"), options2.content, options2.headers, done);
+ return oauth2.rawxhr(
+ options2.method,
+ url,
+ token("oauth2_access_token"),
+ options2.content,
+ options2.headers,
+ done
+ );
}
function done(err, xhr) {
if (err) {
@@ -69376,7 +71290,7 @@ ${content}
}
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
- if (xhr.readyState === 4 && xhr.status !== 0) {
+ if (4 === xhr.readyState && 0 !== xhr.status) {
if (/^20\d$/.test(xhr.status)) {
callback(null, xhr);
} else {
@@ -69455,17 +71369,18 @@ ${content}
var import_rbush9 = __toESM(require_rbush_min());
var tiler5 = utilTiler();
var dispatch7 = dispatch_default("apiStatusChange", "authLoading", "authDone", "change", "loading", "loaded", "loadedNotes");
- var urlroot = "https://www.openstreetmap.org";
+ var urlroot = osmApiConnections[0].url;
var redirectPath = window.location.origin + window.location.pathname;
var oauth = osmAuth({
url: urlroot,
- client_id: "0tmNTmd0Jo1dQp4AUmMBLtGiD9YpMuXzHefitcuVStc",
- client_secret: "BTlNrNxIPitHdL4sP2clHw5KLoee9aKkA7dQbc0Bj7Q",
+ client_id: osmApiConnections[0].client_id,
+ client_secret: osmApiConnections[0].client_secret,
scope: "read_prefs write_prefs write_api read_gpx write_notes",
redirect_uri: redirectPath + "land.html",
loading: authLoading,
done: authDone
});
+ var _apiConnections = osmApiConnections;
var _imageryBlocklists = [/.*\.google(apis)?\..*\/(vt|kh)[\?\/].*([xyz]=.*){3}.*/];
var _tileCache = { toLoad: {}, loaded: {}, inflight: {}, seen: {}, rtree: new import_rbush9.default() };
var _noteCache = { toLoad: {}, loaded: {}, inflight: {}, inflightPost: {}, note: {}, closed: {}, rtree: new import_rbush9.default() };
@@ -69780,8 +71695,8 @@ ${content}
if (coincident) {
props.loc = geoVecAdd(props.loc, [epsilon3, epsilon3]);
}
- var bbox = geoExtent(props.loc).bbox();
- coincident = _noteCache.rtree.search(bbox).length;
+ var bbox2 = geoExtent(props.loc).bbox();
+ coincident = _noteCache.rtree.search(bbox2).length;
} while (coincident);
for (var i2 = 0; i2 < childNodes.length; i2++) {
var node = childNodes[i2];
@@ -70012,28 +71927,40 @@ ${content}
var type3 = osmEntity.id.type(id2);
var osmID = osmEntity.id.toOSM(id2);
var options2 = { skipSeen: false };
- this.loadFromAPI("/api/0.6/" + type3 + "/" + osmID + (type3 !== "node" ? "/full" : "") + ".json", function(err, entities) {
- if (callback)
- callback(err, { data: entities });
- }, options2);
+ this.loadFromAPI(
+ "/api/0.6/" + type3 + "/" + osmID + (type3 !== "node" ? "/full" : "") + ".json",
+ function(err, entities) {
+ if (callback)
+ callback(err, { data: entities });
+ },
+ options2
+ );
},
- loadEntityVersion: function(id2, version2, callback) {
+ loadEntityVersion: function(id2, version, callback) {
var type3 = osmEntity.id.type(id2);
var osmID = osmEntity.id.toOSM(id2);
var options2 = { skipSeen: false };
- this.loadFromAPI("/api/0.6/" + type3 + "/" + osmID + "/" + version2 + ".json", function(err, entities) {
- if (callback)
- callback(err, { data: entities });
- }, options2);
+ this.loadFromAPI(
+ "/api/0.6/" + type3 + "/" + osmID + "/" + version + ".json",
+ function(err, entities) {
+ if (callback)
+ callback(err, { data: entities });
+ },
+ options2
+ );
},
loadEntityRelations: function(id2, callback) {
var type3 = osmEntity.id.type(id2);
var osmID = osmEntity.id.toOSM(id2);
var options2 = { skipSeen: false };
- this.loadFromAPI("/api/0.6/" + type3 + "/" + osmID + "/relations.json", function(err, entities) {
- if (callback)
- callback(err, { data: entities });
- }, options2);
+ this.loadFromAPI(
+ "/api/0.6/" + type3 + "/" + osmID + "/relations.json",
+ function(err, entities) {
+ if (callback)
+ callback(err, { data: entities });
+ },
+ options2
+ );
},
loadMultiple: function(ids, callback) {
var that = this;
@@ -70045,10 +71972,14 @@ ${content}
});
var options2 = { skipSeen: false };
utilArrayChunk(osmIDs, 150).forEach(function(arr) {
- that.loadFromAPI("/api/0.6/" + type3 + ".json?" + type3 + "=" + arr.join(), function(err, entities) {
- if (callback)
- callback(err, { data: entities });
- }, options2);
+ that.loadFromAPI(
+ "/api/0.6/" + type3 + ".json?" + type3 + "=" + arr.join(),
+ function(err, entities) {
+ if (callback)
+ callback(err, { data: entities });
+ },
+ options2
+ );
});
});
},
@@ -70065,7 +71996,10 @@ ${content}
headers: { "Content-Type": "text/xml" },
content: JXON.stringify(changeset.asJXON())
};
- _changeset.inflight = oauth.xhr(options2, wrapcb(this, createdChangeset, cid));
+ _changeset.inflight = oauth.xhr(
+ options2,
+ wrapcb(this, createdChangeset, cid)
+ );
}
function createdChangeset(err, changesetID) {
_changeset.inflight = null;
@@ -70080,7 +72014,10 @@ ${content}
headers: { "Content-Type": "text/xml" },
content: JXON.stringify(changeset.osmChangeJXON(changes))
};
- _changeset.inflight = oauth.xhr(options3, wrapcb(this, uploadedChangeset, cid));
+ _changeset.inflight = oauth.xhr(
+ options3,
+ wrapcb(this, uploadedChangeset, cid)
+ );
}
function uploadedChangeset(err) {
_changeset.inflight = null;
@@ -70118,7 +72055,10 @@ ${content}
return;
}
utilArrayChunk(toLoad, 150).forEach(function(arr) {
- oauth.xhr({ method: "GET", path: "/api/0.6/users.json?users=" + arr.join() }, wrapcb(this, done, _connectionID));
+ oauth.xhr(
+ { method: "GET", path: "/api/0.6/users.json?users=" + arr.join() },
+ wrapcb(this, done, _connectionID)
+ );
}.bind(this));
function done(err, payload) {
if (err)
@@ -70136,7 +72076,10 @@ ${content}
delete _userCache.toLoad[uid];
return callback(void 0, _userCache.user[uid]);
}
- oauth.xhr({ method: "GET", path: "/api/0.6/user/" + uid + ".json" }, wrapcb(this, done, _connectionID));
+ oauth.xhr(
+ { method: "GET", path: "/api/0.6/user/" + uid + ".json" },
+ wrapcb(this, done, _connectionID)
+ );
function done(err, payload) {
if (err)
return callback(err);
@@ -70152,7 +72095,10 @@ ${content}
if (_userDetails) {
return callback(void 0, _userDetails);
}
- oauth.xhr({ method: "GET", path: "/api/0.6/user/details.json" }, wrapcb(this, done, _connectionID));
+ oauth.xhr(
+ { method: "GET", path: "/api/0.6/user/details.json" },
+ wrapcb(this, done, _connectionID)
+ );
function done(err, payload) {
if (err)
return callback(err);
@@ -70169,20 +72115,28 @@ ${content}
if (_userChangesets) {
return callback(void 0, _userChangesets);
}
- this.userDetails(wrapcb(this, gotDetails, _connectionID));
+ this.userDetails(
+ wrapcb(this, gotDetails, _connectionID)
+ );
function gotDetails(err, user) {
if (err) {
return callback(err);
}
- oauth.xhr({ method: "GET", path: "/api/0.6/changesets?user=" + user.id }, wrapcb(this, done, _connectionID));
+ oauth.xhr(
+ { method: "GET", path: "/api/0.6/changesets?user=" + user.id },
+ wrapcb(this, done, _connectionID)
+ );
}
function done(err, xml) {
if (err) {
return callback(err);
}
- _userChangesets = Array.prototype.map.call(xml.getElementsByTagName("changeset"), function(changeset) {
- return { tags: getTags(changeset) };
- }).filter(function(changeset) {
+ _userChangesets = Array.prototype.map.call(
+ xml.getElementsByTagName("changeset"),
+ function(changeset) {
+ return { tags: getTags(changeset) };
+ }
+ ).filter(function(changeset) {
var comment = changeset.tags.comment;
return comment && comment !== "";
});
@@ -70269,15 +72223,19 @@ ${content}
}
var path = "/api/0.6/map.json?bbox=";
var options2 = { skipSeen: true };
- _tileCache.inflight[tile.id] = this.loadFromAPI(path + tile.extent.toParam(), tileCallback, options2);
+ _tileCache.inflight[tile.id] = this.loadFromAPI(
+ path + tile.extent.toParam(),
+ tileCallback,
+ options2
+ );
function tileCallback(err, parsed) {
delete _tileCache.inflight[tile.id];
if (!err) {
delete _tileCache.toLoad[tile.id];
_tileCache.loaded[tile.id] = true;
- var bbox = tile.extent.bbox();
- bbox.id = tile.id;
- _tileCache.rtree.insert(bbox);
+ var bbox2 = tile.extent.bbox();
+ bbox2.id = tile.id;
+ _tileCache.rtree.insert(bbox2);
}
if (callback) {
callback(err, Object.assign({ data: parsed }, tile));
@@ -70288,8 +72246,8 @@ ${content}
}
},
isDataLoaded: function(loc) {
- var bbox = { minX: loc[0], minY: loc[1], maxX: loc[0], maxY: loc[1] };
- return _tileCache.rtree.collides(bbox);
+ var bbox2 = { minX: loc[0], minY: loc[1], maxX: loc[0], maxY: loc[1] };
+ return _tileCache.rtree.collides(bbox2);
},
loadTileAtLoc: function(loc, callback) {
if (Object.keys(_tileCache.toLoad).length > 50)
@@ -70324,14 +72282,18 @@ ${content}
if (_noteCache.loaded[tile.id] || _noteCache.inflight[tile.id])
return;
var options2 = { skipSeen: false };
- _noteCache.inflight[tile.id] = that.loadFromAPI(path + tile.extent.toParam(), function(err) {
- delete _noteCache.inflight[tile.id];
- if (!err) {
- _noteCache.loaded[tile.id] = true;
- }
- throttleLoadUsers();
- dispatch7.call("loadedNotes");
- }, options2);
+ _noteCache.inflight[tile.id] = that.loadFromAPI(
+ path + tile.extent.toParam(),
+ function(err) {
+ delete _noteCache.inflight[tile.id];
+ if (!err) {
+ _noteCache.loaded[tile.id] = true;
+ }
+ throttleLoadUsers();
+ dispatch7.call("loadedNotes");
+ },
+ options2
+ );
});
},
postNoteCreate: function(note, callback) {
@@ -70348,7 +72310,10 @@ ${content}
comment += " #" + note.newCategory;
}
var path = "/api/0.6/notes?" + utilQsString({ lon: note.loc[0], lat: note.loc[1], text: comment });
- _noteCache.inflightPost[note.id] = oauth.xhr({ method: "POST", path }, wrapcb(this, done, _connectionID));
+ _noteCache.inflightPost[note.id] = oauth.xhr(
+ { method: "POST", path },
+ wrapcb(this, done, _connectionID)
+ );
function done(err, xml) {
delete _noteCache.inflightPost[note.id];
if (err) {
@@ -70386,7 +72351,10 @@ ${content}
if (note.newComment) {
path += "?" + utilQsString({ text: note.newComment });
}
- _noteCache.inflightPost[note.id] = oauth.xhr({ method: "POST", path }, wrapcb(this, done, _connectionID));
+ _noteCache.inflightPost[note.id] = oauth.xhr(
+ { method: "POST", path },
+ wrapcb(this, done, _connectionID)
+ );
function done(err, xml) {
delete _noteCache.inflightPost[note.id];
if (err) {
@@ -70408,6 +72376,12 @@ ${content}
}, options2);
}
},
+ apiConnections: function(val) {
+ if (!arguments.length)
+ return _apiConnections;
+ _apiConnections = val;
+ return this;
+ },
switch: function(newOptions) {
urlroot = newOptions.url;
var oldOptions = utilObjectOmit(oauth.options(), "access_token");
@@ -70518,8 +72492,8 @@ ${content}
var viewport = projection2.clipExtent();
var min3 = [viewport[0][0], viewport[1][1]];
var max3 = [viewport[1][0], viewport[0][1]];
- var bbox = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox();
- return _noteCache.rtree.search(bbox).map(function(d) {
+ var bbox2 = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox();
+ return _noteCache.rtree.search(bbox2).map(function(d) {
return d.data;
});
},
@@ -70716,20 +72690,20 @@ ${content}
return;
}
var i2;
- var description2;
+ var description;
for (i2 in langCodes) {
let code2 = langCodes[i2];
if (entity.descriptions[code2] && entity.descriptions[code2].language === code2) {
- description2 = entity.descriptions[code2];
+ description = entity.descriptions[code2];
break;
}
}
- if (!description2 && Object.values(entity.descriptions).length)
- description2 = Object.values(entity.descriptions)[0];
+ if (!description && Object.values(entity.descriptions).length)
+ description = Object.values(entity.descriptions)[0];
var result = {
title: entity.title,
- description: description2 ? description2.value : "",
- descriptionLocaleCode: description2 ? description2.language : "",
+ description: description ? description.value : "",
+ descriptionLocaleCode: description ? description.language : "",
editURL: "https://wiki.openstreetmap.org/wiki/" + entity.title
};
if (entity.claims) {
@@ -71446,10 +73420,10 @@ ${content}
const viewport = projection2.clipExtent();
const min3 = [viewport[0][0], viewport[1][1]];
const max3 = [viewport[1][0], viewport[0][1]];
- const bbox = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox();
+ const bbox2 = geoExtent(projection2.invert(min3), projection2.invert(max3)).bbox();
let seen = {};
let results = [];
- _ssCache.bubbles.rtree.search(bbox).forEach((d) => {
+ _ssCache.bubbles.rtree.search(bbox2).forEach((d) => {
const key = d.data.sequenceKey;
if (key && !seen[key]) {
seen[key] = true;
@@ -71557,8 +73531,8 @@ ${content}
let poly = [p1, p2, p3, p4, p1];
let angle2 = (stepBy === 1 ? ca : ca + 180) * (Math.PI / 180);
poly = geoRotate(poly, -angle2, origin);
- let extent = poly.reduce((extent2, point) => {
- return extent2.extend(geoExtent(point));
+ let extent = poly.reduce((extent2, point2) => {
+ return extent2.extend(geoExtent(point2));
}, geoExtent());
let minDist = Infinity;
_ssCache.bubbles.rtree.search(extent.bbox()).forEach((d) => {
@@ -71736,7 +73710,7 @@ ${content}
};
// modules/services/taginfo.js
- var apibase4 = "https://taginfo.openstreetmap.org/api/4/";
+ var apibase4 = taginfoApiUrl;
var _inflight3 = {};
var _popularKeys = {};
var _taginfoCache = {};
@@ -71792,7 +73766,7 @@ ${content}
}
function filterMultikeys(prefix) {
return function(d) {
- var re2 = new RegExp("^" + prefix + "(.*)$");
+ var re2 = new RegExp("^" + prefix + "(.*)$", "i");
var matches = d.key.match(re2) || [];
return matches.length === 2 && matches[1].indexOf(":") === -1;
};
@@ -71803,7 +73777,7 @@ ${content}
return false;
if (!allowUpperCase && d.value.match(/[A-Z*]/) !== null)
return false;
- return parseFloat(d.fraction) > 0;
+ return d.count > 100 || d.in_wiki;
};
}
function filterRoles(geometry) {
@@ -71826,9 +73800,6 @@ ${content}
value: d.value,
title: d.description || d.value
};
- if (d.count) {
- obj.count = d.count;
- }
return obj;
}
function roleKey(d) {
@@ -71891,6 +73862,7 @@ ${content}
artist_name: true,
nat_name: true,
long_name: true,
+ via: true,
"bridge:name": true
};
var params = {
@@ -72043,248 +74015,6 @@ ${content}
// modules/services/vector_tile.js
var import_fast_deep_equal11 = __toESM(require_fast_deep_equal());
-
- // node_modules/@turf/helpers/dist/es/index.js
- var earthRadius = 63710088e-1;
- var factors = {
- centimeters: earthRadius * 100,
- centimetres: earthRadius * 100,
- degrees: earthRadius / 111325,
- feet: earthRadius * 3.28084,
- inches: earthRadius * 39.37,
- kilometers: earthRadius / 1e3,
- kilometres: earthRadius / 1e3,
- meters: earthRadius,
- metres: earthRadius,
- miles: earthRadius / 1609.344,
- millimeters: earthRadius * 1e3,
- millimetres: earthRadius * 1e3,
- nauticalmiles: earthRadius / 1852,
- radians: 1,
- yards: earthRadius * 1.0936
- };
- var unitsFactors = {
- centimeters: 100,
- centimetres: 100,
- degrees: 1 / 111325,
- feet: 3.28084,
- inches: 39.37,
- kilometers: 1 / 1e3,
- kilometres: 1 / 1e3,
- meters: 1,
- metres: 1,
- miles: 1 / 1609.344,
- millimeters: 1e3,
- millimetres: 1e3,
- nauticalmiles: 1 / 1852,
- radians: 1 / earthRadius,
- yards: 1.0936133
- };
- function feature2(geom, properties, options2) {
- if (options2 === void 0) {
- options2 = {};
- }
- var feat = { type: "Feature" };
- if (options2.id === 0 || options2.id) {
- feat.id = options2.id;
- }
- if (options2.bbox) {
- feat.bbox = options2.bbox;
- }
- feat.properties = properties || {};
- feat.geometry = geom;
- return feat;
- }
- function polygon(coordinates, properties, options2) {
- if (options2 === void 0) {
- options2 = {};
- }
- for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {
- var ring = coordinates_1[_i];
- if (ring.length < 4) {
- throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");
- }
- for (var j2 = 0; j2 < ring[ring.length - 1].length; j2++) {
- if (ring[ring.length - 1][j2] !== ring[0][j2]) {
- throw new Error("First and last Position are not equivalent.");
- }
- }
- }
- var geom = {
- type: "Polygon",
- coordinates
- };
- return feature2(geom, properties, options2);
- }
- function lineString(coordinates, properties, options2) {
- if (options2 === void 0) {
- options2 = {};
- }
- if (coordinates.length < 2) {
- throw new Error("coordinates must be an array of two or more positions");
- }
- var geom = {
- type: "LineString",
- coordinates
- };
- return feature2(geom, properties, options2);
- }
- function multiLineString(coordinates, properties, options2) {
- if (options2 === void 0) {
- options2 = {};
- }
- var geom = {
- type: "MultiLineString",
- coordinates
- };
- return feature2(geom, properties, options2);
- }
- function multiPolygon(coordinates, properties, options2) {
- if (options2 === void 0) {
- options2 = {};
- }
- var geom = {
- type: "MultiPolygon",
- coordinates
- };
- return feature2(geom, properties, options2);
- }
-
- // node_modules/@turf/invariant/dist/es/index.js
- function getGeom(geojson) {
- if (geojson.type === "Feature") {
- return geojson.geometry;
- }
- return geojson;
- }
-
- // node_modules/@turf/bbox-clip/dist/es/lib/lineclip.js
- function lineclip(points, bbox, result) {
- var len = points.length, codeA = bitCode(points[0], bbox), part = [], i2, codeB, lastCode;
- var a;
- var b;
- if (!result)
- result = [];
- for (i2 = 1; i2 < len; i2++) {
- a = points[i2 - 1];
- b = points[i2];
- codeB = lastCode = bitCode(b, bbox);
- while (true) {
- if (!(codeA | codeB)) {
- part.push(a);
- if (codeB !== lastCode) {
- part.push(b);
- if (i2 < len - 1) {
- result.push(part);
- part = [];
- }
- } else if (i2 === len - 1) {
- part.push(b);
- }
- break;
- } else if (codeA & codeB) {
- break;
- } else if (codeA) {
- a = intersect(a, b, codeA, bbox);
- codeA = bitCode(a, bbox);
- } else {
- b = intersect(a, b, codeB, bbox);
- codeB = bitCode(b, bbox);
- }
- }
- codeA = lastCode;
- }
- if (part.length)
- result.push(part);
- return result;
- }
- function polygonclip(points, bbox) {
- var result, edge, prev, prevInside, i2, p, inside;
- for (edge = 1; edge <= 8; edge *= 2) {
- result = [];
- prev = points[points.length - 1];
- prevInside = !(bitCode(prev, bbox) & edge);
- for (i2 = 0; i2 < points.length; i2++) {
- p = points[i2];
- inside = !(bitCode(p, bbox) & edge);
- if (inside !== prevInside)
- result.push(intersect(prev, p, edge, bbox));
- if (inside)
- result.push(p);
- prev = p;
- prevInside = inside;
- }
- points = result;
- if (!points.length)
- break;
- }
- return result;
- }
- function intersect(a, b, edge, bbox) {
- return edge & 8 ? [a[0] + (b[0] - a[0]) * (bbox[3] - a[1]) / (b[1] - a[1]), bbox[3]] : edge & 4 ? [a[0] + (b[0] - a[0]) * (bbox[1] - a[1]) / (b[1] - a[1]), bbox[1]] : edge & 2 ? [bbox[2], a[1] + (b[1] - a[1]) * (bbox[2] - a[0]) / (b[0] - a[0])] : edge & 1 ? [bbox[0], a[1] + (b[1] - a[1]) * (bbox[0] - a[0]) / (b[0] - a[0])] : null;
- }
- function bitCode(p, bbox) {
- var code = 0;
- if (p[0] < bbox[0])
- code |= 1;
- else if (p[0] > bbox[2])
- code |= 2;
- if (p[1] < bbox[1])
- code |= 4;
- else if (p[1] > bbox[3])
- code |= 8;
- return code;
- }
-
- // node_modules/@turf/bbox-clip/dist/es/index.js
- function bboxClip(feature3, bbox) {
- var geom = getGeom(feature3);
- var type3 = geom.type;
- var properties = feature3.type === "Feature" ? feature3.properties : {};
- var coords = geom.coordinates;
- switch (type3) {
- case "LineString":
- case "MultiLineString": {
- var lines_1 = [];
- if (type3 === "LineString") {
- coords = [coords];
- }
- coords.forEach(function(line) {
- lineclip(line, bbox, lines_1);
- });
- if (lines_1.length === 1) {
- return lineString(lines_1[0], properties);
- }
- return multiLineString(lines_1, properties);
- }
- case "Polygon":
- return polygon(clipPolygon(coords, bbox), properties);
- case "MultiPolygon":
- return multiPolygon(coords.map(function(poly) {
- return clipPolygon(poly, bbox);
- }), properties);
- default:
- throw new Error("geometry " + type3 + " not supported");
- }
- }
- function clipPolygon(rings, bbox) {
- var outRings = [];
- for (var _i = 0, rings_1 = rings; _i < rings_1.length; _i++) {
- var ring = rings_1[_i];
- var clipped = polygonclip(ring, bbox);
- if (clipped.length > 0) {
- if (clipped[0][0] !== clipped[clipped.length - 1][0] || clipped[0][1] !== clipped[clipped.length - 1][1]) {
- clipped.push(clipped[0]);
- }
- if (clipped.length >= 4) {
- outRings.push(clipped);
- }
- }
- }
- return outRings;
- }
-
- // modules/services/vector_tile.js
var import_fast_json_stable_stringify2 = __toESM(require_fast_json_stable_stringify());
var import_polygon_clipping2 = __toESM(require_polygon_clipping_umd());
var import_pbf2 = __toESM(require_pbf());
@@ -72333,7 +74063,10 @@ ${content}
var merged = mergeCache[propertyhash];
if (merged && merged.length) {
var other = merged[0];
- var coords = import_polygon_clipping2.default.union(feature3.geometry.coordinates, other.geometry.coordinates);
+ var coords = import_polygon_clipping2.default.union(
+ feature3.geometry.coordinates,
+ other.geometry.coordinates
+ );
if (!coords || !coords.length) {
continue;
}
@@ -72563,20 +74296,20 @@ ${content}
return;
}
var i2;
- var description2;
+ var description;
for (i2 in langs) {
let code = langs[i2];
if (entity.descriptions[code] && entity.descriptions[code].language === code) {
- description2 = entity.descriptions[code];
+ description = entity.descriptions[code];
break;
}
}
- if (!description2 && Object.values(entity.descriptions).length)
- description2 = Object.values(entity.descriptions)[0];
+ if (!description && Object.values(entity.descriptions).length)
+ description = Object.values(entity.descriptions)[0];
var result = {
title: entity.id,
- description: description2 ? description2.value : "",
- descriptionLocaleCode: description2 ? description2.language : "",
+ description: description ? description.value : "",
+ descriptionLocaleCode: description ? description.language : "",
editURL: "https://www.wikidata.org/wiki/" + entity.id
};
if (entity.claims) {
@@ -72783,11 +74516,11 @@ ${content}
context.enter(mode);
context.selectedNoteID(_note.id);
}
- function move(d3_event, entity, point) {
+ function move(d3_event, entity, point2) {
d3_event.stopPropagation();
- _lastLoc = context.projection.invert(point);
+ _lastLoc = context.projection.invert(point2);
doMove(d3_event);
- var nudge = geoViewportEdge(point, context.map().dimensions());
+ var nudge = geoViewportEdge(point2, context.map().dimensions());
if (nudge) {
startNudge(d3_event, nudge);
} else {
@@ -72944,7 +74677,9 @@ ${content}
if (d3_event.buttons && d3_event.buttons !== 1)
return;
context.ui().closeEditMenu();
- _longPressTimeout = window.setTimeout(didLongPress, 500, id2, "longdown-" + (d3_event.pointerType || "mouse"));
+ if (d3_event.pointerType !== "mouse") {
+ _longPressTimeout = window.setTimeout(didLongPress, 500, id2, "longdown-" + (d3_event.pointerType || "mouse"));
+ }
_downPointers[id2] = {
firstEvent: d3_event,
lastEvent: d3_event
@@ -73000,7 +74735,7 @@ ${content}
d3_event.preventDefault();
if (!+d3_event.clientX && !+d3_event.clientY) {
if (_lastMouseEvent) {
- d3_event.sourceEvent = _lastMouseEvent;
+ d3_event = _lastMouseEvent;
} else {
return;
}
@@ -73062,7 +74797,7 @@ ${content}
return null;
}
}
- function processClick(datum2, isMultiselect, point, alsoSelectId) {
+ function processClick(datum2, isMultiselect, point2, alsoSelectId) {
var mode = context.mode();
var showMenu = _showMenu;
var interactionType = _lastInteractionType;
@@ -73115,7 +74850,7 @@ ${content}
}
context.ui().closeEditMenu();
if (showMenu)
- context.ui().showEditMenu(point, interactionType);
+ context.ui().showEditMenu(point2, interactionType);
resetProperties();
}
function cancelLongPress() {
@@ -73175,9 +74910,12 @@ ${content}
var _entities = selectedIDs.map(function(id2) {
return context.graph().entity(id2);
});
- var _geometries = Object.assign({ line: [], vertex: [] }, utilArrayGroupBy(_entities, function(entity) {
- return entity.geometry(context.graph());
- }));
+ var _geometries = Object.assign(
+ { line: [], vertex: [] },
+ utilArrayGroupBy(_entities, function(entity) {
+ return entity.geometry(context.graph());
+ })
+ );
var _vertex = _geometries.vertex.length && _geometries.vertex[0];
function candidateWays() {
return _vertex ? context.graph().parentWays(_vertex).filter(function(parent) {
@@ -73187,7 +74925,9 @@ ${content}
var _candidates = candidateWays();
var operation = function() {
var candidate = _candidates[0];
- context.enter(modeDrawLine(context, candidate.id, context.graph(), "line", candidate.affix(_vertex.id), true));
+ context.enter(
+ modeDrawLine(context, candidate.id, context.graph(), "line", candidate.affix(_vertex.id), true)
+ );
};
operation.relatedEntityIds = function() {
return _candidates.length ? [_candidates[0].id] : [];
@@ -73205,14 +74945,14 @@ ${content}
};
operation.tooltip = function() {
var disable = operation.disabled();
- return disable ? _t("operations.continue." + disable) : _t("operations.continue.description");
+ return disable ? _t.append("operations.continue." + disable) : _t.append("operations.continue.description");
};
operation.annotation = function() {
return _t("operations.continue.annotation.line");
};
operation.id = "continue";
operation.keys = [_t("operations.continue.key")];
- operation.title = _t("operations.continue.title");
+ operation.title = _t.append("operations.continue.title");
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -73263,7 +75003,10 @@ ${content}
var entities = ids.map(function(id2) {
return graph.entity(id2);
});
- return Object.assign({ relation: [], way: [], node: [] }, utilArrayGroupBy(entities, "type"));
+ return Object.assign(
+ { relation: [], way: [], node: [] },
+ utilArrayGroupBy(entities, "type")
+ );
}
function getDescendants(id2, graph, descendants) {
var entity = graph.entity(id2);
@@ -73302,7 +75045,7 @@ ${content}
};
operation.tooltip = function() {
var disable = operation.disabled();
- return disable ? _t("operations.copy." + disable, { n: selectedIDs.length }) : _t("operations.copy.description", { n: selectedIDs.length });
+ return disable ? _t.append("operations.copy." + disable, { n: selectedIDs.length }) : _t.append("operations.copy.description", { n: selectedIDs.length });
};
operation.annotation = function() {
return _t("operations.copy.annotation", { n: selectedIDs.length });
@@ -73314,7 +75057,7 @@ ${content}
};
operation.id = "copy";
operation.keys = [uiCmd("\u2318C")];
- operation.title = _t("operations.copy.title");
+ operation.title = _t.append("operations.copy.title");
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -73475,17 +75218,14 @@ ${content}
};
operation.tooltip = function() {
var disable = operation.disabled();
- if (disable) {
- return _t("operations.disconnect." + disable);
- }
- return _t("operations.disconnect.description." + _descriptionID);
+ return disable ? _t.append("operations.disconnect." + disable) : _t.append("operations.disconnect.description." + _descriptionID);
};
operation.annotation = function() {
return _t("operations.disconnect.annotation." + _annotationID);
};
operation.id = "disconnect";
operation.keys = [_t("operations.disconnect.key")];
- operation.title = _t("operations.disconnect.title");
+ operation.title = _t.append("operations.disconnect.title");
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -73581,7 +75321,7 @@ ${content}
};
operation.tooltip = function() {
var disable = operation.disabled();
- return disable ? _t("operations.downgrade." + disable + "." + _multi) : _t("operations.downgrade.description." + _downgradeType);
+ return disable ? _t.append("operations.downgrade." + disable + "." + _multi) : _t.append("operations.downgrade.description." + _downgradeType);
};
operation.annotation = function() {
var suffix;
@@ -73594,7 +75334,7 @@ ${content}
};
operation.id = "downgrade";
operation.keys = [uiCmd("\u232B")];
- operation.title = _t("operations.downgrade.title");
+ operation.title = _t.append("operations.downgrade.title");
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -73651,9 +75391,9 @@ ${content}
operation.tooltip = function() {
var disableReason = operation.disabled();
if (disableReason) {
- return _t("operations.extract." + disableReason + "." + _amount);
+ return _t.append("operations.extract." + disableReason + "." + _amount);
} else {
- return _t("operations.extract.description." + _geometryID + "." + _amount);
+ return _t.append("operations.extract.description." + _geometryID + "." + _amount);
}
};
operation.annotation = function() {
@@ -73661,7 +75401,7 @@ ${content}
};
operation.id = "extract";
operation.keys = [_t("operations.extract.key")];
- operation.title = _t("operations.extract.title");
+ operation.title = _t.append("operations.extract.title");
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -73722,21 +75462,24 @@ ${content}
var disabled = operation.disabled();
if (disabled) {
if (disabled === "conflicting_relations") {
- return _t("operations.merge.conflicting_relations");
+ return _t.append("operations.merge.conflicting_relations");
}
if (disabled === "restriction" || disabled === "connectivity") {
- return _t("operations.merge.damage_relation", { relation: _mainPresetIndex.item("type/" + disabled).name() });
+ return _t.append(
+ "operations.merge.damage_relation",
+ { relation: _mainPresetIndex.item("type/" + disabled).name() }
+ );
}
- return _t("operations.merge." + disabled);
+ return _t.append("operations.merge." + disabled);
}
- return _t("operations.merge.description");
+ return _t.append("operations.merge.description");
};
operation.annotation = function() {
return _t("operations.merge.annotation", { n: selectedIDs.length });
};
operation.id = "merge";
operation.keys = [_t("operations.merge.key")];
- operation.title = _t("operations.merge.title");
+ operation.title = _t.append("operations.merge.title");
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -73792,9 +75535,9 @@ ${content}
var oldGraph = context.copyGraph();
var ids = context.copyIDs();
if (!ids.length) {
- return _t("operations.paste.nothing_copied");
+ return _t.append("operations.paste.nothing_copied");
}
- return _t("operations.paste.description", { feature: utilDisplayLabel(oldGraph.entity(ids[0]), oldGraph), n: ids.length });
+ return _t.append("operations.paste.description", { feature: utilDisplayLabel(oldGraph.entity(ids[0]), oldGraph), n: ids.length });
};
operation.annotation = function() {
var ids = context.copyIDs();
@@ -73802,7 +75545,7 @@ ${content}
};
operation.id = "paste";
operation.keys = [uiCmd("\u2318V")];
- operation.title = _t("operations.paste.title");
+ operation.title = _t.append("operations.paste.title");
return operation;
}
@@ -73854,7 +75597,7 @@ ${content}
return false;
};
operation.tooltip = function() {
- return _t("operations.reverse.description." + reverseTypeID());
+ return _t.append("operations.reverse.description." + reverseTypeID());
};
operation.annotation = function() {
var acts = actions();
@@ -73862,7 +75605,7 @@ ${content}
};
operation.id = "reverse";
operation.keys = [_t("operations.reverse.key")];
- operation.title = _t("operations.reverse.title");
+ operation.title = _t.append("operations.reverse.title");
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -73919,9 +75662,7 @@ ${content}
};
operation.tooltip = function() {
var disable = operation.disabled();
- if (disable)
- return _t("operations.split." + disable);
- return _t("operations.split.description." + _geometry + "." + _waysAmount + "." + _nodesAmount + "_node");
+ return disable ? _t.append("operations.split." + disable) : _t.append("operations.split.description." + _geometry + "." + _waysAmount + "." + _nodesAmount + "_node");
};
operation.annotation = function() {
return _t("operations.split.annotation." + _geometry, { n: _ways.length });
@@ -73935,7 +75676,7 @@ ${content}
};
operation.id = "split";
operation.keys = [_t("operations.split.key")];
- operation.title = _t("operations.split.title");
+ operation.title = _t.append("operations.split.title");
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -74039,14 +75780,14 @@ ${content}
};
operation.tooltip = function() {
var disable = operation.disabled();
- return disable ? _t("operations.straighten." + disable + "." + _amount) : _t("operations.straighten.description." + _geometry + (_wayIDs.length === 1 ? "" : "s"));
+ return disable ? _t.append("operations.straighten." + disable + "." + _amount) : _t.append("operations.straighten.description." + _geometry + (_wayIDs.length === 1 ? "" : "s"));
};
operation.annotation = function() {
return _t("operations.straighten.annotation." + _geometry, { n: _wayIDs.length ? _wayIDs.length : _nodeIDs.length });
};
operation.id = "straighten";
operation.keys = [_t("operations.straighten.key")];
- operation.title = _t("operations.straighten.title");
+ operation.title = _t.append("operations.straighten.title");
operation.behavior = behaviorOperation(context).which(operation);
return operation;
}
@@ -74256,7 +75997,7 @@ ${content}
return;
var moveOp = operationMove(context, selectedIDs);
if (moveOp.disabled()) {
- context.ui().flash.duration(4e3).iconName("#iD-operation-" + moveOp.id).iconClass("operation disabled").label(moveOp.tooltip)();
+ context.ui().flash.duration(4e3).iconName("#iD-operation-" + moveOp.id).iconClass("operation disabled").label(moveOp.tooltip())();
} else {
context.perform(actionMove(selectedIDs, delta, context.projection), moveOp.annotation());
context.validator().validate();
@@ -74315,7 +76056,7 @@ ${content}
const disabled = scalingDisabled();
if (disabled) {
let multi = selectedIDs.length === 1 ? "single" : "multiple";
- context.ui().flash.duration(4e3).iconName("#iD-icon-no").iconClass("operation disabled").label(_t.html("operations.scale." + disabled + "." + multi))();
+ context.ui().flash.duration(4e3).iconName("#iD-icon-no").iconClass("operation disabled").label(_t.append("operations.scale." + disabled + "." + multi))();
} else {
const pivot = context.projection(extent2.center());
const annotation = _t("operations.scale.annotation." + (isUp ? "up" : "down") + ".feature", { n: selectedIDs.length });
@@ -74336,10 +76077,16 @@ ${content}
var choice = geoChooseEdge(context.graph().childNodes(entity), loc2, context.projection);
var prev = entity.nodes[choice.index - 1];
var next = entity.nodes[choice.index];
- context.perform(actionAddMidpoint({ loc: choice.loc, edge: [prev, next] }, osmNode()), _t("operations.add.annotation.vertex"));
+ context.perform(
+ actionAddMidpoint({ loc: choice.loc, edge: [prev, next] }, osmNode()),
+ _t("operations.add.annotation.vertex")
+ );
context.validator().validate();
} else if (entity.type === "midpoint") {
- context.perform(actionAddMidpoint({ loc: entity.loc, edge: entity.edge }, osmNode()), _t("operations.add.annotation.vertex"));
+ context.perform(
+ actionAddMidpoint({ loc: entity.loc, edge: entity.edge }, osmNode()),
+ _t("operations.add.annotation.vertex")
+ );
context.validator().validate();
}
}
@@ -74376,7 +76123,9 @@ ${content}
}
_focusedParentWayId = way && way.id;
if (way) {
- context.enter(mode.selectedIDs([way.first()]).follow(true));
+ context.enter(
+ mode.selectedIDs([way.first()]).follow(true)
+ );
}
}
function lastVertex(d3_event) {
@@ -74391,7 +76140,9 @@ ${content}
}
_focusedParentWayId = way && way.id;
if (way) {
- context.enter(mode.selectedIDs([way.last()]).follow(true));
+ context.enter(
+ mode.selectedIDs([way.last()]).follow(true)
+ );
}
}
function previousVertex(d3_event) {
@@ -74410,7 +76161,9 @@ ${content}
index = length - 2;
}
if (index !== -1) {
- context.enter(mode.selectedIDs([way.nodes[index]]).follow(true));
+ context.enter(
+ mode.selectedIDs([way.nodes[index]]).follow(true)
+ );
}
}
function nextVertex(d3_event) {
@@ -74429,7 +76182,9 @@ ${content}
index = 0;
}
if (index !== -1) {
- context.enter(mode.selectedIDs([way.nodes[index]]).follow(true));
+ context.enter(
+ mode.selectedIDs([way.nodes[index]]).follow(true)
+ );
}
}
function focusNextParent(d3_event) {
@@ -74455,7 +76210,9 @@ ${content}
var parentIds = _focusedParentWayId ? [_focusedParentWayId] : parentWaysIdsOfSelection(false);
if (!parentIds.length)
return;
- context.enter(mode.selectedIDs(parentIds));
+ context.enter(
+ mode.selectedIDs(parentIds)
+ );
_focusedVertexIds = currentSelectedIds;
}
function selectChild(d3_event) {
@@ -74466,7 +76223,9 @@ ${content}
return;
if (currentSelectedIds.length === 1)
_focusedParentWayId = currentSelectedIds[0];
- context.enter(mode.selectedIDs(childIds));
+ context.enter(
+ mode.selectedIDs(childIds)
+ );
}
};
mode.exit = function() {
@@ -74584,8 +76343,8 @@ ${content}
var mode = {
button: "browse",
id: "browse",
- title: _t("modes.browse.title"),
- description: _t("modes.browse.description")
+ title: _t.append("modes.browse.title"),
+ description: _t.append("modes.browse.description")
};
var sidebar;
var _selectBehavior;
@@ -74674,7 +76433,10 @@ ${content}
var center = map2.center();
var zoom = map2.zoom();
var precision2 = Math.max(0, Math.ceil(Math.log(zoom) / Math.LN2));
- var oldParams = utilObjectOmit(utilStringQs(window.location.hash), ["comment", "source", "hashtags", "walkthrough"]);
+ var oldParams = utilObjectOmit(
+ utilStringQs(window.location.hash),
+ ["comment", "source", "hashtags", "walkthrough"]
+ );
var newParams = {};
delete oldParams.id;
var selected = context.selectedIDs().filter(function(id2) {
@@ -74740,6 +76502,10 @@ ${content}
_cachedHash = latestHash;
window.history.replaceState(null, computedTitle(false), latestHash);
updateTitle(true);
+ const q = utilStringQs(latestHash);
+ if (q.map) {
+ corePreferences("map-location", q.map);
+ }
}
}
var _throttledUpdate = throttle_default(updateHashIfNeeded, 500);
@@ -74782,20 +76548,23 @@ ${content}
context.history().on("change.behaviorHash", _throttledUpdateTitle);
context.on("enter.behaviorHash", _throttledUpdate);
select_default2(window).on("hashchange.behaviorHash", hashchange);
- if (window.location.hash) {
- var q = utilStringQs(window.location.hash);
- if (q.id) {
- context.zoomToEntity(q.id.split(",")[0], !q.map);
- }
- if (q.walkthrough === "true") {
- behavior.startWalkthrough = true;
- }
- if (q.map) {
- behavior.hadHash = true;
- }
- hashchange();
- updateTitle(false);
+ var q = utilStringQs(window.location.hash);
+ if (q.id) {
+ context.zoomToEntity(q.id.split(",")[0], !q.map);
+ }
+ if (q.walkthrough === "true") {
+ behavior.startWalkthrough = true;
+ }
+ if (q.map) {
+ behavior.hadLocation = true;
+ } else if (!q.id && corePreferences("map-location")) {
+ const mapArgs = corePreferences("map-location").split("/").map(Number);
+ context.map().centerZoom([mapArgs[2], Math.min(_latitudeLimit, Math.max(-_latitudeLimit, mapArgs[1]))], mapArgs[0]);
+ updateHashIfNeeded();
+ behavior.hadLocation = true;
}
+ hashchange();
+ updateTitle(false);
}
behavior.off = function() {
_throttledUpdate.cancel();