All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Safari TP seems to support the
datalist
element at least basically. Yeah !!! Exciting news! I'm planning to release a new major version soon to both cheer as well as accommodate their implementation.
- npm scripts for easier releasing
- test:
html-validate
for testing - code conventions file #76
- test: CodeQL
- Recommended VS Code extensions
- test: Super linter
- build: CI/CD workflows / actions
- renovate for Dependency updates
- feature detection result shown on the demo page
- financial contributors to the README (#82)
- optimized documentation
- updated
devDependencies
- optimized build process
.gitignore
file according to githubs default content- manifested to use Node 14 for the moment dependening on Webdriver.io
- default branch name from
master
tomain
- replaced dependencies badge
- Updated webdriverio, prettier, husky and xo dependencies
- Replaced Greenkeeper by Snyk for vulnerabilities scanning
- Formatted code by prettier
- husky: moved the hook to the dedicated config file
- README: added Gitter badge
- npmignore: added necessary folder
- Updated
webdriverio
andprettier
dependencies
- build:
*.min.js
files should't get prettified
- improvement(prettier): run
prettier
when committing files - a minzipped size badge
- Updated
webdriverio
dependency - improvement(prettier): prettified and optimized the file
- Formatting and code & content optimizations
xo
: added further rules for IE9 & IE10 compatibility
- Updated
webdriverio
,commitlint
,husky
,prettier
andxo
dependencies - test(xo): specifying the JS filename explicitly
- build the minified JS file again
- Corrected some metadata regarding the packages
- build(packages): corrected metadata regarding files to ignore and updated
bower.json
- Linking Apples changelog on the datalist feature from our readme
.gitignore
file- Docs: further mentioned IE10+ and EDGE specifics
.npmignore
fileCommitlint
&husky
for CI
- Updated
webdriverio
andxo
dependencies - Reformatted the JS code
- Removed pointless loop in the code PR #61
- Updated docs regarding browser support #62
- Docs: filesize in the readme
- fixed to have a "correct" minification #58
- Fix exception in IE9 emulator mode PR #65
- Badges displaying problems in some readers / compilers
- Docs: optimizing on the typos and clearity
- update
xo
to version 0.24.0
- No substring matching for multiple emailadress suggestions in IE10+ and EDGE / #54
- EDGE: Incorrect handling of non-text input fields / #55
- IE10: Changes by #39 break script execution due to usage of
.dataset
/ #56 - Some simple corrections, like e.g. removing incorrectly set
multiple
attributes
- Prevent the form to be submitted on selecting a value via
ENTER
key within theselect
/ #51
- JavaScript bug in IE9 and corrected the handling of the browsers towards IE10+ / #50
- Microsoft EDGE /
datalist
popups get "emptied" when receiving focus via tabbing / #49
- Updated
webdriver.io
testing framework to version 5 - Updated some aspects within the
README
file as well as announced some upcoming bigger changes regarding and to cheer the recognized basic support ofdatalist
elements within Apple Safari browser. - Refactoring to prevent a „Function has a complexity of 21.“
- Some simple reformatting of the code according to
prettier
- Preventing a JS error on no
type
-attribute being provided for theinput
-element / #45
- Escaping the user inputs value as doublequotes wouldn't work on the newly added IE11+ and EDGE functionality / #40
- Substring matching for the suggestions on both the
value
and thetext
values / #36
- Finally integrated the test regarding clicking the
select
soption
elements, as this was actually previously prevented by the other bug fixed in the previous release
- Corrected the code style of the
README
file again, as this got incorrectly reformatted previously
- Suggestions aren‘t working
onClick
any more (#35)
- Added testcases and added crossbrowsertesting logo to
README
- increased specificity on one of the selectors according the usage in other parts of the code
- Check for correct element on the
input
s event delegation - Simplified some code parts
- Further aligned the naming conventions
- code and complexity simplifications
- Arrow keys (top&down) disturb the general browser behaviour on number fields (#32)
- Code simplifications
- Suggestions aren‘t working
onclick
any more #31
- on
input[type=url]
omitting the scheme part and performing intelligent matching on the domain name (#28) - README: Updated the tested browsers list as well as updated the Features section due to the updates by this release
- Preparation for automated testing / splitting the demo page by regular and IE9
- IE9: Use
.getAttribute
for retrieving.type
and.multiple
values/existance (#29) - list IDL attribute must return the current suggestions source element (#30)
- In case of the ESC key being pressed while focusing the polyfilling select, we still want to focus the
input[list]
- Performance: Set a local variable
- Preparation for some automated testing
- Changed and added some functionality to the description within the
README
file
- Dispatch the input event as well on the related
input[list]
on using theBackspace
key within the polyfillingselect
- Defined the system-font for the demo-page
- Renamed some variables to some more meaningful names
- Cleanup on some unnecessary variables & comments
- Removed an old separation in between
eventTarget
-Tagnames ofselect
andoption
, that was integrated due to the mouse-event, which has been replaced again a while ago
- Include behavior on pressing
Tab
or other printable keys (#27) - Added Greenkeeper badge. I'm using this service to keep being updated on the dev dependencies.
- Fixed a bug that lead to an incorrectly selected suggestion (first instead of last) while using the up key on the
input
element - Fix for
input[list]
elements withclass
attribute - thanks to @mricherzhagen for mentioning this and even also providing a solution by pull request #25
- Introduced a new bug by the fix for #23. Reverted that one and corrected the
ESLint
rules settings. (#24)
- Linting as well as security:
prettier
,xo
,codacy
- And their badges
Made a lot of code changes in relation to what the previously mentioned linters reported. (e.g. #23)
Made some code changes in relation to what the previously mentioned linters reported. (e.g. #21, #22)
- A previous checkin has broken the solution provided for #16, so I've fixed this again.
- Mainly simplified the code.
- IE9: After choosing a suggestion out of the polyfilling select, the select itself wouldn't get hidden. (#19)
- Changed the order in a comparsion as this simplifies the response.
- Sadly another small bug slipped through today, it's about an incorrect variable being used.
- A small bug sadly slipped through that doesn't hide the polyfilling
select
on non-matching option elements regarding the value.
- Hiding the polyfilling
select
on pressingENTER
, which is equal to the behavior on pressingESC
. - Added more badges to the
README
. I'm loving badges.
- Made some necessary changes to enhance the current demo page by the minimum amount of relevant
HTML
tags that should be included within every page (and even also added the IE related meta tag due to backwards compatibility).
- Removed some sample code out of the
README
page due to the newNPM
websites layout.
- The determination of
option
elements within the polyfillingselect
has incorrectly even also included:disabled
elements.
- Added
MutationObserver
to even also capture changes to theoption
elements as a correction to enhance the current functionality (#16).
- Changed some URLs from
HTTP
to the new kid on the block:HTTPS
. Nice ! ;-) - Additionally did some necessary updates to the documentation.
- Focusing the
input[list]
after selecting a suggestion, as in #18
- Some code refactoring, nothing really serious By the way, it was polyfills 1st birthday one month ago. Yeah !!!
- Thanks to @eddr and @Kravimir for inspiring me via #5 that there should be another possibility on defining
value
andlabel
for the suggestions. As the browser vendors (GC vs. the others) don't seem to be aligned on this topic, I've decided to enable thelabel
-attribute to serve as the definitive label being displayed, even if a value is being defined differing from the label. Check out the „Different ways of defining an option“ section on the demo page regarding this topic.
- The docs. And changed (
dependencies
) and added (jsdelivr
) badges. I like badges. - As well as extracted the
CHANGELOG
to an external file.
- @wlekin thankfully mentioned (extracted to #15) that the polyfilling
select
gets positioned incorrectly underneath theinput[list]
element on iOS.
- Thank you @IceCreamYou for fixing the case sensitive
focusOut
->focusout
event name
- simple (code) style changes (plus added
.editorconfig
to keep it that way) and typo
- @ottoville thankfully contributed by mentioning and implementing the feature of emitting an event when item in
datalist
is selected
- @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 !!!
- @hryamzik thankfully mentioned by #7 that the polyfilling
select
gets positioned incorrectly in case of theinput[list]
element being styled as a block-level element.
- I'm very thankful for @ailintom mentioning the missing IE9 support with #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.
- Added a comment regarding IE9 - and some simple code styling.
- Simple corrections.
- Simple bugfix, that came up through the latest implementation on the up and down arrow keys.
- 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.
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!
- Bugfix regarding the handling of the label values.
- 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
ordate
-related ones, as those polyfills should handle the support of the datalist themselves depending on their own functionality.
- As mentioned by @aFarkas within his review,
option
elements could be of some different formats. This release especially follows the spec regarding the aspect that „Each suggestion has a value and a label.“.
- Optimized the behavior to select the entries within the polyfilling
select[multiple]
on using the up and down arrow keys from the polyfilledinput[list]
.
- Introduced speaking variables for the different
keycodes
. - And implemented some feedback by flow.
- As well as additional code simplifications.
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 amultiple
-selection type, which emulates the expected „form“ better. - And better positioning as well as styling the polyfilling
select
according to theinput
field, like e.g. even also set the polyfillingselect
elementsborder-radius
equally as the one by the polyfilledinput
.
- Simplified the styling and got rid of the external CSS files / dependency. You could remove that one now. Yeah!
- Added
RTL
text-direction support
- Added support for multiple email addresses, separated by comma.
- And again, updated documentation slightly. And demo accordingly.
- Simple code style modifications. Because style matters.
- Added
.options
(fordatalist
elements) and.list
(forinput
elements) properties according to the specs.
- Further simplified the code, so that we could even skip the
.matches()
polyfill. Yeah. - And documentation updates.
- fixed another simple bug that lead to an incorrect index being selected - let's skip this, as it's not even the standard behavior
- some small corrections
- better preselection on entries within the dropdown depending on the
input
elements value
- added a
package.json
file
- Small, but important typo. :-) Thanks @Fyrd for mentioning this.
- First release.