From 151111d2bea8f2fef0b946589e469bbf28c3b836 Mon Sep 17 00:00:00 2001 From: oscarotero Date: Sat, 5 Aug 2017 10:48:45 +0200 Subject: [PATCH] upgrade d_js --- package.json | 2 +- src/AjaxSource.js | 1 - src/DatalistSource.js | 9 +++++++-- src/Group.js | 17 +++++++---------- src/Source.js | 14 ++++++-------- src/Suggestion.js | 16 +++++++--------- 6 files changed, 28 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index d00f37c..58884c5 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,6 @@ "webpack": "^3.0.0" }, "dependencies": { - "d_js": "^1.10.0" + "d_js": "^2.0.0" } } diff --git a/src/AjaxSource.js b/src/AjaxSource.js index 5cd3024..d1c20f4 100644 --- a/src/AjaxSource.js +++ b/src/AjaxSource.js @@ -1,4 +1,3 @@ -import d from 'd_js'; import Source from './Source.js'; export default class AjaxSource extends Source { diff --git a/src/DatalistSource.js b/src/DatalistSource.js index 2a849a4..a41be44 100644 --- a/src/DatalistSource.js +++ b/src/DatalistSource.js @@ -48,7 +48,7 @@ export default class DatalistSource extends Source { parent.element.appendChild(suggestion.element); this.result.push(suggestion); } else if (suggestion.element.parentElement === parent.element) { - parent.element.removeChild(suggestion.element); + suggestion.element.remove(); } }); @@ -70,9 +70,14 @@ function getAvailableOptions(element) { const data = []; d.getAll({ optgroup: element }).forEach(optgroup => { + const options = []; + d + .getAll({ option: optgroup }) + .forEach(option => options.push(createItem(option))); + data.push({ label: optgroup.label, - options: d.getAll({ option: optgroup }).map(createItem) + options: options }); }); diff --git a/src/Group.js b/src/Group.js index 75afc15..4b881c9 100644 --- a/src/Group.js +++ b/src/Group.js @@ -1,15 +1,12 @@ -import d from 'd_js'; - export default class Group { constructor(data, settings = {}) { this.data = data; this.label = settings.label ? data[settings.label] : data.label; - this.element = d.parse(''); - this.wrapperElement = d.parse( - `
  • ${this.label}
  • ` - ); - this.wrapperElement.appendChild(this.element); + this.element = document.createElement('ul'); + this.wrapperElement = document.createElement('li'); + this.wrapperElement.innerHTML = `${this.label}`; + this.wrapperElement.append(this.element); } load(data) { @@ -18,7 +15,7 @@ export default class Group { } append(child) { - this.element.appendChild(child); + this.element.append(child); } refresh(parent, query, selected) { @@ -30,10 +27,10 @@ export default class Group { if (ul.childElementCount) { if (element.parentElement !== parent) { - parent.appendChild(element); + parent.append(element); } } else if (element.parentElement === parent) { - parent.removeChild(element); + element.remove(); } } } diff --git a/src/Source.js b/src/Source.js index ed679df..2e125f9 100644 --- a/src/Source.js +++ b/src/Source.js @@ -14,13 +14,11 @@ export default class Source { this.result = []; this.current = 0; - this.element = d.parse(''); - (this.settings.parent || document.body).appendChild(this.element); + this.element = document.createElement('ul'); + (this.settings.parent || document.body).append(this.element); - var self = this; - - d.delegate('mouseenter', this.element, 'li', function(e, target) { - self.selectByElement(target); + d.delegate('mouseenter', this.element, 'li', (e, target) => { + this.selectByElement(target); }); } @@ -142,7 +140,7 @@ export default class Source { } else if ( suggestion.wrapperElement.parentElement === this.element ) { - this.element.removeChild(suggestion.wrapperElement); + suggestion.wrapperElement.remove(); } } else { callback(suggestion, this); @@ -151,6 +149,6 @@ export default class Source { } destroy() { - d.remove(this.element); + this.element.remove(); } } diff --git a/src/Suggestion.js b/src/Suggestion.js index 28976f3..6625538 100644 --- a/src/Suggestion.js +++ b/src/Suggestion.js @@ -1,5 +1,3 @@ -import d from 'd_js'; - export default class Suggestion { constructor(data, settings = {}, group) { this.data = data; @@ -10,29 +8,29 @@ export default class Suggestion { : data.label || this.value; //Render + this.element = document.createElement('li'); + if (typeof settings.render === 'function') { - this.element = d.parse(`
  • ${settings.render(this)}
  • `); + this.element.innerHTML = settings.render(this); } else { - this.element = d.parse(`
  • ${this.data.label || this.value}
  • `); + this.element.innerHTML = this.data.label || this.value; } } refresh(parent, query, selected) { if (this.match(query)) { - parent.appendChild(this.element); + parent.append(this.element); this.unselect(); selected.push(this); } else { if (this.element.parentElement === parent) { - parent.removeChild(this.element); + this.element.remove(); } } } detach() { - if (this.element.parentElement) { - this.element.parentElement.removeChild(this.element); - } + this.element.remove(); } scroll(parent, scrollGroup) {