`;
- switch (typeof kompleter.props.data[i]) {
+ if(kompltetr.props.data && kompltetr.props.data.length) {
+ for(let i = 0; i < kompltetr.props.data.length && i <= kompltetr.options.maxResults - 1; i++) {
+ if(typeof kompltetr.props.data[i] !== 'undefined') {
+ html += `
`;
+ switch (typeof kompltetr.props.data[i]) {
case 'string':
- html += '
' + kompleter.props.data[i] + '';
+ html += '
' + kompltetr.props.data[i] + '';
break;
case 'object':
- let properties = Array.isArray(kompleter.options.fieldsToDisplay) && kompleter.options.fieldsToDisplay.length ? kompleter.options.fieldsToDisplay.slice(0, 3) : Object.keys(kompleter.props.data[i]).slice(0, 3);
+ let properties = Array.isArray(kompltetr.options.fieldsToDisplay) && kompltetr.options.fieldsToDisplay.length ? kompltetr.options.fieldsToDisplay.slice(0, 3) : Object.keys(kompltetr.props.data[i]).slice(0, 3);
for(let j = 0; j < properties.length; j++) {
- html += '
' + kompleter.props.data[i][properties[j]] + '';
+ html += '
' + kompltetr.props.data[i][properties[j]] + '';
}
break;
}
@@ -955,14 +955,14 @@
html = '
Not found
';
}
- kompleter.htmlElements.result.innerHTML = html;
+ kompltetr.htmlElements.result.innerHTML = html;
- document.dispatchEvent(kompleter.events.renderResultDone());
+ document.dispatchEvent(kompltetr.events.renderResultDone());
}
},
/**
- * @description Kompleter entry point.
+ * @description kompltetr entry point.
*
* @param {String|HTMLInputElement} input HTMLInputElement
* @param {Object} options Main options and configuration parameters
@@ -977,52 +977,52 @@
// 1. Validate
- kompleter.validators.input(input);
- kompleter.validators.data(data);
- kompleter.validators.callbacks({ onKeyup, onSelect, onError });
+ kompltetr.validators.input(input);
+ kompltetr.validators.data(data);
+ kompltetr.validators.callbacks({ onKeyup, onSelect, onError });
// 2. Assign TODO: possible to do better with this ?
if (data) {
- kompleter.props.data = data;
+ kompltetr.props.data = data;
}
if(options) {
- kompleter.options = Object.assign(kompleter.options, options);
+ kompltetr.options = Object.assign(kompltetr.options, options);
}
if (onKeyup || onSelect || onError) {
- kompleter.callbacks = Object.assign(kompleter.callbacks, { onKeyup, onSelect, onError });
+ kompltetr.callbacks = Object.assign(kompltetr.callbacks, { onKeyup, onSelect, onError });
}
// 3. Build DOM
- kompleter.htmlElements.input = input instanceof HTMLInputElement ? input : document.getElementById(input);
+ kompltetr.htmlElements.input = input instanceof HTMLInputElement ? input : document.getElementById(input);
- kompleter.htmlElements.result = kompleter.utils.build('div', [ { id: 'kpl-result' }, { class: 'form--search__result' } ]);
+ kompltetr.htmlElements.result = kompltetr.utils.build('div', [ { id: 'kpl-result' }, { class: 'form--search__result' } ]);
- kompleter.htmlElements.wrapper = kompleter.htmlElements.input.parentElement;
- kompleter.htmlElements.wrapper.setAttribute('class', `${kompleter.htmlElements.wrapper.getAttribute('class')} kompletr ${kompleter.options.theme}`);
- kompleter.htmlElements.wrapper.appendChild(kompleter.htmlElements.result);
+ kompltetr.htmlElements.wrapper = kompltetr.htmlElements.input.parentElement;
+ kompltetr.htmlElements.wrapper.setAttribute('class', `${kompltetr.htmlElements.wrapper.getAttribute('class')} kompletr ${kompltetr.options.theme}`);
+ kompltetr.htmlElements.wrapper.appendChild(kompltetr.htmlElements.result);
// 4. Listeners
- kompleter.listeners.onError();
- kompleter.listeners.onHide();
- kompleter.listeners.onKeyup();
- kompleter.listeners.onNavigationEnd();
- kompleter.listeners.onRequestDone();
- kompleter.listeners.onViewResultDone();
+ kompltetr.listeners.onError();
+ kompltetr.listeners.onHide();
+ kompltetr.listeners.onKeyup();
+ kompltetr.listeners.onNavigationEnd();
+ kompltetr.listeners.onRequestDone();
+ kompltetr.listeners.onViewResultDone();
} catch(e) {
console.error(e);
}
},
};
- window.kompleter = kompleter.init;
+ window.kompltetr = kompltetr.init;
- window.HTMLInputElement.prototype.kompleter = function({ data, options, onKeyup, onSelect, onError }) {
- window.kompleter({ input: this, data, options, onKeyup, onSelect, onError });
+ window.HTMLInputElement.prototype.kompltetr = function({ data, options, onKeyup, onSelect, onError }) {
+ window.kompltetr({ input: this, data, options, onKeyup, onSelect, onError });
};
})(window);
\ No newline at end of file