From e5dedeff8bb98dbca6a2bce26d5d41c26333eea2 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 10 Dec 2018 12:38:21 -0500 Subject: [PATCH] Move lib/d3.combobox.js -> ui/combobox.js As with other things from this lib/ folder, little original code remains and turning these things into reusable d3 plugins is not a priority. --- modules/index.js | 5 +---- modules/lib/index.js | 1 - modules/ui/changeset_editor.js | 6 ++---- .../{lib/d3.combobox.js => ui/combobox.js} | 9 +++------ modules/ui/fields/access.js | 10 +++------- modules/ui/fields/address.js | 18 ++++-------------- modules/ui/fields/combo.js | 12 +++--------- modules/ui/fields/cycleway.js | 10 +++------- modules/ui/fields/localized.js | 13 ++++--------- modules/ui/fields/maxspeed.js | 12 ++++-------- modules/ui/fields/wikipedia.js | 13 ++++--------- modules/ui/form_fields.js | 4 ++-- modules/ui/index.js | 1 + modules/ui/raw_member_editor.js | 8 +++----- modules/ui/raw_membership_editor.js | 10 ++++------ modules/ui/raw_tag_editor.js | 19 ++++++------------- test/index.html | 2 +- .../{lib/d3.combobox.js => ui/combobox.js} | 4 ++-- 18 files changed, 50 insertions(+), 107 deletions(-) delete mode 100644 modules/lib/index.js rename modules/{lib/d3.combobox.js => ui/combobox.js} (98%) rename test/spec/{lib/d3.combobox.js => ui/combobox.js} (99%) diff --git a/modules/index.js b/modules/index.js index da0e95a1e..ce345f16c 100644 --- a/modules/index.js +++ b/modules/index.js @@ -18,7 +18,6 @@ export * from './ui/panels/index'; export * from './ui/settings/index'; export * from './ui/index'; export * from './util/index'; -export * from './lib/index'; export * from './validations/index'; /* export some legacy symbols: */ @@ -48,6 +47,4 @@ export { uiPresetEditor as uiPreset } from './ui/preset_editor'; export var debug = false; -import * as lib from './lib/index'; - -export { lib, d3 }; +export { d3 }; diff --git a/modules/lib/index.js b/modules/lib/index.js deleted file mode 100644 index 1cb15f749..000000000 --- a/modules/lib/index.js +++ /dev/null @@ -1 +0,0 @@ -export { d3combobox } from './d3.combobox'; diff --git a/modules/ui/changeset_editor.js b/modules/ui/changeset_editor.js index fd40ae7ce..21846d243 100644 --- a/modules/ui/changeset_editor.js +++ b/modules/ui/changeset_editor.js @@ -1,12 +1,10 @@ import _uniqBy from 'lodash-es/uniqBy'; import { dispatch as d3_dispatch } from 'd3-dispatch'; -import { d3combobox as d3_combobox } from '../lib/d3.combobox.js'; import { t } from '../util/locale'; import { svgIcon } from '../svg'; -import { uiField } from './field'; -import { uiFormFields } from './form_fields'; +import { uiCombobox, uiField, uiFormFields } from './index'; import { utilRebind, utilTriggerEvent } from '../util'; @@ -80,7 +78,7 @@ export function uiChangesetEditor(context) { }); commentField - .call(d3_combobox() + .call(uiCombobox() .container(context.container()) .caseSensitive(true) .data(_uniqBy(comments, 'title')) diff --git a/modules/lib/d3.combobox.js b/modules/ui/combobox.js similarity index 98% rename from modules/lib/d3.combobox.js rename to modules/ui/combobox.js index 79eb3e452..d7b0adaf6 100644 --- a/modules/lib/d3.combobox.js +++ b/modules/ui/combobox.js @@ -7,10 +7,7 @@ import { select as d3_select } from 'd3-selection'; -import { - utilRebind, - utilTriggerEvent -} from '../../modules/util'; +import { utilRebind, utilTriggerEvent } from '../util'; // This code assumes that the combobox values will not have duplicate entries. @@ -21,7 +18,7 @@ import { // value: 'display text' // }, ...] -export function d3combobox() { +export function uiCombobox() { var dispatch = d3_dispatch('accept'); var _container = d3_select(document.body); var _suggestions = []; @@ -350,7 +347,7 @@ export function d3combobox() { } -d3combobox.off = function(input) { +uiCombobox.off = function(input) { input .on('focus.typeahead', null) .on('blur.typeahead', null) diff --git a/modules/ui/fields/access.js b/modules/ui/fields/access.js index cfe1c1843..ef0fa6522 100644 --- a/modules/ui/fields/access.js +++ b/modules/ui/fields/access.js @@ -1,12 +1,8 @@ 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, - utilRebind -} from '../../util'; +import { uiCombobox } from '../index'; +import { utilGetSetValue, utilNoAuto, utilRebind } from '../../util'; export function uiFieldAccess(field, context) { @@ -55,7 +51,7 @@ export function uiFieldAccess(field, context) { .call(utilNoAuto) .each(function(d) { d3_select(this) - .call(d3_combobox() + .call(uiCombobox() .container(context.container()) .data(access.options(d)) ); diff --git a/modules/ui/fields/address.js b/modules/ui/fields/address.js index 8d1eb6db6..6e03803a0 100644 --- a/modules/ui/fields/address.js +++ b/modules/ui/fields/address.js @@ -5,22 +5,12 @@ 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'; - +import { geoExtent, geoChooseEdge, geoSphericalDistance } from '../../geo'; import { services } from '../../services'; -import { - utilGetSetValue, - utilNoAuto, - utilRebind -} from '../../util'; +import { uiCombobox } from '../index'; +import { utilGetSetValue, utilNoAuto, utilRebind } from '../../util'; export function uiFieldAddress(field, context) { @@ -183,7 +173,7 @@ export function uiFieldAddress(field, context) { : getNearValues; wrap.selectAll('input.addr-' + tag) - .call(d3_combobox() + .call(uiCombobox() .container(context.container()) .minItems(1) .fetcher(function(value, callback) { diff --git a/modules/ui/fields/combo.js b/modules/ui/fields/combo.js index 991f81f06..9a6a7e4cf 100644 --- a/modules/ui/fields/combo.js +++ b/modules/ui/fields/combo.js @@ -14,16 +14,10 @@ import { select as d3_select } from 'd3-selection'; -import { d3combobox as d3_combobox } from '../../lib/d3.combobox.js'; - import { t } from '../../util/locale'; import { services } from '../../services'; - -import { - utilGetSetValue, - utilNoAuto, - utilRebind -} from '../../util'; +import { uiCombobox } from '../index'; +import { utilGetSetValue, utilNoAuto, utilRebind } from '../../util'; export { uiFieldCombo as uiFieldMultiCombo, @@ -44,7 +38,7 @@ export function uiFieldCombo(field, context) { var optarray = field.options; var snake_case = (field.snake_case || (field.snake_case === undefined)); var caseSensitive = field.caseSensitive; - var combobox = d3_combobox() + var combobox = uiCombobox() .container(context.container()) .caseSensitive(caseSensitive) .minItems(isMulti || isSemi ? 1 : 2); diff --git a/modules/ui/fields/cycleway.js b/modules/ui/fields/cycleway.js index 9671cc8ab..44710cbb8 100644 --- a/modules/ui/fields/cycleway.js +++ b/modules/ui/fields/cycleway.js @@ -1,12 +1,8 @@ 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, - utilRebind -} from '../../util'; +import { uiCombobox } from '../index'; +import { utilGetSetValue, utilNoAuto, utilRebind } from '../../util'; export function uiFieldCycleway(field, context) { @@ -61,7 +57,7 @@ export function uiFieldCycleway(field, context) { .call(utilNoAuto) .each(function(d) { d3_select(this) - .call(d3_combobox() + .call(uiCombobox() .container(context.container()) .data(cycleway.options(d)) ); diff --git a/modules/ui/fields/localized.js b/modules/ui/fields/localized.js index a5df83b10..453d32495 100644 --- a/modules/ui/fields/localized.js +++ b/modules/ui/fields/localized.js @@ -7,20 +7,15 @@ import { event as d3_event } from 'd3-selection'; -import { d3combobox as d3_combobox } from '../../lib/d3.combobox.js'; import { t } from '../../util/locale'; import { dataWikipedia } from '../../../data'; import { services } from '../../services'; import { svgIcon } from '../../svg'; import { tooltip } from '../../util/tooltip'; +import { uiCombobox } from '../index'; import { utilDetect } from '../../util/detect'; -import { - utilEditDistance, - utilGetSetValue, - utilNoAuto, - utilRebind -} from '../../util'; +import { utilEditDistance, utilGetSetValue, utilNoAuto, utilRebind } from '../../util'; export function uiFieldLocalized(field, context) { @@ -34,12 +29,12 @@ export function uiFieldLocalized(field, context) { }); // reuse these combos - var langcombo = d3_combobox() + var langcombo = uiCombobox() .container(context.container()) .fetcher(fetchLanguages) .minItems(0); - var brandcombo = d3_combobox() + var brandcombo = uiCombobox() .container(context.container()) .canAutocomplete(false) .minItems(1); diff --git a/modules/ui/fields/maxspeed.js b/modules/ui/fields/maxspeed.js index 250e96952..b0dc8e21e 100644 --- a/modules/ui/fields/maxspeed.js +++ b/modules/ui/fields/maxspeed.js @@ -2,15 +2,11 @@ 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, - utilRebind -} from '../../util'; +import { uiCombobox } from '../index'; +import { utilGetSetValue, utilNoAuto, utilRebind } from '../../util'; export function uiFieldMaxspeed(field, context) { @@ -26,10 +22,10 @@ export function uiFieldMaxspeed(field, context) { function maxspeed(selection) { - combobox = d3_combobox() + combobox = uiCombobox() .container(context.container()); - var unitCombobox = d3_combobox() + var unitCombobox = uiCombobox() .container(context.container()) .data(['km/h', 'mph'].map(comboValues)); diff --git a/modules/ui/fields/wikipedia.js b/modules/ui/fields/wikipedia.js index 589776e81..422edb429 100644 --- a/modules/ui/fields/wikipedia.js +++ b/modules/ui/fields/wikipedia.js @@ -8,19 +8,14 @@ import { 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 { dataWikipedia } from '../../../data/index'; import { services } from '../../services/index'; import { svgIcon } from '../../svg/index'; +import { uiCombobox } from '../index'; import { utilDetect } from '../../util/detect'; -import { - utilGetSetValue, - utilNoAuto, - utilRebind -} from '../../util'; +import { utilGetSetValue, utilNoAuto, utilRebind } from '../../util'; export function uiFieldWikipedia(field, context) { @@ -34,7 +29,7 @@ export function uiFieldWikipedia(field, context) { function wiki(selection) { - var langcombo = d3_combobox() + var langcombo = uiCombobox() .container(context.container()) .fetcher(function(value, cb) { var v = value.toLowerCase(); @@ -48,7 +43,7 @@ export function uiFieldWikipedia(field, context) { })); }); - var titlecombo = d3_combobox() + var titlecombo = uiCombobox() .container(context.container()) .fetcher(function(value, cb) { if (!value) { diff --git a/modules/ui/form_fields.js b/modules/ui/form_fields.js index 0bf150b22..5838f7113 100644 --- a/modules/ui/form_fields.js +++ b/modules/ui/form_fields.js @@ -1,7 +1,7 @@ import { select as d3_select } from 'd3-selection'; -import { d3combobox as d3_combobox } from '../lib/d3.combobox.js'; import { t } from '../util/locale'; +import { uiCombobox } from './index'; import { utilGetSetValue, utilNoAuto } from '../util'; @@ -95,7 +95,7 @@ export function uiFormFields(context) { } return placeholder.slice(0,3).join(', ') + ((placeholder.length > 3) ? '…' : ''); }) - .call(d3_combobox() + .call(uiCombobox() .container(context.container()) .data(notShown) .minItems(1) diff --git a/modules/ui/index.js b/modules/ui/index.js index 3c2641519..3f65819cc 100644 --- a/modules/ui/index.js +++ b/modules/ui/index.js @@ -6,6 +6,7 @@ export { uiBackgroundDisplayOptions } from './background_display_options'; export { uiBackgroundOffset } from './background_offset'; export { uiChangesetEditor } from './changeset_editor'; export { uiCmd } from './cmd'; +export { uiCombobox } from './combobox'; export { uiCommit } from './commit'; export { uiCommitChanges } from './commit_changes'; export { uiCommitWarnings } from './commit_warnings'; diff --git a/modules/ui/raw_member_editor.js b/modules/ui/raw_member_editor.js index 98f5c4111..e6a736225 100644 --- a/modules/ui/raw_member_editor.js +++ b/modules/ui/raw_member_editor.js @@ -3,15 +3,13 @@ import { select as d3_select } from 'd3-selection'; -import { d3combobox as d3_combobox } from '../lib/d3.combobox.js'; - import { t } from '../util/locale'; import { actionChangeMember, actionDeleteMember } from '../actions'; import { modeBrowse, modeSelect } from '../modes'; import { osmEntity } from '../osm'; import { svgIcon } from '../svg'; import { services } from '../services'; -import { uiDisclosure } from './disclosure'; +import { uiCombobox, uiDisclosure } from './index'; import { utilDisplayName, utilDisplayType, @@ -251,7 +249,7 @@ export function uiRawMemberEditor(context) { return sameletter.concat(other); } - role.call(d3_combobox() + role.call(uiCombobox() .container(context.container()) .fetcher(function(role, callback) { var rtype = entity.tags.type; @@ -271,7 +269,7 @@ export function uiRawMemberEditor(context) { var row = d3_select(this); row.selectAll('input.member-role') - .call(d3_combobox.off); + .call(uiCombobox.off); } } } diff --git a/modules/ui/raw_membership_editor.js b/modules/ui/raw_membership_editor.js index be2b8b3a2..99dd89d7b 100644 --- a/modules/ui/raw_membership_editor.js +++ b/modules/ui/raw_membership_editor.js @@ -7,8 +7,6 @@ import { select as d3_select } from 'd3-selection'; -import { d3combobox as d3_combobox } from '../lib/d3.combobox.js'; - import { t } from '../util/locale'; import { @@ -22,7 +20,7 @@ import { modeSelect } from '../modes'; import { osmEntity, osmRelation } from '../osm'; import { services } from '../services'; import { svgIcon } from '../svg'; -import { uiDisclosure } from './disclosure'; +import { uiCombobox, uiDisclosure } from './index'; import { utilDisplayName, utilNoAuto, utilHighlightEntity } from '../util'; @@ -268,7 +266,7 @@ export function uiRawMembershipEditor(context) { .merge(enter); newrow.selectAll('.member-entity-input') - .call(d3_combobox() + .call(uiCombobox() .container(context.container()) .minItems(1) .fetcher(function(value, callback) { callback(relations(value)); }) @@ -316,7 +314,7 @@ export function uiRawMembershipEditor(context) { return sameletter.concat(other); } - role.call(d3_combobox() + role.call(uiCombobox() .container(context.container()) .fetcher(function(role, callback) { var rtype = d.relation.tags.type; @@ -336,7 +334,7 @@ export function uiRawMembershipEditor(context) { var row = d3_select(this); row.selectAll('input.member-role') - .call(d3_combobox.off); + .call(uiCombobox.off); } } } diff --git a/modules/ui/raw_tag_editor.js b/modules/ui/raw_tag_editor.js index 3fedd01c6..bce73c1eb 100644 --- a/modules/ui/raw_tag_editor.js +++ b/modules/ui/raw_tag_editor.js @@ -9,18 +9,11 @@ import { select as d3_select } from 'd3-selection'; -import { d3combobox as d3_combobox } from '../lib/d3.combobox.js'; - import { t } from '../util/locale'; import { services } from '../services'; import { svgIcon } from '../svg'; -import { uiDisclosure } from './disclosure'; -import { uiTagReference } from './tag_reference'; -import { - utilGetSetValue, - utilNoAuto, - utilRebind -} from '../util'; +import { uiCombobox, uiDisclosure, uiTagReference } from './index'; +import { utilGetSetValue, utilNoAuto, utilRebind } from '../util'; export function uiRawTagEditor(context) { @@ -216,7 +209,7 @@ export function uiRawTagEditor(context) { var geometry = context.geometry(_entityID); - key.call(d3_combobox() + key.call(uiCombobox() .container(context.container()) .fetcher(function(value, callback) { taginfo.keys({ @@ -228,7 +221,7 @@ export function uiRawTagEditor(context) { }); })); - value.call(d3_combobox() + value.call(uiCombobox() .container(context.container()) .fetcher(function(value, callback) { taginfo.values({ @@ -261,10 +254,10 @@ export function uiRawTagEditor(context) { var row = d3_select(this); row.selectAll('input.key') - .call(d3_combobox.off); + .call(uiCombobox.off); row.selectAll('input.value') - .call(d3_combobox.off); + .call(uiCombobox.off); } diff --git a/test/index.html b/test/index.html index e8fc05f68..630d93531 100644 --- a/test/index.html +++ b/test/index.html @@ -80,7 +80,6 @@ - @@ -126,6 +125,7 @@ + diff --git a/test/spec/lib/d3.combobox.js b/test/spec/ui/combobox.js similarity index 99% rename from test/spec/lib/d3.combobox.js rename to test/spec/ui/combobox.js index efca555a9..833083385 100644 --- a/test/spec/lib/d3.combobox.js +++ b/test/spec/ui/combobox.js @@ -1,4 +1,4 @@ -describe('d3.combobox', function() { +describe('uiCombobox', function() { var body, container, content, input, combobox; var data = [ @@ -67,7 +67,7 @@ describe('d3.combobox', function() { container = body.append('div').attr('class', 'id-container'); content = container.append('div'); input = content.append('input'); - combobox = iD.lib.d3combobox(); + combobox = iD.uiCombobox(); }); afterEach(function() {