mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-24 17:14:04 +02:00
Convert lodah-es and d3 to named imports for ui/fields
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
import * as d3 from 'd3';
|
||||
import _ from 'lodash';
|
||||
import { d3combobox } from '../../lib/d3.combobox.js';
|
||||
import _forEach from 'lodash-es/forEach';
|
||||
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
import { select as d3_select } from 'd3-selection';
|
||||
import { d3combobox as d3_combobox } from '../../lib/d3.combobox.js';
|
||||
|
||||
import {
|
||||
utilGetSetValue,
|
||||
utilNoAuto,
|
||||
@@ -9,7 +12,7 @@ import {
|
||||
|
||||
|
||||
export function uiFieldAccess(field, context) {
|
||||
var dispatch = d3.dispatch('change'),
|
||||
var dispatch = d3_dispatch('change'),
|
||||
items;
|
||||
|
||||
function access(selection) {
|
||||
@@ -53,8 +56,8 @@ export function uiFieldAccess(field, context) {
|
||||
.attr('id', function(d) { return 'preset-input-access-' + d; })
|
||||
.call(utilNoAuto)
|
||||
.each(function(d) {
|
||||
d3.select(this)
|
||||
.call(d3combobox()
|
||||
d3_select(this)
|
||||
.call(d3_combobox()
|
||||
.container(context.container())
|
||||
.data(access.options(d))
|
||||
);
|
||||
@@ -72,7 +75,7 @@ export function uiFieldAccess(field, context) {
|
||||
|
||||
function change(d) {
|
||||
var tag = {};
|
||||
tag[d] = utilGetSetValue(d3.select(this)) || undefined;
|
||||
tag[d] = utilGetSetValue(d3_select(this)) || undefined;
|
||||
dispatch.call('change', this, tag);
|
||||
}
|
||||
|
||||
@@ -212,7 +215,7 @@ export function uiFieldAccess(field, context) {
|
||||
items.selectAll('#preset-input-access-access')
|
||||
.attr('placeholder', 'yes');
|
||||
|
||||
_.forEach(placeholders[tags.highway], function(v, k) {
|
||||
_forEach(placeholders[tags.highway], function(v, k) {
|
||||
items.selectAll('#preset-input-access-' + k)
|
||||
.attr('placeholder', function() { return (tags.access || v); });
|
||||
});
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
import * as d3 from 'd3';
|
||||
import _ from 'lodash';
|
||||
import { d3combobox } from '../../lib/d3.combobox.js';
|
||||
import { dataAddressFormats } from '../../../data/index';
|
||||
import _find from 'lodash-es/find';
|
||||
import _includes from 'lodash-es/includes';
|
||||
import _reduce from 'lodash-es/reduce';
|
||||
import _uniqBy from 'lodash-es/uniqBy';
|
||||
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
import { select as d3_select } from 'd3-selection';
|
||||
import { d3combobox as d3_combobox } from '../../lib/d3.combobox.js';
|
||||
|
||||
import { dataAddressFormats } from '../../../data';
|
||||
|
||||
import {
|
||||
geoExtent,
|
||||
geoChooseEdge,
|
||||
geoSphericalDistance
|
||||
} from '../../geo/index';
|
||||
} from '../../geo';
|
||||
|
||||
import { services } from '../../services/index';
|
||||
import { services } from '../../services';
|
||||
import {
|
||||
utilGetSetValue,
|
||||
utilNoAuto,
|
||||
@@ -18,9 +24,9 @@ import {
|
||||
|
||||
|
||||
export function uiFieldAddress(field, context) {
|
||||
var dispatch = d3.dispatch('init', 'change'),
|
||||
var dispatch = d3_dispatch('init', 'change'),
|
||||
nominatim = services.geocoder,
|
||||
wrap = d3.select(null),
|
||||
wrap = d3_select(null),
|
||||
isInitialized = false,
|
||||
entity;
|
||||
|
||||
@@ -46,7 +52,7 @@ export function uiFieldAddress(field, context) {
|
||||
return a.dist - b.dist;
|
||||
});
|
||||
|
||||
return _.uniqBy(streets, 'value');
|
||||
return _uniqBy(streets, 'value');
|
||||
|
||||
function isAddressable(d) {
|
||||
return d.tags.highway && d.tags.name && d.type === 'way';
|
||||
@@ -72,7 +78,7 @@ export function uiFieldAddress(field, context) {
|
||||
return a.dist - b.dist;
|
||||
});
|
||||
|
||||
return _.uniqBy(cities, 'value');
|
||||
return _uniqBy(cities, 'value');
|
||||
|
||||
|
||||
function isAddressable(d) {
|
||||
@@ -112,16 +118,16 @@ export function uiFieldAddress(field, context) {
|
||||
return a.dist - b.dist;
|
||||
});
|
||||
|
||||
return _.uniqBy(results, 'value');
|
||||
return _uniqBy(results, 'value');
|
||||
}
|
||||
|
||||
|
||||
function initCallback(err, countryCode) {
|
||||
if (err) return;
|
||||
|
||||
var addressFormat = _.find(dataAddressFormats, function (a) {
|
||||
return a && a.countryCodes && _.includes(a.countryCodes, countryCode.toLowerCase());
|
||||
}) || _.first(dataAddressFormats);
|
||||
var addressFormat = _find(dataAddressFormats, function (a) {
|
||||
return a && a.countryCodes && _includes(a.countryCodes, countryCode.toLowerCase());
|
||||
}) || dataAddressFormats[0];
|
||||
|
||||
var widths = addressFormat.widths || {
|
||||
housenumber: 1/3, street: 2/3,
|
||||
@@ -130,7 +136,7 @@ export function uiFieldAddress(field, context) {
|
||||
|
||||
function row(r) {
|
||||
// Normalize widths.
|
||||
var total = _.reduce(r, function(sum, field) {
|
||||
var total = _reduce(r, function(sum, field) {
|
||||
return sum + (widths[field] || 0.5);
|
||||
}, 0);
|
||||
|
||||
@@ -177,7 +183,7 @@ export function uiFieldAddress(field, context) {
|
||||
: getNearValues;
|
||||
|
||||
wrap.selectAll('input.addr-' + tag)
|
||||
.call(d3combobox()
|
||||
.call(d3_combobox()
|
||||
.container(context.container())
|
||||
.minItems(1)
|
||||
.fetcher(function(value, callback) {
|
||||
|
||||
+17
-11
@@ -1,4 +1,10 @@
|
||||
import * as d3 from 'd3';
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
|
||||
import {
|
||||
select as d3_select,
|
||||
event as d3_event
|
||||
} from 'd3-selection';
|
||||
|
||||
import { utilRebind } from '../../util/rebind';
|
||||
import { t } from '../../util/locale';
|
||||
import { actionReverse } from '../../actions';
|
||||
@@ -10,14 +16,14 @@ export { uiFieldCheck as uiFieldOnewayCheck };
|
||||
|
||||
|
||||
export function uiFieldCheck(field, context) {
|
||||
var dispatch = d3.dispatch('change'),
|
||||
var dispatch = d3_dispatch('change'),
|
||||
options = field.strings && field.strings.options,
|
||||
values = [],
|
||||
texts = [],
|
||||
input = d3.select(null),
|
||||
text = d3.select(null),
|
||||
label = d3.select(null),
|
||||
reverser = d3.select(null),
|
||||
input = d3_select(null),
|
||||
text = d3_select(null),
|
||||
label = d3_select(null),
|
||||
reverser = d3_select(null),
|
||||
impliedYes,
|
||||
entityId,
|
||||
value;
|
||||
@@ -58,7 +64,7 @@ export function uiFieldCheck(field, context) {
|
||||
|
||||
|
||||
function reverserHidden() {
|
||||
if (!d3.select('div.inspector-hover').empty()) return true;
|
||||
if (!d3_select('div.inspector-hover').empty()) return true;
|
||||
return !(value === 'yes' || (impliedYes && !value));
|
||||
}
|
||||
|
||||
@@ -121,7 +127,7 @@ export function uiFieldCheck(field, context) {
|
||||
var t = {};
|
||||
t[field.key] = values[(values.indexOf(value) + 1) % values.length];
|
||||
dispatch.call('change', this, t);
|
||||
d3.event.stopPropagation();
|
||||
d3_event.stopPropagation();
|
||||
});
|
||||
|
||||
if (field.type === 'onewayCheck') {
|
||||
@@ -130,13 +136,13 @@ export function uiFieldCheck(field, context) {
|
||||
reverser
|
||||
.call(reverserSetText)
|
||||
.on('click', function() {
|
||||
d3.event.preventDefault();
|
||||
d3.event.stopPropagation();
|
||||
d3_event.preventDefault();
|
||||
d3_event.stopPropagation();
|
||||
context.perform(
|
||||
actionReverse(entityId),
|
||||
t('operations.reverse.annotation')
|
||||
);
|
||||
d3.select(this)
|
||||
d3_select(this)
|
||||
.call(reverserSetText);
|
||||
});
|
||||
}
|
||||
|
||||
+30
-20
@@ -1,8 +1,18 @@
|
||||
import * as d3 from 'd3';
|
||||
import _ from 'lodash';
|
||||
import _compact from 'lodash-es/compact';
|
||||
import _filter from 'lodash-es/filter';
|
||||
import _find from 'lodash-es/find';
|
||||
import _map from 'lodash-es/map';
|
||||
import _reject from 'lodash-es/reject';
|
||||
import _remove from 'lodash-es/remove';
|
||||
import _some from 'lodash-es/some';
|
||||
import _uniq from 'lodash-es/uniq';
|
||||
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
import { event as d3_event } from 'd3-selection';
|
||||
import { d3combobox as d3_combobox } from '../../lib/d3.combobox.js';
|
||||
|
||||
import { t } from '../../util/locale';
|
||||
import { d3combobox } from '../../lib/d3.combobox.js';
|
||||
import { services } from '../../services/index';
|
||||
import { services } from '../../services';
|
||||
import {
|
||||
utilGetSetValue,
|
||||
utilNoAuto,
|
||||
@@ -18,7 +28,7 @@ export {
|
||||
|
||||
|
||||
export function uiFieldCombo(field, context) {
|
||||
var dispatch = d3.dispatch('change'),
|
||||
var dispatch = d3_dispatch('change'),
|
||||
nominatim = services.geocoder,
|
||||
taginfo = services.taginfo,
|
||||
isMulti = (field.type === 'multiCombo'),
|
||||
@@ -27,7 +37,7 @@ export function uiFieldCombo(field, context) {
|
||||
optstrings = field.strings && field.strings.options,
|
||||
optarray = field.options,
|
||||
snake_case = (field.snake_case || (field.snake_case === undefined)),
|
||||
combobox = d3combobox()
|
||||
combobox = d3_combobox()
|
||||
.container(context.container())
|
||||
.minItems(isMulti || isSemi ? 1 : 2),
|
||||
comboData = [],
|
||||
@@ -64,7 +74,7 @@ export function uiFieldCombo(field, context) {
|
||||
dval = clean(dval || '');
|
||||
|
||||
if (optstrings) {
|
||||
var match = _.find(comboData, function(o) {
|
||||
var match = _find(comboData, function(o) {
|
||||
return o.key && clean(o.value) === dval;
|
||||
});
|
||||
if (match) {
|
||||
@@ -86,7 +96,7 @@ export function uiFieldCombo(field, context) {
|
||||
tval = tval || '';
|
||||
|
||||
if (optstrings) {
|
||||
var match = _.find(comboData, function(o) { return o.key === tval && o.value; });
|
||||
var match = _find(comboData, function(o) { return o.key === tval && o.value; });
|
||||
if (match) {
|
||||
return match.value;
|
||||
}
|
||||
@@ -101,8 +111,8 @@ export function uiFieldCombo(field, context) {
|
||||
|
||||
|
||||
function objectDifference(a, b) {
|
||||
return _.reject(a, function(d1) {
|
||||
return _.some(b, function(d2) { return d1.value === d2.value; });
|
||||
return _reject(a, function(d1) {
|
||||
return _some(b, function(d2) { return d1.value === d2.value; });
|
||||
});
|
||||
}
|
||||
|
||||
@@ -174,12 +184,12 @@ export function uiFieldCombo(field, context) {
|
||||
taginfo[fn](params, function(err, data) {
|
||||
if (err) return;
|
||||
if (hasCountryPrefix) {
|
||||
data = _.filter(data, function(d) {
|
||||
data = _filter(data, function(d) {
|
||||
return d.value.toLowerCase().indexOf(country + ':') === 0;
|
||||
});
|
||||
}
|
||||
|
||||
comboData = _.map(data, function(d) {
|
||||
comboData = _map(data, function(d) {
|
||||
var k = d.value;
|
||||
if (isMulti) k = k.replace(field.key, '');
|
||||
var v = snake_case ? unsnake(k) : k;
|
||||
@@ -202,8 +212,8 @@ export function uiFieldCombo(field, context) {
|
||||
if (isMulti || isSemi) {
|
||||
ph = field.placeholder() || t('inspector.add');
|
||||
} else {
|
||||
var vals = _.map(d, 'value').filter(function(s) { return s.length < 20; }),
|
||||
placeholders = vals.length > 1 ? vals : _.map(d, 'key');
|
||||
var vals = _map(d, 'value').filter(function(s) { return s.length < 20; }),
|
||||
placeholders = vals.length > 1 ? vals : _map(d, 'key');
|
||||
ph = field.placeholder() || placeholders.slice(0, 3).join(', ');
|
||||
}
|
||||
|
||||
@@ -230,7 +240,7 @@ export function uiFieldCombo(field, context) {
|
||||
} else if (isSemi) {
|
||||
var arr = multiData.map(function(d) { return d.key; });
|
||||
arr.push(val);
|
||||
t[field.key] = _.compact(_.uniq(arr)).join(';');
|
||||
t[field.key] = _compact(_uniq(arr)).join(';');
|
||||
}
|
||||
window.setTimeout(function() { input.node().focus(); }, 10);
|
||||
|
||||
@@ -243,14 +253,14 @@ export function uiFieldCombo(field, context) {
|
||||
|
||||
|
||||
function removeMultikey(d) {
|
||||
d3.event.stopPropagation();
|
||||
d3_event.stopPropagation();
|
||||
var t = {};
|
||||
if (isMulti) {
|
||||
t[d.key] = undefined;
|
||||
} else if (isSemi) {
|
||||
_.remove(multiData, function(md) { return md.key === d.key; });
|
||||
_remove(multiData, function(md) { return md.key === d.key; });
|
||||
var arr = multiData.map(function(md) { return md.key; });
|
||||
arr = _.compact(_.uniq(arr));
|
||||
arr = _compact(_uniq(arr));
|
||||
t[field.key] = arr.length ? arr.join(';') : undefined;
|
||||
}
|
||||
dispatch.call('change', this, t);
|
||||
@@ -325,10 +335,10 @@ export function uiFieldCombo(field, context) {
|
||||
});
|
||||
|
||||
// Set keys for form-field modified (needed for undo and reset buttons)..
|
||||
field.keys = _.map(multiData, 'key');
|
||||
field.keys = _map(multiData, 'key');
|
||||
|
||||
} else if (isSemi) {
|
||||
var arr = _.compact(_.uniq((tags[field.key] || '').split(';')));
|
||||
var arr = _compact(_uniq((tags[field.key] || '').split(';')));
|
||||
multiData = arr.map(function(key) {
|
||||
return {
|
||||
key: key,
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
import * as d3 from 'd3';
|
||||
import { d3combobox } from '../../lib/d3.combobox.js';
|
||||
import _keys from 'lodash-es/keys';
|
||||
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
import { select as d3_select } from 'd3-selection';
|
||||
import { d3combobox as d3_combobox } from '../../lib/d3.combobox.js';
|
||||
|
||||
import {
|
||||
utilGetSetValue,
|
||||
utilNoAuto,
|
||||
@@ -8,8 +12,8 @@ import {
|
||||
|
||||
|
||||
export function uiFieldCycleway(field, context) {
|
||||
var dispatch = d3.dispatch('change'),
|
||||
items = d3.select(null);
|
||||
var dispatch = d3_dispatch('change'),
|
||||
items = d3_select(null);
|
||||
|
||||
|
||||
function cycleway(selection) {
|
||||
@@ -57,8 +61,8 @@ export function uiFieldCycleway(field, context) {
|
||||
.attr('class', function(d) { return 'preset-input-cycleway preset-input-' + stripcolon(d); })
|
||||
.call(utilNoAuto)
|
||||
.each(function(d) {
|
||||
d3.select(this)
|
||||
.call(d3combobox()
|
||||
d3_select(this)
|
||||
.call(d3_combobox()
|
||||
.container(context.container())
|
||||
.data(cycleway.options(d))
|
||||
);
|
||||
@@ -73,8 +77,8 @@ export function uiFieldCycleway(field, context) {
|
||||
|
||||
|
||||
function change() {
|
||||
var left = utilGetSetValue(d3.select('.preset-input-cyclewayleft')),
|
||||
right = utilGetSetValue(d3.select('.preset-input-cyclewayright')),
|
||||
var left = utilGetSetValue(d3_select('.preset-input-cyclewayleft')),
|
||||
right = utilGetSetValue(d3_select('.preset-input-cyclewayright')),
|
||||
tag = {};
|
||||
|
||||
if (left === 'none' || left === '') { left = undefined; }
|
||||
@@ -102,7 +106,7 @@ export function uiFieldCycleway(field, context) {
|
||||
|
||||
|
||||
cycleway.options = function() {
|
||||
return d3.keys(field.strings.options).map(function(option) {
|
||||
return _keys(field.strings.options).map(function(option) {
|
||||
return {
|
||||
title: field.t('options.' + option + '.description'),
|
||||
value: option
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import * as d3 from 'd3';
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
import { event as d3_event } from 'd3-selection';
|
||||
|
||||
import { t, textDirection } from '../../util/locale';
|
||||
import { dataPhoneFormats } from '../../../data';
|
||||
import { services } from '../../services';
|
||||
@@ -18,7 +20,7 @@ export {
|
||||
|
||||
|
||||
export function uiFieldText(field, context) {
|
||||
var dispatch = d3.dispatch('change'),
|
||||
var dispatch = d3_dispatch('change'),
|
||||
nominatim = services.geocoder,
|
||||
input,
|
||||
entity;
|
||||
@@ -80,7 +82,7 @@ export function uiFieldText(field, context) {
|
||||
|
||||
spinControl.selectAll('button')
|
||||
.on('click', function(d) {
|
||||
d3.event.preventDefault();
|
||||
d3_event.preventDefault();
|
||||
var num = parseInt(input.node().value || 0, 10);
|
||||
if (!isNaN(num)) input.node().value = num + d;
|
||||
change()();
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import * as d3 from 'd3';
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
import { select as d3_select } from 'd3-selection';
|
||||
|
||||
import { utilRebind } from '../../util/rebind';
|
||||
import { utilGetDimensions } from '../../util/dimensions';
|
||||
|
||||
|
||||
export function uiFieldLanes(field, context) {
|
||||
var dispatch = d3.dispatch('change'),
|
||||
var dispatch = d3_dispatch('change'),
|
||||
LANE_WIDTH = 40,
|
||||
LANE_HEIGHT = 200,
|
||||
wayID,
|
||||
@@ -13,7 +15,7 @@ export function uiFieldLanes(field, context) {
|
||||
function lanes(selection) {
|
||||
lanesData = context.entity(wayID).lanes();
|
||||
|
||||
if (!d3.select('.inspector-wrap.inspector-hidden').empty() || !selection.node().parentNode) {
|
||||
if (!d3_select('.inspector-wrap.inspector-hidden').empty() || !selection.node().parentNode) {
|
||||
selection.call(lanes.off);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,18 @@
|
||||
import * as d3 from 'd3';
|
||||
import _ from 'lodash';
|
||||
import _find from 'lodash-es/find';
|
||||
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
|
||||
import {
|
||||
select as d3_select,
|
||||
event as d3_event
|
||||
} from 'd3-selection';
|
||||
|
||||
import { d3combobox as d3_combobox } from '../../lib/d3.combobox.js';
|
||||
|
||||
import { t } from '../../util/locale';
|
||||
import { d3combobox } from '../../lib/d3.combobox.js';
|
||||
import { dataSuggestions, dataWikipedia } from '../../../data/index';
|
||||
import { services } from '../../services/index';
|
||||
import { svgIcon } from '../../svg/index';
|
||||
import { dataSuggestions, dataWikipedia } from '../../../data';
|
||||
import { services } from '../../services';
|
||||
import { svgIcon } from '../../svg';
|
||||
import { tooltip } from '../../util/tooltip';
|
||||
import { utilDetect } from '../../util/detect';
|
||||
import {
|
||||
@@ -16,10 +24,10 @@ import {
|
||||
|
||||
|
||||
export function uiFieldLocalized(field, context) {
|
||||
var dispatch = d3.dispatch('change', 'input'),
|
||||
var dispatch = d3_dispatch('change', 'input'),
|
||||
wikipedia = services.wikipedia,
|
||||
input = d3.select(null),
|
||||
localizedInputs = d3.select(null),
|
||||
input = d3_select(null),
|
||||
localizedInputs = d3_select(null),
|
||||
wikiTitles,
|
||||
entity;
|
||||
|
||||
@@ -40,7 +48,7 @@ export function uiFieldLocalized(field, context) {
|
||||
if (field.id === 'name') {
|
||||
var preset = context.presets().match(entity, context.graph());
|
||||
input
|
||||
.call(d3combobox()
|
||||
.call(d3_combobox()
|
||||
.container(context.container())
|
||||
.fetcher(utilSuggestNames(preset, dataSuggestions))
|
||||
);
|
||||
@@ -79,10 +87,10 @@ export function uiFieldLocalized(field, context) {
|
||||
|
||||
|
||||
function addNew() {
|
||||
d3.event.preventDefault();
|
||||
d3_event.preventDefault();
|
||||
var data = localizedInputs.selectAll('div.entry').data();
|
||||
var defaultLang = utilDetect().locale.toLowerCase().split('-')[0];
|
||||
var langExists = _.find(data, function(datum) { return datum.lang === defaultLang;});
|
||||
var langExists = _find(data, function(datum) { return datum.lang === defaultLang;});
|
||||
var isLangEn = defaultLang.indexOf('en') > -1;
|
||||
if (isLangEn || langExists) {
|
||||
defaultLang = '';
|
||||
@@ -95,7 +103,7 @@ export function uiFieldLocalized(field, context) {
|
||||
function change(onInput) {
|
||||
return function() {
|
||||
var t = {};
|
||||
t[field.key] = utilGetSetValue(d3.select(this)) || undefined;
|
||||
t[field.key] = utilGetSetValue(d3_select(this)) || undefined;
|
||||
dispatch.call('change', this, t, onInput);
|
||||
};
|
||||
}
|
||||
@@ -107,9 +115,9 @@ export function uiFieldLocalized(field, context) {
|
||||
|
||||
|
||||
function changeLang(d) {
|
||||
var lang = utilGetSetValue(d3.select(this)),
|
||||
var lang = utilGetSetValue(d3_select(this)),
|
||||
t = {},
|
||||
language = _.find(dataWikipedia, function(d) {
|
||||
language = _find(dataWikipedia, function(d) {
|
||||
return d[0].toLowerCase() === lang.toLowerCase() ||
|
||||
d[1].toLowerCase() === lang.toLowerCase();
|
||||
});
|
||||
@@ -120,7 +128,7 @@ export function uiFieldLocalized(field, context) {
|
||||
t[key(d.lang)] = undefined;
|
||||
}
|
||||
|
||||
var value = utilGetSetValue(d3.select(this.parentNode)
|
||||
var value = utilGetSetValue(d3_select(this.parentNode)
|
||||
.selectAll('.localized-value'));
|
||||
|
||||
if (lang && value) {
|
||||
@@ -137,7 +145,7 @@ export function uiFieldLocalized(field, context) {
|
||||
function changeValue(d) {
|
||||
if (!d.lang) return;
|
||||
var t = {};
|
||||
t[key(d.lang)] = utilGetSetValue(d3.select(this)) || undefined;
|
||||
t[key(d.lang)] = utilGetSetValue(d3_select(this)) || undefined;
|
||||
dispatch.call('change', this, t);
|
||||
}
|
||||
|
||||
@@ -172,8 +180,8 @@ export function uiFieldLocalized(field, context) {
|
||||
|
||||
innerWrap.attr('class', 'entry')
|
||||
.each(function() {
|
||||
var wrap = d3.select(this);
|
||||
var langcombo = d3combobox()
|
||||
var wrap = d3_select(this);
|
||||
var langcombo = d3_combobox()
|
||||
.container(context.container())
|
||||
.fetcher(fetcher)
|
||||
.minItems(0);
|
||||
@@ -188,11 +196,11 @@ export function uiFieldLocalized(field, context) {
|
||||
.append('button')
|
||||
.attr('class', 'minor remove')
|
||||
.on('click', function(d){
|
||||
d3.event.preventDefault();
|
||||
d3_event.preventDefault();
|
||||
var t = {};
|
||||
t[key(d.lang)] = undefined;
|
||||
dispatch.call('change', this, t);
|
||||
d3.select(this.parentNode.parentNode)
|
||||
d3_select(this.parentNode.parentNode)
|
||||
.style('top','0')
|
||||
.style('max-height','240px')
|
||||
.transition()
|
||||
@@ -230,7 +238,7 @@ export function uiFieldLocalized(field, context) {
|
||||
.style('max-height', '240px')
|
||||
.style('opacity', '1')
|
||||
.on('end', function() {
|
||||
d3.select(this)
|
||||
d3_select(this)
|
||||
.style('max-height', '')
|
||||
.style('overflow', 'visible');
|
||||
});
|
||||
@@ -239,7 +247,7 @@ export function uiFieldLocalized(field, context) {
|
||||
var entry = selection.selectAll('.entry');
|
||||
|
||||
utilGetSetValue(entry.select('.localized-lang'), function(d) {
|
||||
var lang = _.find(dataWikipedia, function(lang) { return lang[2] === d.lang; });
|
||||
var lang = _find(dataWikipedia, function(lang) { return lang[2] === d.lang; });
|
||||
return lang ? lang[1] : d.lang;
|
||||
});
|
||||
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
import * as d3 from 'd3';
|
||||
import _ from 'lodash';
|
||||
import { d3combobox } from '../../lib/d3.combobox.js';
|
||||
import { dataImperial } from '../../../data/index';
|
||||
import { geoPointInPolygon } from '../../geo/index';
|
||||
import _some from 'lodash-es/some';
|
||||
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
import { select as d3_select } from 'd3-selection';
|
||||
import { d3combobox as d3_combobox } from '../../lib/d3.combobox.js';
|
||||
|
||||
import { dataImperial } from '../../../data';
|
||||
import { geoPointInPolygon } from '../../geo';
|
||||
import {
|
||||
utilGetSetValue,
|
||||
utilNoAuto,
|
||||
@@ -11,11 +14,11 @@ import {
|
||||
|
||||
|
||||
export function uiFieldMaxspeed(field, context) {
|
||||
var dispatch = d3.dispatch('change'),
|
||||
var dispatch = d3_dispatch('change'),
|
||||
entity,
|
||||
isImperial,
|
||||
unitInput = d3.select(null),
|
||||
input = d3.select(null),
|
||||
unitInput = d3_select(null),
|
||||
input = d3_select(null),
|
||||
combobox;
|
||||
|
||||
var metricValues = [20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120],
|
||||
@@ -23,10 +26,10 @@ export function uiFieldMaxspeed(field, context) {
|
||||
|
||||
|
||||
function maxspeed(selection) {
|
||||
combobox = d3combobox()
|
||||
combobox = d3_combobox()
|
||||
.container(context.container());
|
||||
|
||||
var unitCombobox = d3combobox()
|
||||
var unitCombobox = d3_combobox()
|
||||
.container(context.container())
|
||||
.data(['km/h', 'mph'].map(comboValues));
|
||||
|
||||
@@ -49,8 +52,8 @@ export function uiFieldMaxspeed(field, context) {
|
||||
var childNodes = context.graph().childNodes(context.entity(entity.id)),
|
||||
loc = childNodes[~~(childNodes.length/2)].loc;
|
||||
|
||||
isImperial = _.some(dataImperial.features, function(f) {
|
||||
return _.some(f.geometry.coordinates, function(d) {
|
||||
isImperial = _some(dataImperial.features, function(f) {
|
||||
return _some(f.geometry.coordinates, function(d) {
|
||||
return geoPointInPolygon(loc, d);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import * as d3 from 'd3';
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
import {
|
||||
select as d3_select,
|
||||
selectAll as d3_selectAll
|
||||
} from 'd3-selection';
|
||||
|
||||
import { t } from '../../util/locale';
|
||||
import { uiField } from '../field';
|
||||
import { utilRebind } from '../../util';
|
||||
@@ -8,11 +13,11 @@ export { uiFieldRadio as uiFieldStructureRadio };
|
||||
|
||||
|
||||
export function uiFieldRadio(field, context) {
|
||||
var dispatch = d3.dispatch('change'),
|
||||
placeholder = d3.select(null),
|
||||
wrap = d3.select(null),
|
||||
labels = d3.select(null),
|
||||
radios = d3.select(null),
|
||||
var dispatch = d3_dispatch('change'),
|
||||
placeholder = d3_select(null),
|
||||
wrap = d3_select(null),
|
||||
labels = d3_select(null),
|
||||
radios = d3_select(null),
|
||||
typeField,
|
||||
layerField,
|
||||
oldType = {},
|
||||
@@ -21,7 +26,7 @@ export function uiFieldRadio(field, context) {
|
||||
|
||||
function selectedKey() {
|
||||
var selector = '.form-field-structure .toggle-list label.active input',
|
||||
node = d3.selectAll(selector);
|
||||
node = d3_selectAll(selector);
|
||||
return !node.empty() && node.datum();
|
||||
}
|
||||
|
||||
@@ -212,7 +217,7 @@ export function uiFieldRadio(field, context) {
|
||||
}
|
||||
|
||||
radios.each(function(d) {
|
||||
var active = d3.select(this).property('checked');
|
||||
var active = d3_select(this).property('checked');
|
||||
if (active) activeKey = d;
|
||||
|
||||
if (field.key) {
|
||||
|
||||
@@ -1,37 +1,43 @@
|
||||
import * as d3 from 'd3';
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
|
||||
import {
|
||||
select as d3_select,
|
||||
event as d3_event
|
||||
} from 'd3-selection';
|
||||
|
||||
import { t } from '../../util/locale';
|
||||
|
||||
import {
|
||||
behaviorBreathe,
|
||||
behaviorHover
|
||||
} from '../../behavior/index';
|
||||
} from '../../behavior';
|
||||
|
||||
import {
|
||||
osmEntity,
|
||||
osmIntersection,
|
||||
osmInferRestriction,
|
||||
osmTurn
|
||||
} from '../../osm/index';
|
||||
} from '../../osm';
|
||||
|
||||
import {
|
||||
actionRestrictTurn,
|
||||
actionUnrestrictTurn
|
||||
} from '../../actions/index';
|
||||
} from '../../actions';
|
||||
|
||||
import {
|
||||
geoExtent,
|
||||
geoRawMercator
|
||||
} from '../../geo/index';
|
||||
} from '../../geo';
|
||||
|
||||
import {
|
||||
svgLayers,
|
||||
svgLines,
|
||||
svgTurns,
|
||||
svgVertices
|
||||
} from '../../svg/index';
|
||||
} from '../../svg';
|
||||
|
||||
import { utilRebind } from '../../util/rebind';
|
||||
import { utilFunctor } from '../../util/index';
|
||||
import { utilFunctor } from '../../util';
|
||||
|
||||
import {
|
||||
utilGetDimensions,
|
||||
@@ -40,7 +46,7 @@ import {
|
||||
|
||||
|
||||
export function uiFieldRestrictions(field, context) {
|
||||
var dispatch = d3.dispatch('change'),
|
||||
var dispatch = d3_dispatch('change'),
|
||||
breathe = behaviorBreathe(context),
|
||||
hover = behaviorHover(context),
|
||||
initialized = false,
|
||||
@@ -50,7 +56,7 @@ export function uiFieldRestrictions(field, context) {
|
||||
|
||||
function restrictions(selection) {
|
||||
// if form field is hidden or has detached from dom, clean up.
|
||||
if (!d3.select('.inspector-wrap.inspector-hidden').empty() || !selection.node().parentNode) {
|
||||
if (!d3_select('.inspector-wrap.inspector-hidden').empty() || !selection.node().parentNode) {
|
||||
selection.call(restrictions.off);
|
||||
return;
|
||||
}
|
||||
@@ -133,7 +139,7 @@ export function uiFieldRestrictions(field, context) {
|
||||
context.history()
|
||||
.on('change.restrictions', render);
|
||||
|
||||
d3.select(window)
|
||||
d3_select(window)
|
||||
.on('resize.restrictions', function() {
|
||||
utilSetDimensions(wrap, null);
|
||||
render();
|
||||
@@ -145,7 +151,7 @@ export function uiFieldRestrictions(field, context) {
|
||||
.call(breathe.off)
|
||||
.call(breathe);
|
||||
|
||||
var datum = d3.event.target.__data__;
|
||||
var datum = d3_event.target.__data__;
|
||||
if (datum instanceof osmEntity) {
|
||||
fromNodeID = intersection.adjacentNodeId(datum.id);
|
||||
render();
|
||||
@@ -166,7 +172,7 @@ export function uiFieldRestrictions(field, context) {
|
||||
|
||||
|
||||
function mouseover() {
|
||||
var datum = d3.event.target.__data__;
|
||||
var datum = d3_event.target.__data__;
|
||||
if (datum instanceof osmTurn) {
|
||||
var graph = context.graph(),
|
||||
presets = context.presets(),
|
||||
@@ -236,7 +242,7 @@ export function uiFieldRestrictions(field, context) {
|
||||
context.history()
|
||||
.on('change.restrictions', null);
|
||||
|
||||
d3.select(window)
|
||||
d3_select(window)
|
||||
.on('resize.restrictions', null);
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import * as d3 from 'd3';
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
import { select as d3_select } from 'd3-selection';
|
||||
|
||||
import { t } from '../../util/locale';
|
||||
import {
|
||||
utilGetSetValue,
|
||||
@@ -8,8 +10,8 @@ import {
|
||||
|
||||
|
||||
export function uiFieldTextarea(field) {
|
||||
var dispatch = d3.dispatch('change'),
|
||||
input = d3.select(null);
|
||||
var dispatch = d3_dispatch('change'),
|
||||
input = d3_select(null);
|
||||
|
||||
|
||||
function textarea(selection) {
|
||||
|
||||
@@ -1,8 +1,17 @@
|
||||
import * as d3 from 'd3';
|
||||
import _ from 'lodash';
|
||||
import _clone from 'lodash-es/clone';
|
||||
import _find from 'lodash-es/find';
|
||||
|
||||
import { dispatch as d3_dispatch } from 'd3-dispatch';
|
||||
|
||||
import {
|
||||
select as d3_select,
|
||||
event as d3_event
|
||||
} from 'd3-selection';
|
||||
|
||||
import { d3combobox as d3_combobox } from '../../lib/d3.combobox.js';
|
||||
|
||||
import { t } from '../../util/locale';
|
||||
import { actionChangeTags } from '../../actions/index';
|
||||
import { d3combobox } from '../../lib/d3.combobox.js';
|
||||
import { dataWikipedia } from '../../../data/index';
|
||||
import { services } from '../../services/index';
|
||||
import { svgIcon } from '../../svg/index';
|
||||
@@ -15,18 +24,18 @@ import {
|
||||
|
||||
|
||||
export function uiFieldWikipedia(field, context) {
|
||||
var dispatch = d3.dispatch('change'),
|
||||
var dispatch = d3_dispatch('change'),
|
||||
wikipedia = services.wikipedia,
|
||||
wikidata = services.wikidata,
|
||||
link = d3.select(null),
|
||||
lang = d3.select(null),
|
||||
title = d3.select(null),
|
||||
link = d3_select(null),
|
||||
lang = d3_select(null),
|
||||
title = d3_select(null),
|
||||
wikiURL = '',
|
||||
entity;
|
||||
|
||||
|
||||
function wiki(selection) {
|
||||
var langcombo = d3combobox()
|
||||
var langcombo = d3_combobox()
|
||||
.container(context.container())
|
||||
.fetcher(function(value, cb) {
|
||||
var v = value.toLowerCase();
|
||||
@@ -40,7 +49,7 @@ export function uiFieldWikipedia(field, context) {
|
||||
}));
|
||||
});
|
||||
|
||||
var titlecombo = d3combobox()
|
||||
var titlecombo = d3_combobox()
|
||||
.container(context.container())
|
||||
.fetcher(function(value, cb) {
|
||||
if (!value) {
|
||||
@@ -104,7 +113,7 @@ export function uiFieldWikipedia(field, context) {
|
||||
|
||||
link
|
||||
.on('click', function() {
|
||||
d3.event.preventDefault();
|
||||
d3_event.preventDefault();
|
||||
if (wikiURL) window.open(wikiURL, '_blank');
|
||||
});
|
||||
}
|
||||
@@ -114,7 +123,7 @@ export function uiFieldWikipedia(field, context) {
|
||||
var value = utilGetSetValue(lang).toLowerCase();
|
||||
var locale = utilDetect().locale.toLowerCase();
|
||||
var localeLanguage;
|
||||
return _.find(dataWikipedia, function(d) {
|
||||
return _find(dataWikipedia, function(d) {
|
||||
if (d[2] === locale) localeLanguage = d;
|
||||
return d[0].toLowerCase() === value ||
|
||||
d[1].toLowerCase() === value ||
|
||||
@@ -137,7 +146,7 @@ export function uiFieldWikipedia(field, context) {
|
||||
function change(skipWikidata) {
|
||||
var value = utilGetSetValue(title),
|
||||
m = value.match(/https?:\/\/([-a-z]+)\.wikipedia\.org\/(?:wiki|\1-[-a-z]+)\/([^#]+)(?:#(.+))?/),
|
||||
l = m && _.find(dataWikipedia, function(d) { return m[1] === d[2]; }),
|
||||
l = m && _find(dataWikipedia, function(d) { return m[1] === d[2]; }),
|
||||
syncTags = {};
|
||||
|
||||
if (l) {
|
||||
@@ -181,8 +190,8 @@ export function uiFieldWikipedia(field, context) {
|
||||
if (!data || !Object.keys(data).length) return;
|
||||
|
||||
var qids = Object.keys(data);
|
||||
var value = qids && _.find(qids, function(id) { return id.match(/^Q\d+$/); });
|
||||
var currTags = _.clone(context.entity(initEntityId).tags);
|
||||
var value = qids && _find(qids, function(id) { return id.match(/^Q\d+$/); });
|
||||
var currTags = _clone(context.entity(initEntityId).tags);
|
||||
|
||||
currTags.wikidata = value;
|
||||
|
||||
@@ -201,7 +210,7 @@ export function uiFieldWikipedia(field, context) {
|
||||
wiki.tags = function(tags) {
|
||||
var value = tags[field.key] || '',
|
||||
m = value.match(/([^:]+):([^#]+)(?:#(.+))?/),
|
||||
l = m && _.find(dataWikipedia, function(d) { return m[1] === d[2]; }),
|
||||
l = m && _find(dataWikipedia, function(d) { return m[1] === d[2]; }),
|
||||
anchor = m && m[3];
|
||||
|
||||
// value in correct format
|
||||
|
||||
Reference in New Issue
Block a user