- [BUGFIX] The the public API received by the
search
action now has the searchText up to date with the value entered by the user. - [BUGFIX] Acceptance tests helpers are now async inside. They used to be fully async before 0.9.2.
- [ENHANCEMENT] Pass the public API of the componet as second argument to the search action, as it is the case with the rest of the public actions.
- [BUGFIX] Fix acceptance helpers (
selectChoose
& co) to fire native events even in Ember < 2.5. Fixes a bug with Ember Basic Dropdown 0.9.2.
- [BUGFIX] Disable placeholder of multiple select in Internet Explorer. There is a bug in IE that prevents the component from loosing the focus because the placeholder is updated. Very weird. This is less than ideal, but it's better to have a component without placeholder in IE than to have a component than once opened cannot be closed. I have to get to the bottom of this.
- [BREAKING CHANGE] Passing
class="my-foo"
to the component just customizes the class of the top-most component, but doesn't try to derive classes from it for the trigger and the dropdown. This behavour was unexpected, confusing, didn't work with multiple classesclass="foo bar baz"
and doesn't enables any feature thattriggerClass=
anddropdownClass=
don't allow already. Ditched.
- [BUGFIX] Allow to type in closed multiple selects. Before the default behaviour of keydown events was being prevented, disallowing the typing.
- [BUGFIX] Ensure the public API passed to the components and to the ourside world is the same, by making it a CP and and use it as single source of truth.
- [BUGFIX] Fix a bug filtering when the given options is a promise.
- [ENHANCEMENT] The custom matchers defined by the user now can and should return numbers instead of
true/false
. Returning a boolean still works, but support for this might be deprecated and later on removed. The reason is that returning a number gives us more posibilities, like sorting the results. - [BUGFIX] Ensure the placeholder text of simple selects doesn't overflow the container trigger.
- [FEATURE] Allow to customize the destination element used by ember-wormhole on a per-component basis
- [FEATURE] Update to
ember-basic-dropdown
0.9.0 final. This allows to customize the wormhole destination of all dropdowns of the app, including ember-power-select's dropdowns.
- [BUGFIX] Ensure
triggerComponent
receives theloading
property to allow showing spinners and things like that.
- [BUGFIX] Ensure
beforeOptionsComponent
andafterOptionsComponent
receive theextra
object.
- [FEATURE] Now you can type in closed single selects and automatically select the first match as you type. The typed text is erased after one second. It doesn't work in closed multiple select without searchbox (what would be the correct behavior?)
- [FEATURE] Now you can type in opened selects witout searcbox (multiple or single) to highlight the first marching option as you type. The typed text is erased after one second.
- [FEATURE] Search can be disabled in multiple selects, instead of only in single selects.
- [BUGFIX] Pressing enter in a select without searchbox correctly selects the highlighted element
- [FEATURE] Proper Accesibility!! Lots of roles and
aria-*
tags have been added to make the component friendly, according with the guidelines in the RFC - [BUGFIX] When the component received a promise as
options
and also asearch
action, clearing the search must show the content of that promise. - [FEATURE] The
.ember-power-select-option
s added to wrap thenoMatchesMessage
and thesearchMessage
have special classes to help styling them (ember-power-select-option--no-matches-message
&ember-power-select-option--search-message
) - [BUGFIX] Single selects without searchbox can be focused normally. Fixed updating ember-basic-dropdown.
Ember basic dropdown was calling
preventDefault
on the mousedown event to prevent the user to select text when moving the mouse between the mouseup and the mousedown. Now the event is not defaultPrevented, it uses another technique. - [BUGFIX] When the list of options is empty but the component is given a search action, it should
not show the
No results found
until the user actually performs a search and there and it comes empty. - [BREAKING] The
ember-power-select-options--nested
class is not used anymore. Now nested groups haverole=group
, and the top-most one hasrole=listbox
. - [BREAKING] The
*--open
class on the.ember-power-select
div has been removed. Now styles target[aria-expanded=true/false]
, and it applies to the trigger, not to the top-most div. People explicitly targeting this class in they styles will need to update. - [BREAKING] Warning. Classes ending in
--disabled
,--highlighted
and--selected
have been replaced by aria attributes[aria-disabled="true"]
,[aria-current="true"]
and[aria-selected="true"]
respectively. Those attributes are needed for a11y and the recomendation is to style based on them instead of classes. Styles have been updated accordingly, so people using them and customizing the appearance using the sass variables won't notice anything, but people that relied on those classes for overriding styles will have to update them. - [TESTING] Run fasboot tests as part of CI
- [TESTING] Add fastboot tests harness.
- [FEATURE] Initial Fastboot support!!
- [INTERNAL] Removed deprecated properties
- [INTERNAL] Updated mirage, liquidfire, ember-try and others.
- [FEATURE]
$ember-power-select-line-height
variable can have units now.
- [IMPROVEMENT] Multiple select's trigger uses flexbox to improve appearance and behavior. In browsers without flexbox works as it did before.
- [FEATURE] Multiple selects have a distintive class in the trigger so they be styled accordingly.
- [BUGFIX] Modify the searchText programatically (through the
select.actions.search('foo')
per example) updates the input, respecting the cursor position.
- [BUGFIX] If the trigger grows in height because the input becomes too long to fit in one line, the list of options is repositioned automatically.
- [PERF] A couple of perf improved like avoiding some extra calls to
action
to wrap what already are closure actions. The ember-basic-dropdown also usesEmber.run.join
to avoid one extra runloop. - [FEATURE] The select exposes an action to manually trigger a reposition. This is a very low level thing that probably nobody but me will use.
- [BUGFIX] The input of the multiple component should have a transparent background by default. It's probably the desired behaviour almost all situations.
- [BUGFIX] Ensure the input of the multiple select flows to the next line when number of selections make the select grow to a second line.
- [BUGFIX] Disabled components are not focusable.
- [BUGFIX] Ensure the second argument yielded to the block is the searchText corresponding to the results being displayed. This is formally more correct and also save an expensive re-render that can cause the component to jank in sufficiently bug/complex selects. This is potentially breaking, but very unlikely.
- [BUGFIX] Ensure that if the component is destroyed while an async search is in progress it doesn't fail.
- [BUGFIX] Ensure that when clearing the search input any pending search
- [BUGFIX] Ensure that pressing enter when there is no highlighted element (p.e after a search without results) closes the component without calling the onchange function.
- [BUGFIX] Update ember-basic-dropdown to 0.8.5+ fixes positioning issues in IE11 and fatal error in browsers without MutationObserver (effectively only ie10 )
- [BUGFIX] the "publicAPI" object passed as penultimate object to the public actions includes a
highlighted
property and theaction.select
function to enable more customization. - [DOC] Document architectural decissions of the component.
- [BUGFIX] Update ember-basic-dropdown again to fix bad positioning issue.
- [INTERNAL] Stop using ArrayProxy internally. That saves some double render, improving performance when filtering greatly (+100%) and very slightly in initial openinig (+5%)
- [BUGFIX] The
search
andhighlight
functions in the public API weren't working because they missed a binding to the dropdown.
- [BUGFIX] Update ember-basic-dropdown.
- [INTERNAL] Update to ember-cli 2.3.0-beta.1
- [ENHANCEMENT] The mouseup over on element of the list doesn't selects that element if the mouse is still in the same coordinates (+/- 2px) of the mousedown that opened the component. This allows the options list to be rendered over the trigger and not wrongly select the element above the trigger
- [BUGFIX] default
beforeOptions
component only clear the search on destroy when the search is enabled.
- [BUGFIX] Not it's responsability of the component holding the searchbox to clear (or not) clear the search when the component is closed. The default components (single/multiple) do it. Maybe breaking??
- [BUGFIX] Trigger should use clearfix so when the amount of options selected (multiple selects) overflows the available width is grows.
- [BUGFIX] Do not use
let
in node code (unless you want node 0.12 to break)
- [BUGFIX] Ensure that the
included
hook works when invoked from another addon (being a dependency) instead of directly by the consumer app, and also that the function is a noop the 2nd time it's invoked.
- [BUGFIX] Not returning from the
search
action but instead settingoptions
to a promise does not prevent subsequent searches. - [BUGFIX] Pressing Backspace to delete the last selected option in multiple select when options are not
plain strings now works as expected. It makes
searchField
mandatory, and asserts its presence. - [INTERNAL] Refactor internals to don't force people providing custom components for slots to
implement that much logic on it. Also logic for the
closeOnSelect
configuration lies in a single place.
- [INTERNAL] Remove unnecesary action. Makes customization of triggerComponent easier.
- [BUGFIX] Do not rely on significant whitepace + inlineBlock for styling selections in multiple select. Use float: left
- [FEATURE] Added a new slot that can be customized with the
selectedItemComponent
. This allows to customize the markup of the selected option(s) without forcing the user to customize the entire trigger component. This doesn't enable any new pattern but makes customization easier. - [BREAKING]
dropdownPosition
is nowverticalPosition
. It will continue to work until 0.9 but throwing a deprecation warning.
- [BUGFIX]
{{power-select-multiple}}
has fallback values for the component names. Makes it composable. - [BREAKING] Renamed
selectedComponent
totriggerComponent
, which is more accurate, in preparation to add aselectedItemComponent
soon.selectedComponent
continues to work, but throws a deprecation. - [FEATURE] Add new sass variables for customize the border & padding of each option in multiple mode, and the padding of the trigger in ltr/rtl modes.
- [INTERNAL] Update ember-cli
- [BUGFIX] Update deps to ember-basic-dropdown 0.7.2. Fixed duplicated wormhole placeholder when ember-basic-dropdown is also a direct dependency of the project.
- [BREAKING] Eliminame multiple mode and create
{{#power-select-multiple}}
as a separated component for dogfooding - [BREAKING] The name of the selected property inside the custom components is now
selected
instead ofselection
for consistency with the external API. - [BREAKING] More bahaviour has been transfered from the main components to the default implementation
of the
selectedComponent
,optionsComponent
andbeforeOptionsComponent
. This makes the component more flexible but less straigtforward to extend. The API for extending the component was never publish but still, expect things to break.
- [FEATURE] Allow to pass a component name under in
afterOptionsComponent
to customize the content after the options list. - [FEATURE] Allow to pass a component name under in
beforeOptionsComponent
to customize the content before the options list. of the dropdown before the list of option. In single mode the default is the search input. In multiple mode the default is empty. - [BREAKING] Remove the need of different templates between multiple and single mode, by having a
new
beforeOptions
component that can be customized, and by moving theloadingMessage
logic to theoptionsComponent
. This might be breaking, but quite unlikely.
- [INTERNAL] Make integration test helpers runloop aware to dry tests.
- [BUGFIX] The highliged element is reseted to default when the component is closed.
- [BUGFIX] Update ember-basic-dropdown to defaultPrevent the behavior if the mousedown that opens the component, so the user does not select text if moves the finger before releasing the mouse.
- [FEATURE] Finalize implementation of
selectChoose
andselectSearch
that work in all supported versions of ember. Added docs for them.
- [FEATURE] Add initial implementation of
selectChoose
acceptance helper to make interaction with the component nicer. - [FEATURE] Add ARIA roles for basic accesibility. Still more work on this area.
- [FEATURE] Expose test helpers to the consumer app to make integration tests nicer.
- [BUGFIX] Use
onmousedown
also in clear button (single and multiple modes) to ensure list is not opened. - [BREAKING] EPS no longer exports the
defaultConfig
because it's not needed anymore. Passing an undefined values for default values does not overrides the default values (null/false do). This makes composability easy because creating a wrapper around the component can just forward all properties{{#power-select searchEnabled=searchEnabled selectedComponent=selectedComponent}}
without worrying about if this values is defined or not.
- [BUGFIX] On a select with a selected value, if the selected value is not among the results, the first results becomes the highlighted one. Before this fix none was highlighted.
- [BREAKING] The event the triggers the selection of an item is mouseup, not click, meaning that the only
thing that matters is where the finger is lifted. This is how real selects work in chrome/safari/firefox,
and so should this. Given that the component opens on mousedown, this allows the user to open and select
with only one movement.
Real usage shouldn't break, not acceptance tests, but integration tests using
$().click()
will. Replace this$().mouseup()
. - [FEATURE] EPS now accepts a
triggerClass
which is applied to the trigger.
- [FEATURE] All actions (onchange, onkeydown and onfocus) now receive a richer public API object
that is identical in shape to the one they received before but also contains
highlight(option)
andsearch(term)
actions - [BREAKING] Delegate the rendering of the list's topmost element to
optionsComponent
. This allows a better customization of the list. If you useoptionsComponent
make sure you make it render the topmost element, e.g an<ul>
.
- [BREAKING] Update to ember-basic-dropdown 0.7.0-beta.1. This means that the component is opened/
closed using mousedown instead of click. This makes the component feel more snappy. It is unlikeliy
that this breaks real world usage but might break integration tests of people where people rely
on
$('.ember-power-select-trigger').click()
. - [FEATURE] New action:
onfocus
. Unsurprisingly it is invoked when the component gains focus. It receives(dropdown, event)
and can be used, by example, to open the component on focus. - [FEATURE] EPS now accepts a
opened
boolean property used to open/close the component without triggering events on it. Useful to render the component already opened.
- [BUGFIX] Fix rendenring issue triggered somehow by Ember 2.2. Fixed in ember-basic-dropdown.
- [REFACTOR] The list of results and the highlighted element are not computed properties, so they are lazy.
- [BUGFIX] Use getOwner polyfill to avoid deprecations in ember 2.3
- [DOCS] Add API reference table to the docs
- [FEATURE] Yielded block receives the search term as a second argument
- [DOCS] Fix async search using github API example
- [DOCS] Document how to disable specific option
- [DOCS] Add troubleshooting section with most common pitfalls.
- [FEATURE] The user can provide a
onkeydown
action that will be invoked whenever the user presses a key being the component (of the searchbox inside) focused. This enables to create selects components that can create options on the fly (tags). This action received the dropdown as first argument and the event as second argument
- [BUGFIX] Update ember-basic-dropdown to be sure dropdown reposition is runloop aware.
- [BUGFIX] Component not detects aditions aditions/removals to the
options
, not just substututions of the entire collection. - [BUGFIX] The overflow-y should be auto to not show the bar until it's required by the height of the option list.
- [BUGFIX] Remove loading state if a promise fullfils after the dropdown has been closed
- [BUGFIX] Update to ember-cli 1.13.13 to remove
[DEPRECATED] this.Funnel ...
message. - [BUGFIX] Fix styles when rendering the component in place
- [BUGFIX] Fix position calculation in firefox.
- [BUGFIX] Using
dropdownPosition=above|below
adds the proper class names to the component. - [DOCS] Fixed typos and outdated links.
- [BUGFIX] Add missing
this._super.included(app);
in the included hook so runtime dependencies are required.
- [BREAKING CHANGE] The arguments received by the
selectComponent
andoptionsComponent
have changed significantly as a result of an internal refactor. It should not affect to people that have not created their own customized versions of ember-power-select. - [BUGFIX] Ensure that open the dropdown after a search does not clear the results. Results are not
cleared when the component is closed, like the
searchText
. - [BUGFIX] Ensure
options
andsearch
play nicely toguether. The given options are the initial set of results until the user performs the first search. From that point on they diverge. - [BUGFIX] Not return from the
search
action is now legal. If you do so, you need to take care of updating theoptions
yourself, and unless you make options a promise, you will loose the loading state.
- [BUGFIX] Don't render one option for the Loading message if this is falsey
- [BUGFIX] Fix automatic scroll when navigating using arrows.
- [BREAKING CHANGE] Some classes have changed to be more BEMy and avoid class collisions. You can expect
things like
.nested
,.selected
,.highlighted
, etc.. to be not copies of the default class of that element but with--nested
,--selected
, etc... modifiers. - [BREAKING CHANGE] The arrow of the dropdown is not longer a background image, but an
<span class="ember-power-select-status-icon">
, that you can style in more complex ways. By default is still a triangle (but done with css borders instead) - [BUGFIX] Fixed
rtl
/ltr
styles.
- [ENHANCEMENT] Allow to customize tabindex of the trigger
- [ENHANCEMENT] Pass
select
action andhighlighted
option to the selectedComponent to allow better customization
- [ENHANCEMENT] Pass
search
action to the selected component also for single component. This enables ember-power-select to to be the base for typeahead-like components. - [BUGFIX] Fix placeholder of multiple select showing "null".
- [BUGFIX] Stop propagation of the events that trigger the
select
action. This was preventing to use this component within another component that closes when clicking on the body, like the ember-basic-dropdown
- [BUGFIX] Get subpixed precission on Y coordinates too by updating to ember-basic-dropdown 0.4.7
- [BREAKING] Remove {{ember-power-select}} deprecated alias for {{power-select}}
- [BREAKING] Remove
ember-power-select-wrapper
wrapped div that was not customizable and made styling harder. Now the topmost element is theember-power-select
itself. - [BUGFIX] Update ember-basic-dropdown to fix rounding error that caused list of options have 1px mismatch in HD screens
- [TOOLING] Update to ember-cli 1.13.10
- [BUGFIX] Apply
dropdownClass
to the dropdown
- [BUGFIX] Disable the input of multiple selects when the entire component is disabled
- [BUGFIX] Don't show the cross to remove items when the entire component is disabled
- [ACCESIBILITY] Add aria-label to cross to remove items in multiple mode
- [BUGFIX] Open multiple select when the user types on the input of the trigger
- [REFACTOR] Variables in it's own file for encapsulations and allow more fine-grained customizations
- [BUGFIX] Update ember-basic-dropdown to fix deprecation warning coming from accessing
_actions
. - [INTERNAL] For consistency, since the component's name was shortened to {{power-select}}, all internal components have been renamed too. No public API changes.
- [BUGFIX] Fix placeholder bug in multiple selects (show "null" as placeholder)
- [BUGFIX] Fix unused scss variable ($ember-power-select-text-color) and make it
inherit
by default instead of#444
. - [DOCS] Clarify that in "How to use" section selects are broken intentionally to explain why explicitness is good.
- [DEPRECATION] Renamed component from {{ember-power-select}} to just {{power-select}} and deprecate the long name.
- [BUGFIX] Increate z-index to 1000 (same that bootstrap uses for dropdowns)
- [BUGFIX] Add support for placeholder in multiple mode
- ... some internal refactors to make the selected item easier to customize
- [BUGFIX] Pressing enter on a closed multiple select should open it.
- [ENHANCEMENT] Pressing UP/DOWN arrows on a closed select (single or multiple) opens it
- [ENHANCEMENT] Added
closeOnSelect
option (defaults to true) to customize that behavior. - [ENHANCEMENT] The
onchange
action is not invoked with thedropdown
as second argument. That object contains methods likeopen
,close
andtoggle
that give control over the dropdown to the user. - [BUGFIX] Select that specify a
search
action can also receiveoptions
now, and that collection is displayed until the user performs the first search. - [BUGFIX] The
search
action now is also triggered when the search term is an empty string.
- [BREAKING CHANGE] The component is truly immutable now. The value inside the trigger (the selected value) won't update unless
the user explicitly does so inside the
onchange
action. Since selection never were propagated upstream this shouldn't bite anyone: A select component without an action handles was pointless anyway. Now there is an assertion that will raise an error if noonchange
action is provided (or it's not a function). - [ENHANCEMENT] The component used to render the list is not replaceable. That allows almost complete customization.
- [BUGFIX] Workaround bug in ember <= 1.13.8
- [ENHANCEMENT] Added basic bootstrap styles.
- [REFACTOR] Divide component internally into ember-power-select/simple and ember-power-select/multiple
- [BUGFIX] Fix bug where dropdown didn't close when selecting an option inside a group.
- [BUGFIX] Fix ember-wormhole destination not being added to the body footer. Solved by calling contentFor of dependencies.
- [ENHANCEMENT] Update to ember-basic-dropdown 2.0. That yields a hash with public API on it.
- [BUGFIX] Fix compatibility with Ember 1.13 and add it to ember-try
- [ENHANCEMENT] Simplified code greatly by using ember-basic-dropdown underneath.
- [DOCS] Several typos