Commit graph

237 commits

Author SHA1 Message Date
Konstantin Vyatkin 7de0887e7d use templates from instance, fixes #461 (#660)
* use template from instance

* adjust test

* fix lint

* try to move `this` out of loop

* fixes late init bound
2019-10-21 10:48:49 +01:00
Chris DeLuca e7d775e2ae Use event delegation (#644)
Instead of attaching a new root-level event listener for bubbling events
for every choices instance, use a simple event delegation script to
handle each event type.

Each event callback function already is coded as if it were fully
delegated, since the events are attached at the document level, so
no changes are needed to detect which element is being called.

Note that focus and blur event do not bubble, so they have been left as
they are.

Also note that the event delegation uses an IIFE purposely instead of
ES6 modules, since the event list should be globally cached, and it
doesn't make sense to instantiate a new scope for each instance (then
we're back where we started!)

fix #643
2019-10-15 08:42:31 +01:00
bradwade 5cf226f166 ADA accessibility label fixes (#642)
* Update incorrect 'label-for' in demo index.html file.

* Use placeholder value for search input aria label.

* Updated input template test.

* Adding the compiled, uglified JS.
2019-10-10 09:49:00 +01:00
Tomakava 37db45e651 fix unhighlightAll performance issue (#648) 2019-10-03 09:41:53 +01:00
Alex Webb 39b6eed395 Resolve issue in utils::calcWidthOfInput() (#608) 2019-10-02 09:03:38 +01:00
Josh Johnson 67382a3f31 Use v3 of polyfill 2019-03-29 09:12:29 +00:00
Josh Johnson 3c05016920 Merge branch 'master' of https://github.com/DarrenMack-OD/Choices into DarrenMack-OD-master 2019-03-29 08:57:38 +00:00
Darren Mackintosh 9c021408fa
Update choices.test.js 2019-03-15 16:57:57 +00:00
Darren Mackintosh aceb838988
Rolled back webpack changes in Choices.js 2019-03-15 16:57:35 +00:00
Darren Mackintosh 03a45094b7
Update index.test.js 2019-03-14 12:31:29 +00:00
Darren Mackintosh 92680c0dc0
Update index.js 2019-03-14 12:20:43 +00:00
Darren Mackintosh da87fa07cf
Update choices.test.js 2019-03-14 12:13:06 +00:00
Darren Mackintosh 2247eff08a
Added linting exclusion for WebPack 2019-03-14 12:03:22 +00:00
Darren Mackintosh 5018e4a7d4
Updated reference to choices
Because I have attempted to fix the WebPack issue with choices, I need to change how it is referenced
2019-03-14 11:47:11 +00:00
Darren Mackintosh cc32284e8a
Updated reference to choices
Because I have attempted to fix the WebPack issue with choices, I need to change how it is referenced
2019-03-14 11:46:39 +00:00
Darren Mackintosh b1005061ff
Changed reference to Choices
Because I have attempted to fix the WebPack issue with choices, I need to change how it is referenced
2019-03-14 11:44:46 +00:00
Darren Mackintosh 6486bbbd6d
Updated tests to reflect changes to choices.js 2019-03-14 11:23:57 +00:00
Darren Mackintosh f9f63e7aba
Fix for the webpack issue
export choices as a class to circumvent the webpack issue
2019-03-14 11:23:12 +00:00
Hans Lemuet 5c17250e20
Allow passing an empty array to setChoices 2019-03-13 10:34:06 +01:00
Hans Lemuet fc9bca2ece
Rename _clearChoices to clearChoices 2019-03-13 10:05:38 +01:00
Darren Mackintosh 2fa92520ef
Updated Choices.js
Fixes scrollbar issue in IE11. There is an EDGE-CASE where-by if a user were to select the same option twice, the dropdown doesn't go away. This is, however a very extreme case and we are on the right track
2019-03-12 20:27:54 +00:00
Christophe Coevoet 56845e3897 Remove the CustomEvent polyfill from the bundle 2019-02-28 11:51:04 +01:00
Josh Johnson 879c97f64c
Resolve undefined error (#528)
* Remove run-p from test command

* Remove dropdown interaction tests

* Tidy utils

* Use merge lib

* Remove string casting

* Sanitise in constants

* Housekeeping

* Add non-string value tests
2019-02-22 22:04:55 +00:00
Josh Johnson 8540d5aabd
Api changes (#515)
* Combine regexFilter and addItemFilter + minor tweaks

* Update tests to accomodate fixed dropdown notice

* Remove broken `toggleDropdown` method

* Unskip dropdown interaction tests

* Remove reference to removed method
2019-02-12 18:35:46 +00:00
Josh Johnson 55b356ec69
Add travis pipeline (#516)
* Update travis.yml

* Simplify ci pipeline

* Include css in bundle size check

* Set npm username via env var

* Specify branches

* Add build scripts

* Consistent ifs

* Add linting stage to pipeline

* Cache npm

* Cache cypress & npm folders + install using ci method

* Unignore package-lock
2019-02-12 18:04:50 +00:00
Glade ba09fb00e6 callback to filter items before adding (#485)
* Add item custom callback

* Minor unit test updates

* Test updates, Changed callback name to more clearly distinguish it's function

* Fix description wording in cypress

* Update README

* Updated filter item callback name to be addItemFilter
2019-02-11 22:56:21 +00:00
Guilherme de Oliveira Costa 71a3131d3c Added custom properties to options
Added custom properties to options to be searchable on select.
2019-02-11 16:05:59 -02:00
Josh Johnson 5c9dfdf2db
Upgrade old packages (#508)
* Upgrade Webpack to v4

* Upgrade Mocha

* Export unminfied and minified version

* Add browserslistrc

* Remove core.js polyfills

* Run bundle size on pre push

* Run bundlesize last

* Update readme gzip side
2019-02-09 18:13:25 +00:00
Josh Johnson 437651411f
Fix render blocking (#456)
* Reapply changes from PR #310

* Version 4.1.1

* Update action name

* Update test

* Resolved broken test
2019-01-26 12:36:47 +00:00
Jeremy Hou 48b74a91bc fixes the 'invalid input type' check (#498) 2019-01-21 08:46:14 +00:00
Jeremy Hou 9c001487ba Fixes an issue where deepmerge concatenates array configs (#496) 2019-01-19 14:47:22 +00:00
Josh Johnson 826384b9d5
Fix set choice by value bug (#471)
* Resolve bug with setChoiceByValue not removing choice from dropdown

* 4.1.3

* Version 4.1.3
2018-11-25 12:48:49 +00:00
Josh Johnson c3e46e55aa
Fix form submission bug in firefox (#470)
* Fix form submission bug in firefox

* 4.1.1
2018-11-24 17:48:03 +00:00
Josh Johnson 496db95153 Disable input when loading remote data 2018-11-03 13:24:52 +00:00
Josh Johnson feb2a15edc Disable at a later stage of intialising 2018-10-30 22:04:08 +00:00
Josh Johnson b0f3b28ef4 Do not open dropdown if element is disabled 2018-10-30 20:28:40 +00:00
Josh Johnson 798b49d565 Disable element if disabled attr passed 2018-10-30 20:21:52 +00:00
Josh Johnson 7e4347b183 Resolve issue with Firefox not selecting choices via enter key 2018-10-30 19:20:16 +00:00
Josh Johnson 608358a9f8 Fix bug where selected options were not being selected 2018-10-28 09:32:35 +00:00
Josh Johnson de71fb7ef4 Resolve issue with disable/enable methods 2018-10-27 20:16:46 +01:00
Leonard 8149db8436 Make it work in Internet Explorer (#434)
+ IE does not support multiple-parameter classList.add() /
  classList.remove(); Replace it with single-parameter calls
  https://caniuse.com/#feat=classlist
+ IE needs polyfills for Array.prototype.find / Array.prototype.includes
2018-10-27 16:26:52 +01:00
Josh Johnson 4193422cf6 Resolve an issue with disabling/enabling instances 2018-10-21 19:26:08 +01:00
Josh Johnson e07e14bd8f Add select multiple e2e tests 2018-10-13 16:38:51 +01:00
Josh Johnson 1f06a32b30 Resolve bug with text value 2018-10-13 15:49:44 +01:00
Josh Johnson 81b2e23d0d Use test.html for testing + add additional tests 2018-10-11 19:33:19 +01:00
Josh Johnson 3319529b98 Seperate key methods into class methods 2018-10-09 13:17:11 +01:00
Josh Johnson 60d52a2d3b Check no unknown config keys are passed 2018-10-09 13:16:58 +01:00
Josh Johnson 4431a0ec23 Use deepmerge lib + store all defaults in DEFAULT_CONFIG 2018-10-09 12:43:25 +01:00
Josh Johnson 4824958e4d Make render method private 2018-10-09 12:26:47 +01:00
Ryan Mahoney 5e215907f4 expose new event that triggers when choice is highlighted 2018-07-03 09:51:18 +01:00
Josh Johnson 129d01c396 Amend copy 2018-05-29 20:39:40 +01:00
Josh Johnson 3886cbbd5c Minor tweaks 2018-05-29 20:30:58 +01:00
Josh Johnson 9ac62aec31 Codebeat fixes 2018-05-29 20:08:05 +01:00
Josh Johnson 38cc568341 Use objects for args where necessary 2018-05-29 19:55:33 +01:00
Josh Johnson bc2e0b8be0 Build 2018-05-29 15:47:45 +01:00
Josh Johnson 32f32703cb Use internal flag for enabling/disabling search 2018-05-29 15:46:30 +01:00
Josh Johnson 5a6c8142b9 Inverse focus calls when opening/closing dropdown 2018-05-29 15:08:43 +01:00
Josh Johnson 8a21c12482 Rename duplicateItems to duplicateItemsAllowed for clarity 2018-05-29 09:30:05 +01:00
Josh Johnson f286dbc653 Add util tests 2018-05-28 17:56:36 +01:00
Josh Johnson bfb6571ce9 Merge into latest 2018-05-28 16:22:22 +01:00
Josh Johnson 056ece0238 Run linter 2018-05-28 15:50:16 +01:00
Josh Johnson 179542897c
Merge branch 'develop' into develop 2018-05-28 15:47:27 +01:00
Josh Johnson 67e1940232 Avoid name conflict with stripHTML 2018-05-28 15:46:27 +01:00
Josh Johnson 9dbb2e9733 Rename stripHTML + cast values to string 2018-05-28 15:39:12 +01:00
Josh Johnson 8214eea7a9 Resolve conflict + add test 2018-05-28 15:33:13 +01:00
Tőrös Egon Richárd 6e45d3f9b0
Merge branch 'develop' into develop 2018-05-28 16:19:31 +02:00
Josh Johnson a023d92b35 Resolve conflict 2018-05-28 15:17:43 +01:00
Egon Richárd Tőrös 0cbf951845 Merge branch 'develop' of https://github.com/jshjohnson/Choices into develop 2018-05-28 16:13:55 +02:00
Josh Johnson 39beb20245 Remove pointless comments + minor tidying 2018-05-28 14:18:44 +01:00
Josh Johnson 804a4a442b Move scrolling logic into list component 2018-05-28 14:09:11 +01:00
Josh Johnson f9455b1a25 Install prettier + resolve linting issues 2018-05-28 13:55:44 +01:00
Josh Johnson a6bfdc0993 Refactor _scrollToChoice 2018-05-27 17:34:16 +01:00
Josh Johnson 1df8d81ae4 Refactor _canAddItem 2018-05-27 17:22:58 +01:00
Josh Johnson 257a038262 Use express for development + folder restructuring 2018-05-27 11:57:21 +01:00
Josh Johnson 8f67de4844 Make event handlers private 2018-05-25 09:22:14 +01:00
Josh Johnson b3956db628 Export components from index file 2018-05-25 09:01:55 +01:00
Josh Johnson 579138f756 Remove unused utils 2018-05-25 08:58:07 +01:00
Josh Johnson 478df0fac1 Minor tweaks 2018-05-25 08:53:58 +01:00
Josh Johnson 25309c91fc Use dep for event polyfill 2018-05-25 08:53:50 +01:00
Josh Johnson 1608d815e9 Use core js for polyfills 2018-05-25 08:44:54 +01:00
Josh Johnson 62389ff744 More private variables 2018-05-24 09:22:07 +01:00
Josh Johnson 109a232171 Minor variable name change 2018-05-23 14:43:52 +01:00
Josh Johnson a591c32a24 Break out public functions into more private methods + housekeeping 2018-05-23 13:09:45 +01:00
Philipp Eichhorn 8ab0387857 perf: removed forced reflow ("layout thrashing") by reading testEl.offsetWidth in a separate animation frame 2018-05-22 15:19:00 +02:00
Philipp Eichhorn 92e968462c perf: removed forced reflow ("layout thrashing") by executing choiceList.scrollTo(0) in a separate animation frame 2018-05-22 13:46:24 +02:00
Josh Johnson d3a18e255b Destructure class args 2018-05-21 17:01:03 +01:00
Egon Richárd Tőrös ec061adc7c Merge branch 'develop' of https://github.com/jshjohnson/Choices into develop 2018-05-10 14:42:53 +02:00
Josh Johnson b3108835bb Use babel env config 2018-04-25 09:20:59 +01:00
Josh Johnson 18456153ff Remove redundant super calls 2018-04-25 09:16:02 +01:00
Josh Johnson 85c0a488cd
Add template tests (#387)
* Begun template tests

* Further tests

* Add further tests
2018-04-24 15:13:13 +01:00
Josh Johnson bf1eb3b8ac Seperate out element creation logic 2018-04-24 13:57:31 +01:00
Josh Johnson 54b8935aee Clearer store naming conventions 2018-04-24 13:52:13 +01:00
Josh Johnson f02abdaacf Final few store getters 2018-04-24 13:49:57 +01:00
Josh Johnson 80f4d929ac Further getters 2018-04-24 13:23:26 +01:00
Josh Johnson 152b740670 Use getters and setters appropriately 2018-04-24 12:54:45 +01:00
c5254061 c2fccdc398 Fix xss vulnerability(escape html in item label) 2018-04-18 11:05:21 +03:00
Andy Nutt 275295adc5 Remove inline styling (#306)
* Remove inline styling (#279)

- Remove the JS styling to prevent CSP violations.
- Add "display: none;" CSS rule for the default class "is-hidden".

* Increase the specificity of the hidden class (#279)

* Include "is-hidden" class in utils section of base style sheet (#279)

* Add top level selector for hiding Choices inputs (#279)
2018-03-27 15:02:19 +01:00
Josh Johnson 82c389bc56
Install husky (#373)
* Add prepush hook and install husky
2018-03-27 10:48:01 +01:00
c5254061 38cf04b0d8 Fix xss vulnerability(escape html in input) 2018-03-25 20:26:47 +01:00
Egon Richárd Tőrös 3019d96ad9 💄 Code formatting 2018-03-12 21:44:55 +01:00