datalist-polyfill
Advanced tools
Comparing version 1.12.3 to 1.13.0
{ | ||
"name": "datalist-polyfill", | ||
"description": "An extremely lightweight and library-dependency-free vanilla JavaScript datalist polyfill.", | ||
"version": "1.12.3", | ||
"version": "1.13.0", | ||
"homepage": "https://github.com/mfranzke/datalist-polyfill", | ||
@@ -6,0 +6,0 @@ "authors": [{ |
/* | ||
* datalist-polyfill.js - https://github.com/mfranzke/datalist-polyfill | ||
* @license Copyright(c) 2017 by Maximilian Franzke | ||
* Supported by Christian, Johannes, @mitchhentges, @mertenhanisch, @ailintom, @Kravimir, Michael, @hryamzik, @ottoville, @IceCreamYou and @wlekin - many thanks for that ! | ||
* Supported by Christian, Johannes, @mitchhentges, @mertenhanisch, @ailintom, @Kravimir, Michael, @hryamzik, @ottoville, @IceCreamYou, @wlekin and @eddr - many thanks for that ! | ||
*/ | ||
@@ -66,2 +66,5 @@ /* | ||
// defining the text / value seperator for displaying the value and text values | ||
textValueSeperator = ' / ', | ||
// and defining the different input types that are supported by this polyfill | ||
@@ -139,17 +142,14 @@ supportedTypes = ['text', 'email', 'number', 'search', 'tel', 'url']; | ||
var label = opt.label, | ||
labelValueSeperator = ' / ', | ||
labelOptionPart = label.substr(0, optionValue.length + labelValueSeperator.length), | ||
optionPart = optionValue + labelValueSeperator; | ||
var label = opt.getAttribute('label'), | ||
text = opt.text, | ||
textOptionPart = text.substr(0, optionValue.length + textValueSeperator.length), | ||
optionPart = optionValue + textValueSeperator; | ||
// the innertext should be value / label in case they are different | ||
if (label && label !== optionValue && labelOptionPart !== optionPart) { | ||
opt.innerText = optionValue + labelValueSeperator + label; | ||
// the innertext should be value / text in case they are different | ||
if (text && !label && text !== optionValue && textOptionPart !== optionPart) { | ||
opt.innerText = optionValue + textValueSeperator + text; | ||
// remove the label attribute, as it's being displayed differently on desktop and iOS Safari for our construct | ||
opt.setAttribute('data-label', opt.getAttribute('label')); | ||
opt.removeAttribute('label'); | ||
} else if (!opt.innerText.trim()) { | ||
} else if (!opt.text) { | ||
// manipulating the option inner text, that would get displayed | ||
opt.innerText = optionValue; | ||
opt.innerText = label || optionValue; | ||
} | ||
@@ -156,0 +156,0 @@ |
/* | ||
* datalist-polyfill.js - https://github.com/mfranzke/datalist-polyfill | ||
* @license Copyright(c) 2017 by Maximilian Franzke | ||
* Supported by Christian, Johannes, @mitchhentges, @mertenhanisch, @ailintom, @Kravimir, Michael, @hryamzik, @ottoville, @IceCreamYou and @wlekin - many thanks for that ! | ||
* Supported by Christian, Johannes, @mitchhentges, @mertenhanisch, @ailintom, @Kravimir, Michael, @hryamzik, @ottoville, @IceCreamYou, @wlekin and @eddr - many thanks for that ! | ||
*/ | ||
!function(){"use strict";if("list"in document.createElement("input")&&!(!document.createElement("datalist")||!window.HTMLDataListElement))return!1;!function(e){e&&e.prototype&&void 0===e.prototype.list&&Object.defineProperty(e.prototype,"list",{get:function(){if("object"==typeof this&&this instanceof e){var t=this.getAttribute("list");return document.getElementById(t)}return null}})}(window.HTMLInputElement),function(e){e&&e.prototype&&void 0===e.prototype.options&&Object.defineProperty(e.prototype,"options",{get:function(){if("object"==typeof this&&this instanceof e)return this.getElementsByTagName("option")}})}(window.HTMLElement);var e=!1,t=13,i=27,r=38,n=40,a=["text","email","number","search","tel","url"];window.addEventListener("touchstart",function t(){e=!0,window.removeEventListener("touchstart",t)});var o=function(t){var i=t.target,r=i.tagName.toLowerCase();if(r&&"input"===r&&i.getAttribute("list")){var n=i.getAttribute("list"),a=document.getElementById(n);if(null!==a){var o=a.getElementsByClassName("polyfilling")[0];if(void 0!==o){if(27===t.keyCode)return o.setAttributeNode(document.createAttribute("hidden")),void o.setAttribute("aria-hidden","true");var l=a.querySelectorAll("option:not([disabled]):not(.message)"),s=i.value,u=document.createDocumentFragment(),d=document.createDocumentFragment(),c=!1,p="email"===i.type&&i.multiple,m=38===t.keyCode||40===t.keyCode;if(p){var b=s.split(","),f=b.length-1;s=b[f].trim()}if(""!==s||m){Array.prototype.slice.call(l).sort(function(e,t){return e.value.localeCompare(t.value)}).forEach(function(e){var t=e.value;if(""!==t&&-1!==t.toLowerCase().indexOf(s.toLowerCase())&&!1===e.disabled){var i=e.label,r=" / ",n=i.substr(0,t.length+" / ".length),a=t+" / ";i&&i!==t&&n!==a?(e.innerText=t+" / "+i,e.setAttribute("data-label",e.getAttribute("label")),e.removeAttribute("label")):e.innerText.trim()||(e.innerText=t),u.appendChild(e),c=!0}else d.appendChild(e)}),o.appendChild(u);var g=o.options.length,v=0,y=g-1;if(o.size=g>10?10:g,o.multiple=!e&&g<2,e)o.selectedIndex=0;else if(-1===o.selectedIndex)switch(t.keyCode){case 38:o.selectedIndex=y;break;case 40:o.selectedIndex=0;break}(a.getElementsByClassName("ie9_fix")[0]||a).appendChild(d)}c?o.removeAttribute("hidden"):o.setAttributeNode(document.createAttribute("hidden")),o.setAttribute("aria-hidden",(!c).toString()),m&&o.focus()}}}},l=function(t){var i=t.target,r=i.tagName.toLowerCase(),n=i.type,u=window.getComputedStyle(i);if(r&&"input"===r&&i.getAttribute("list")&&a.indexOf(n)>-1){var d=t.type,c=i.getAttribute("list"),p=document.getElementById(c);if(null!==p){var m=p.getElementsByClassName("polyfilling")[0],b="focus"===d&&""!==t.target.value||t.relatedTarget&&t.relatedTarget===m,f=p.title;if(void 0===m){var g=i.getClientRects(),v=parseFloat(u.getPropertyValue("margin-right")),y=parseFloat(u.getPropertyValue("margin-left"));if(m=document.createElement("select"),m.setAttribute("class","polyfilling"),m.setAttributeNode(document.createAttribute("hidden")),m.style.position="absolute",m.setAttribute("aria-hidden","true"),m.setAttribute("aria-live","polite"),m.setAttribute("role","listbox"),e||m.setAttribute("aria-multiselectable","false"),"block"===u.getPropertyValue("display")?m.style.marginTop="-"+u.getPropertyValue("margin-bottom"):("rtl"===u.getPropertyValue("direction")?m.style.marginRight="-"+(g[0].width+y)+"px":m.style.marginLeft="-"+(g[0].width+v)+"px",m.style.marginTop=parseInt(g[0].height+(i.offsetTop-p.offsetTop),10)+"px"),m.style.borderRadius=u.getPropertyValue("border-radius"),m.style.minWidth=g[0].width+"px",e){var h=document.createElement("option");h.innerText=f,h.disabled=!0,h.setAttribute("class","message"),m.appendChild(h)}p.appendChild(m),e?m.addEventListener("change",s):m.addEventListener("click",s),m.addEventListener("blur",s),m.addEventListener("keyup",s),i.setAttribute("autocomplete","off"),i.setAttribute("role","textbox"),i.setAttribute("aria-haspopup","true"),i.setAttribute("aria-autocomplete","list"),i.setAttribute("aria-owns",c)}switch(b?m.removeAttribute("hidden"):m.setAttributeNode(document.createAttribute("hidden")),m.setAttribute("aria-hidden",(!b).toString()),d){case"focus":i.addEventListener("keyup",o),i.addEventListener("focusout",l,!0);break;case"blur":i.removeEventListener("keyup",o),i.removeEventListener("focusout",l,!0);break}}}},s=function(e){var t=e.target,i=t.tagName.toLowerCase();if(i&&("select"===i||"option"===i)){var r="select"===i?t:t.parentNode,n=r.parentNode,a=n.title,o=e.type,l="keyup"===o&&13!==e.keyCode&&27!==e.keyCode;if("change"===o||"click"===o||"keyup"===o&&13===e.keyCode){var s=n.id,u=document.querySelector('input[list="'+s+'"]'),d=r.value;if(null!==u&&void 0!==d&&d.length>0&&d!==a){var c=u.value,p,m="email"===u.type&&u.multiple,b;m&&(p=c.lastIndexOf(","))>-1?u.value=c.slice(0,p)+","+d:u.value=d,"function"==typeof Event?b=new Event("input",{bubbles:!0}):(b=document.createEvent("Event"),b.initEvent("input",!0,!1)),u.dispatchEvent(b),l=!1}}l?r.removeAttribute("hidden"):r.setAttributeNode(document.createAttribute("hidden")),r.setAttribute("aria-hidden",(!l).toString())}};document.addEventListener("focus",l,!0)}(); | ||
!function(){"use strict";if("list"in document.createElement("input")&&!(!document.createElement("datalist")||!window.HTMLDataListElement))return!1;!function(e){e&&e.prototype&&void 0===e.prototype.list&&Object.defineProperty(e.prototype,"list",{get:function(){if("object"==typeof this&&this instanceof e){var t=this.getAttribute("list");return document.getElementById(t)}return null}})}(window.HTMLInputElement),function(e){e&&e.prototype&&void 0===e.prototype.options&&Object.defineProperty(e.prototype,"options",{get:function(){if("object"==typeof this&&this instanceof e)return this.getElementsByTagName("option")}})}(window.HTMLElement);var e=!1,t=13,i=27,r=38,n=40,a=" / ",o=["text","email","number","search","tel","url"];window.addEventListener("touchstart",function t(){e=!0,window.removeEventListener("touchstart",t)});var l=function(t){var i=t.target,r=i.tagName.toLowerCase();if(r&&"input"===r&&i.getAttribute("list")){var n=i.getAttribute("list"),a=document.getElementById(n);if(null!==a){var o=a.getElementsByClassName("polyfilling")[0];if(void 0!==o){if(27===t.keyCode)return o.setAttributeNode(document.createAttribute("hidden")),void o.setAttribute("aria-hidden","true");var l=a.querySelectorAll("option:not([disabled]):not(.message)"),s=i.value,d=document.createDocumentFragment(),u=document.createDocumentFragment(),c=!1,p="email"===i.type&&i.multiple,m=38===t.keyCode||40===t.keyCode;if(p){var b=s.split(","),f=b.length-1;s=b[f].trim()}if(""!==s||m){Array.prototype.slice.call(l).sort(function(e,t){return e.value.localeCompare(t.value)}).forEach(function(e){var t=e.value;if(""!==t&&-1!==t.toLowerCase().indexOf(s.toLowerCase())&&!1===e.disabled){var i=e.getAttribute("label"),r=e.text,n=r.substr(0,t.length+" / ".length),a=t+" / ";r&&!i&&r!==t&&n!==a?e.innerText=t+" / "+r:e.text||(e.innerText=i||t),d.appendChild(e),c=!0}else u.appendChild(e)}),o.appendChild(d);var g=o.options.length,v=0,y=g-1;if(o.size=g>10?10:g,o.multiple=!e&&g<2,e)o.selectedIndex=0;else if(-1===o.selectedIndex)switch(t.keyCode){case 38:o.selectedIndex=y;break;case 40:o.selectedIndex=0;break}(a.getElementsByClassName("ie9_fix")[0]||a).appendChild(u)}c?o.removeAttribute("hidden"):o.setAttributeNode(document.createAttribute("hidden")),o.setAttribute("aria-hidden",(!c).toString()),m&&o.focus()}}}},s=function(t){var i=t.target,r=i.tagName.toLowerCase(),n=i.type,a=window.getComputedStyle(i);if(r&&"input"===r&&i.getAttribute("list")&&o.indexOf(n)>-1){var u=t.type,c=i.getAttribute("list"),p=document.getElementById(c);if(null!==p){var m=p.getElementsByClassName("polyfilling")[0],b="focus"===u&&""!==t.target.value||t.relatedTarget&&t.relatedTarget===m,f=p.title;if(void 0===m){var g=i.getClientRects(),v=parseFloat(a.getPropertyValue("margin-right")),y=parseFloat(a.getPropertyValue("margin-left"));if(m=document.createElement("select"),m.setAttribute("class","polyfilling"),m.setAttributeNode(document.createAttribute("hidden")),m.style.position="absolute",m.setAttribute("aria-hidden","true"),m.setAttribute("aria-live","polite"),m.setAttribute("role","listbox"),e||m.setAttribute("aria-multiselectable","false"),"block"===a.getPropertyValue("display")?m.style.marginTop="-"+a.getPropertyValue("margin-bottom"):("rtl"===a.getPropertyValue("direction")?m.style.marginRight="-"+(g[0].width+y)+"px":m.style.marginLeft="-"+(g[0].width+v)+"px",m.style.marginTop=parseInt(g[0].height+(i.offsetTop-p.offsetTop),10)+"px"),m.style.borderRadius=a.getPropertyValue("border-radius"),m.style.minWidth=g[0].width+"px",e){var h=document.createElement("option");h.innerText=f,h.disabled=!0,h.setAttribute("class","message"),m.appendChild(h)}p.appendChild(m),e?m.addEventListener("change",d):m.addEventListener("click",d),m.addEventListener("blur",d),m.addEventListener("keyup",d),i.setAttribute("autocomplete","off"),i.setAttribute("role","textbox"),i.setAttribute("aria-haspopup","true"),i.setAttribute("aria-autocomplete","list"),i.setAttribute("aria-owns",c)}switch(b?m.removeAttribute("hidden"):m.setAttributeNode(document.createAttribute("hidden")),m.setAttribute("aria-hidden",(!b).toString()),u){case"focus":i.addEventListener("keyup",l),i.addEventListener("focusout",s,!0);break;case"blur":i.removeEventListener("keyup",l),i.removeEventListener("focusout",s,!0);break}}}},d=function(e){var t=e.target,i=t.tagName.toLowerCase();if(i&&("select"===i||"option"===i)){var r="select"===i?t:t.parentNode,n=r.parentNode,a=n.title,o=e.type,l="keyup"===o&&13!==e.keyCode&&27!==e.keyCode;if("change"===o||"click"===o||"keyup"===o&&13===e.keyCode){var s=n.id,d=document.querySelector('input[list="'+s+'"]'),u=r.value;if(null!==d&&void 0!==u&&u.length>0&&u!==a){var c=d.value,p,m="email"===d.type&&d.multiple,b;m&&(p=c.lastIndexOf(","))>-1?d.value=c.slice(0,p)+","+u:d.value=u,"function"==typeof Event?b=new Event("input",{bubbles:!0}):(b=document.createEvent("Event"),b.initEvent("input",!0,!1)),d.dispatchEvent(b),l=!1}}l?r.removeAttribute("hidden"):r.setAttributeNode(document.createAttribute("hidden")),r.setAttribute("aria-hidden",(!l).toString())}};document.addEventListener("focus",s,!0)}(); |
{ | ||
"name": "datalist-polyfill", | ||
"version": "1.12.3", | ||
"description": "An extremely lightweight and library-dependency-free vanilla JavaScript datalist polyfill.", | ||
"version": "1.13.0", | ||
"description": "A lightweight and dependency-free vanilla JavaScript datalist polyfill.", | ||
"main": "datalist-polyfill.js", | ||
@@ -18,2 +18,5 @@ "scripts": { | ||
"datalist", | ||
"polyfill", | ||
"javascript", | ||
"html", | ||
"autosuggest", | ||
@@ -28,3 +31,4 @@ "autosuggester", | ||
}, | ||
"homepage": "https://github.com/mfranzke/datalist-polyfill" | ||
"homepage": "https://github.com/mfranzke/datalist-polyfill", | ||
"dependencies" : {} | ||
} |
106
README.md
@@ -5,4 +5,5 @@ # datalist-polyfill | ||
[![npm](https://img.shields.io/npm/v/datalist-polyfill.svg)](https://www.npmjs.com/package/datalist-polyfill) | ||
[![dependencies Status](https://david-dm.org/mfranzke/datalist-polyfill/status.svg)](https://david-dm.org/mfranzke/datalist-polyfill) | ||
[![](https://data.jsdelivr.com/v1/package/npm/datalist-polyfill/badge)](https://www.jsdelivr.com/package/npm/datalist-polyfill) | ||
This is a minimal and dependency-free vanilla JavaScript polyfill for the awesome datalist-functionality, that will bring joy and happiness into our lives :-) | ||
@@ -14,3 +15,3 @@ | ||
## Features | ||
* Lightweight: 5.25 kB of JavaScript, around 2.33 kB gzipped | ||
* Lightweight: 5.52 kB of JavaScript, around 2.35 kB gzipped | ||
* Fully flexible to change the datalist entries / `<option>`s | ||
@@ -26,2 +27,3 @@ * Supporting: | ||
* both Safari and Internet Explorer (IE9+) browsers | ||
* controlling the display of differing `value` and `label` values | ||
* Emits "input" event when item in the `datalist` is selected | ||
@@ -38,4 +40,2 @@ * Enables core keyboard controls such as the up and down arrow keys, `ESC`, and `ENTER` | ||
[![Dependency Status](https://gemnasium.com/badges/github.com/mfranzke/datalist-polyfill.svg)](https://gemnasium.com/github.com/mfranzke/datalist-polyfill) | ||
## Installation | ||
@@ -64,2 +64,5 @@ Just integrate the JavaScript file into your code - et voilà. | ||
### Differing `value` and `label` values | ||
As the browser vendors (Google Chrome vs. the others) don't seem to be aligned on this topic, I've decided to enable the `label`-attribute to serve as the definitive label being displayed, even if a value is being defined differing from the label. On different `value` and `text` values, both of them would get displayed within the suggestions, as Google Chrome does it. But if you define a differing `label`-attribute, its value would get displayed exclusively (as all the other browsers do it) to give you some flexibility on how to define those suggestions. Check out the „Different ways of defining an option“ section on the demo page regarding this topic. | ||
### Microsoft Internet Explorer | ||
@@ -99,2 +102,3 @@ #### Internet Explorer 10- | ||
* The demo HTML code is meant to be simple - I do know that things like a surrounding `<form>` are missing, and I've left the latin letters and english expressions for the right to left text-direction example. But lets focus on the relevant tags that this polyfill is all about for the demo. | ||
* iOS Safari handles the `label`-attribute different from Safari on Mac OS. This is being equalized during the handling of the `label`-attributes-value for differing `value` and `label` values. | ||
* After I thought it through and did some experiments, I've finally chosen the `<select>` element to polyfill the `<datalist>`, as it brought most of the functionality, whereas I accepted that it doesn't behave and doesn't look equally. | ||
@@ -105,96 +109,4 @@ * As I wanted to mainly focus on native elements in the most low level / simple way instead of visually emulating a list and than afterwards regain all of the functionality via a lot of JavaScript logic, I've ended up with this element, that knows how to play nicely with nested `<option>` elements. | ||
## Credits | ||
Supported by Christian, Johannes, @mitchhentges, @mertenhanisch, @ailintom, @Kravimir, @mischah, @hryamzik, @ottoville, @IceCreamYou and @wlekin. Thank you very much for that, highly appreciated ! | ||
Supported by Christian, Johannes, @mitchhentges, @mertenhanisch, @ailintom, @Kravimir, @mischah, @hryamzik, @ottoville, @IceCreamYou, @wlekin and @eddr. Thank you very much for that, highly appreciated ! | ||
## Changelog | ||
### Version 1.12.3 - 2018/05/04 | ||
@wlekin thankfully mentioned (extracted to #GH-15) that the polyfilling `select` gets positioned incorrectly underneath the `input[list]` element on iOS. | ||
### Version 1.12.2 - 2018/05/01 | ||
Thank you @IceCreamYou for fixing the case sensitive focusOut -> focusout event name | ||
### Version 1.12.1 - 2018/04/07 | ||
simple (code) style changes (plus added editorconfig to keep it that way) and typo | ||
### Version 1.12.0 - 2018/03/18 | ||
@ottoville thankfully contributed by mentioning and implementing the feature of emitting an event when item in datalist is selected | ||
### Version 1.11.2 - 2018/03/17 | ||
@mertenhanisch has styled the code according to more "standard" formatting and also improved the wording of the documentation, which is awesome. And @mitchhentges thankfully supports on reviewing your great community support and ensures to the keep the wheels turning on the development of this projects. Many kudos to the both of you !!! | ||
### Version 1.11.1 - 2017/11/24 | ||
@hryamzik thankfully mentioned by #GH-7 that the polyfilling `select` gets positioned incorrectly in case of the `input[list]` element being styled as a block-level element. | ||
### Version 1.11.0 - 2017/09/26 | ||
I'm very thankful for @ailintom mentioning the missing IE9 support with #GH-2, which is still relevant (at least and maybe foremost) for the Windows Vista users. Additionally @Kravimir thankfully brought to my attention, that IE9 handles the `option` subelements quite restricted - so I've added a section regarding IE9 support to the demo page with the additional two lines of HTML, that you'll need to add in case you also need / want to still support IE9 in your projects, as well as changed the JavaScript code to even also support IE9. | ||
### Version 1.10.3 - 2017/10/07 | ||
Added a comment regarding IE9 - and some simple code styling. | ||
### Version 1.10.2 - 2017/09/26 | ||
Simple corrections. | ||
### Version 1.10.1 - 2017/09/25 | ||
Simple bugfix, that came up through the latest implementation on the up and down arrow keys. | ||
### Version 1.10.0 - 2017/08/16 | ||
Added the ability to open the datalist on the up and down keys even in case that no value has been provided - this seems to be intentionally and even also adapts the behavior by supporting browsers. | ||
### Version 1.9.0 - 2017/07/20 | ||
Regarding the changes out of release version 1.6.0 to emulate the expected UI quite nicely, I was still struggling with using that hacky solution (`multiple` attribute) and even also of how to prevent multiple selections on the polyfilling select. Actually the attribute `size` came to my attention, which much better fits the requirements and behaves as designed quite perfectly. Chapeau! | ||
### Version 1.8.1 - 2017/07/18 | ||
Bugfix regarding the handling of the label values. | ||
### Version 1.8.0 - 2017/07/14 | ||
Restricted the polyfill to only work with relevant input types; we’d like to exclude the ones that even already need another polyfill to „work“ correctly or have a meaningful UI, like e.g. color or date-related ones, as those polyfills should handle the support of the datalist themselves depending on their own functionality. | ||
### Version 1.7.0 - 2017/06/29 | ||
As mentioned by @aFarkas [within his review](https://github.com/h5bp/html5please/issues/18), `option` elements could be of some different formats. This release especially follows [the spec](https://www.w3.org/TR/html5/forms.html#the-datalist-element) regarding the aspect that "Each suggestion has a value and a label.". | ||
### Version 1.6.2 - 2017/06/28 | ||
Optimized the behavior to select the entries within the polyfilling `select[multiple]` on using the up and down arrow keys from the polyfilled `input[list]`. | ||
### Version 1.6.1 - 2017/06/16 | ||
Introduced speaking variables for the different keycodes. And implemented some feedback by flow. As well as additional code simplifications. | ||
### Version 1.6.0 - 2017/06/16 | ||
This is so far the biggest and greatest update ! Depending of the feedback by Michael the visual appearance has changed and will better emulate the expected layout as in other browsers (on non-touch interactions). That for the script is creating the polyfilling select as a multiple-selection type, which emulates the expected „form“ better. And better positioning as well as styling the polyfilling select according to the input field, like e.g. even also set the polyfilling selects border-radius equally as the one by the polyfilled input. | ||
### Version 1.5.0 - 2017/06/10 | ||
Simplified the styling and got rid of the external CSS files / dependency. You could remove that one now. Yeah! | ||
### Version 1.4.0 - 2017/06/09 | ||
Added RTL text-direction support | ||
### Version 1.3.0 - 2017/05/30 | ||
Added support for multiple email addresses, separated by comma. And again, updated documentation slightly. And demo accordingly. | ||
### Version 1.2.1 - 2017/05/29 | ||
Simple code style modifications. Because style matters. | ||
### Version 1.2.0 - 2017/05/29 | ||
Added .options (for `datalist` elements) and .list (for `input` elements) properties according to the specs. | ||
### Version 1.1.2 - 2017/05/14 | ||
Further simplified the code, so that we could even skip the `.matches()` polyfill. Yeah. And documentation updates. | ||
### Version 1.1.1 - 2017/05/10 | ||
fixed another simple bug that lead to an incorrect index being selected - let's skip this, as it's not even the standard behaviour | ||
### Version 1.1.0 - 2017/05/09 | ||
some small corrections | ||
### Version 1.0.3 - 2017/05/09 | ||
better preselection on entries within the dropdown depending on the inputs value | ||
### Version 1.0.2 - 2017/05/08 | ||
added a `package.json` file | ||
### Version 1.0.1 - 2017/05/08 | ||
Small, but important typo. :-) Thanks Fyrd for mentioning this. | ||
### Version 1.0.0 - 2017/05/04 | ||
First release. | ||
## Tested with | ||
@@ -201,0 +113,0 @@ |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
48544
11
358
125