add iD.ui.preset

This commit is contained in:
Kushan Joshi
2016-06-17 16:15:58 +05:30
parent 07e5e908f2
commit 5b10acc5c3
18 changed files with 1952 additions and 64 deletions

View File

@@ -55,6 +55,8 @@ MODULE_TARGETS = \
js/lib/id/ui/intro.js \
js/lib/id/svg.js \
js/lib/id/ui.js \
js/lib/id/ui/intro.js \
js/lib/id/ui/preset.js \
js/lib/id/util.js \
js/lib/id/validations.js
@@ -106,6 +108,10 @@ js/lib/id/ui.js: $(shell find modules/ui -type f)
@rm -f $@
node_modules/.bin/rollup -f umd -n iD.ui modules/ui/index.js --no-strict -o $@
js/lib/id/ui/preset.js: $(shell find modules/ui/preset -type f)
@rm -f $@
node_modules/.bin/rollup -f umd -n iD.ui.preset modules/ui/preset/index.js --no-strict -o $@
js/lib/id/util.js: $(shell find modules/util -type f)
@rm -f $@
node_modules/.bin/rollup -f umd -n iD.util modules/util/index.js --no-strict -o $@
@@ -136,20 +142,8 @@ dist/iD.js: \
js/lib/marked.js \
js/id/start.js \
js/id/id.js \
$(MODULE_TARGETS) \
js/id/ui.js \
js/id/ui/preset/access.js \
js/id/ui/preset/address.js \
js/id/ui/preset/check.js \
js/id/ui/preset/combo.js \
js/id/ui/preset/cycleway.js \
js/id/ui/preset/input.js \
js/id/ui/preset/localized.js \
js/id/ui/preset/maxspeed.js \
js/id/ui/preset/radio.js \
js/id/ui/preset/restrictions.js \
js/id/ui/preset/textarea.js \
js/id/ui/preset/wikipedia.js \
$(MODULE_TARGETS) \
js/id/end.js \
js/lib/locale.js \
data/introGraph.js

View File

@@ -49,20 +49,8 @@
<script src='data/data_dev.js'></script>
<script src='js/id/ui/preset/access.js'></script>
<script src='js/id/ui/preset/address.js'></script>
<script src='js/id/ui/preset/check.js'></script>
<script src='js/id/ui/preset/combo.js'></script>
<script src='js/id/ui/preset/cycleway.js'></script>
<script src='js/id/ui/preset/input.js'></script>
<script src='js/id/ui/preset/localized.js'></script>
<script src='js/id/ui/preset/maxspeed.js'></script>
<script src='js/id/ui/preset/radio.js'></script>
<script src='js/id/ui/preset/restrictions.js'></script>
<script src='js/id/ui/preset/textarea.js'></script>
<script src='js/id/ui/preset/wikipedia.js'></script>
<script src='js/lib/id/ui/intro.js'></script>
<script src='js/lib/id/ui/preset.js'></script>
<script src='js/lib/locale.js'></script>
<script src='data/introGraph.js'></script>

View File

@@ -247,6 +247,40 @@
return d3.rebind(step, event, 'on');
}
function pointBox(point, context) {
var rect = context.surfaceRect();
point = context.projection(point);
return {
left: point[0] + rect.left - 30,
top: point[1] + rect.top - 50,
width: 60,
height: 70
};
}
function pad(box, padding, context) {
if (box instanceof Array) {
var rect = context.surfaceRect();
box = context.projection(box);
box = {
left: box[0] + rect.left,
top: box[1] + rect.top
};
}
return {
left: box.left - padding,
top: box.top - padding,
width: (box.width || 0) + 2 * padding,
height: (box.width || 0) + 2 * padding
};
}
function icon(name, svgklass) {
return '<svg class="icon ' + (svgklass || '') + '">' +
'<use xlink:href="' + name + '"></use></svg>';
}
function navigation(context, reveal) {
var event = d3.dispatch('done'),
timeouts = [];
@@ -573,6 +607,9 @@
exports.area = area;
exports.line = line;
exports.pad = pad;
exports.pointBox = pointBox;
exports.icon = icon;
exports.navigation = navigation;
exports.point = point;
exports.startEditing = startEditing;

1862
js/lib/id/ui/preset.js Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
iD.ui.preset.access = function(field) {
export function access(field) {
var dispatch = d3.dispatch('change'),
items;
@@ -193,4 +193,4 @@ iD.ui.preset.access = function(field) {
};
return d3.rebind(access, dispatch, 'on');
};
}

View File

@@ -1,4 +1,4 @@
iD.ui.preset.address = function(field, context) {
export function address(field, context) {
var dispatch = d3.dispatch('init', 'change'),
wrap,
entity,
@@ -216,4 +216,4 @@ iD.ui.preset.address = function(field, context) {
};
return d3.rebind(address, dispatch, 'on');
};
}

View File

@@ -1,5 +1,5 @@
iD.ui.preset.check =
iD.ui.preset.defaultcheck = function(field) {
export { check as defaultcheck };
export function check(field) {
var dispatch = d3.dispatch('change'),
options = field.strings && field.strings.options,
values = [],
@@ -79,4 +79,4 @@ iD.ui.preset.defaultcheck = function(field) {
};
return d3.rebind(check, dispatch, 'on');
};
}

View File

@@ -1,6 +1,5 @@
iD.ui.preset.combo =
iD.ui.preset.typeCombo =
iD.ui.preset.multiCombo = function(field, context) {
export { combo as typeCombo, combo as multiCombo };
export function combo(field, context) {
var dispatch = d3.dispatch('change'),
isMulti = (field.type === 'multiCombo'),
optstrings = field.strings && field.strings.options,
@@ -304,4 +303,4 @@ iD.ui.preset.multiCombo = function(field, context) {
return d3.rebind(combo, dispatch, 'on');
};
}

View File

@@ -1,4 +1,4 @@
iD.ui.preset.cycleway = function(field) {
export function cycleway(field) {
var dispatch = d3.dispatch('change'),
items;
@@ -97,4 +97,4 @@ iD.ui.preset.cycleway = function(field) {
};
return d3.rebind(cycleway, dispatch, 'on');
};
}

View File

@@ -0,0 +1,12 @@
export { access } from './access';
export { address } from './address';
export { check, defaultcheck} from './check';
export { combo, typeCombo, multiCombo } from './combo';
export { cycleway } from './cycleway';
export { text, url, number, email, tel } from './input';
export { localized } from './localized';
export { maxspeed } from './maxspeed';
export { radio } from './radio';
export { restrictions } from './restrictions';
export { textarea } from './textarea';
export { wikipedia } from './wikipedia';

View File

@@ -1,8 +1,10 @@
iD.ui.preset.text =
iD.ui.preset.number =
iD.ui.preset.tel =
iD.ui.preset.email =
iD.ui.preset.url = function(field, context) {
export {
url as text,
url as number,
url as tel,
url as email
};
export function url(field, context) {
var dispatch = d3.dispatch('change'),
input,
@@ -85,4 +87,4 @@ iD.ui.preset.url = function(field, context) {
};
return d3.rebind(i, dispatch, 'on');
};
}

View File

@@ -1,4 +1,4 @@
iD.ui.preset.localized = function(field, context) {
export function localized(field, context) {
var dispatch = d3.dispatch('change', 'input'),
wikipedia = iD.services.wikipedia(),
input, localizedInputs, wikiTitles,
@@ -239,4 +239,4 @@ iD.ui.preset.localized = function(field, context) {
};
return d3.rebind(localized, dispatch, 'on');
};
}

View File

@@ -1,4 +1,4 @@
iD.ui.preset.maxspeed = function(field, context) {
export function maxspeed(field, context) {
var dispatch = d3.dispatch('change'),
entity,
imperial,
@@ -107,4 +107,4 @@ iD.ui.preset.maxspeed = function(field, context) {
};
return d3.rebind(maxspeed, dispatch, 'on');
};
}

View File

@@ -1,4 +1,4 @@
iD.ui.preset.radio = function(field) {
export function radio(field) {
var dispatch = d3.dispatch('change'),
labels, radios, placeholder;
@@ -72,4 +72,4 @@ iD.ui.preset.radio = function(field) {
};
return d3.rebind(radio, dispatch, 'on');
};
}

View File

@@ -1,4 +1,4 @@
iD.ui.preset.restrictions = function(field, context) {
export function restrictions(field, context) {
var dispatch = d3.dispatch('change'),
hover = iD.behavior.Hover(context),
vertexID,
@@ -171,4 +171,4 @@ iD.ui.preset.restrictions = function(field, context) {
};
return d3.rebind(restrictions, dispatch, 'on');
};
}

View File

@@ -1,4 +1,4 @@
iD.ui.preset.textarea = function(field) {
export function textarea(field) {
var dispatch = d3.dispatch('change'),
input;
@@ -34,4 +34,4 @@ iD.ui.preset.textarea = function(field) {
};
return d3.rebind(textarea, dispatch, 'on');
};
}

View File

@@ -1,4 +1,4 @@
iD.ui.preset.wikipedia = function(field, context) {
export function wikipedia(field, context) {
var dispatch = d3.dispatch('change'),
wikipedia = iD.services.wikipedia(),
wikidata = iD.services.wikidata(),
@@ -195,4 +195,4 @@ iD.ui.preset.wikipedia = function(field, context) {
};
return d3.rebind(wiki, dispatch, 'on');
};
}

View File

@@ -57,14 +57,8 @@
<script src='../js/id/ui.js'></script>
<script src='../js/lib/id/ui.js'></script>
<script src='../js/lib/id/ui/preset.js'></script>
<script src='../js/id/ui/preset/access.js'></script>
<script src='../js/id/ui/preset/address.js'></script>
<script src='../js/id/ui/preset/input.js'></script>
<script src='../js/id/ui/preset/check.js'></script>
<script src='../js/id/ui/preset/combo.js'></script>
<script src='../js/id/ui/preset/localized.js'></script>
<script src='../js/id/ui/preset/wikipedia.js'></script>
<script src='../js/lib/locale.js'></script>