Skip to content

Releases: cibernox/ember-power-select

Chinese takeaway

05 Mar 20:30
Compare
Choose a tag to compare

After a loooong beta process, many bugs have been solved, new features added, and a few easy to fix breaking changes happened.

  • [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 classes class="foo bar baz" and doesn't enables
    any feature that triggerClass= and dropdownClass= 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.
  • [ENHALCEMENT] The custom matchers defined by the user now can and should return numbers instead of
    true/false. Returning a boolean still works but emits a deprecation warning and will be removed in the next version.
    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 the loading property to allow showing spinners and things like that.
  • [BUGFIX] Ensure beforeOptionsComponent and afterOptionsComponent receive the extra 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 a search action, clearing
    the search must show the content of that promise.
  • [FEATURE] The .ember-power-select-options added to wrap the noMatchesMessage and the searchMessage
    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
    have role=group, and the top-most one has role=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.

Provenzal chichen with honey carrots

23 Feb 15:52
Compare
Choose a tag to compare

Bug fixes and ability to customize the wormhole destination div globally or on a per-component basis

Roasted chicken with spices

11 Feb 17:33
Compare
Choose a tag to compare

This smaller version comes with one bugfix and three some nice features.

  • [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.
  • [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

Chicken milanese with fries

10 Feb 16:57
Compare
Choose a tag to compare
Pre-release

Oh, this with this release the 0.9.0 starts being the advices version to be used.

Many things have improved, many bugs were fixed. Some highlights:

  • [FEATURE] Fastboot support!! The component now should render perfectly in Fastboot Mode
  • [FEATURE] Proper Accesibility!! Lots of roles and aria-* tags have been added to make the component
    friendly, according with the guidelines in the RFC
  • [FEATURE] $ember-power-select-line-height variable can have units now.
  • [FEATURE] The .ember-power-select-option elements added to wrap the noMatchesMessage and the searchMessage have special classes to help styling them (ember-power-select-option--no-matches-message & ember-power-select-option--search-message)
  • [BREAKING CHANGE] The ember-power-select-options--nested class is not used anymore. Now nested groups
    have role=group, and the top-most one has role=listbox.
  • [BREAKING CHANGE] 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 CHANGE] 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.
  • [BUGFIX] When the component received a promise as options and also a search action, clearing
    the search must show the content of that promise.
  • [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.

The most relevan part about breaking changes is many styles that used to target classes, like ember-power-select-option--disabled will now target aria-* attributes, like aria-disabled=true. People using the default styles or customizing them using the sass variables will be fine. People targeting those clases will have to change their styles to target the proper attributes.

This is annoying but is necessary in order to enforce good practices in accessibility. People that want to reuse the default styles will have to add the proper a11y attributes, resulting in a ecosystem of addons based on ember-power-select that are accesible by default.

Pork ribs

19 Jan 13:12
Compare
Choose a tag to compare

This is most likely the last release with breaking changes in the public API before 1.0, so you should feel safe already using it.

The "semi-public" API received by the components that are customizable by the user is approaching to stability but might take another version or two.

Below, a list of all changes since 0.7.2:

  • [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 setting options 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 now verticalPosition. 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 to triggerComponent, which is more accurate, in preparation
    to add a selectedItemComponent 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 of selection
    for consistency with the external API.
  • [BREAKING] More bahaviour has been transfered from the main components to the default implementation
    of the selectedComponent, optionsComponent and beforeOptionsComponent. 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.

King prawns tagliatelle

20 Dec 19:42
Compare
Choose a tag to compare
Pre-release

This is the first release in the 0.8.0 cycle.

Unlike previous versions where breaking changes were pretty minor, this version includes some noticeable changes that might break your app or your custom components. This was necessary as the component iterates over a stable public API.

The most notable change is that the multiple select component is not longer a option multiple=true option, but an entirely different component {{power-select-multiple}}, that is composed over the default component. Dogfooding at it's best. Apart from that change, the public API remains identical, so this should be easy to fix.

If you are creating your passing custom selectedComponent, optionsComponent or beforeOptionsComponent to replace the defaults, there is another breaking change. The selected element is now passed to those component as selected instead of selection. This change was made to match the name of the public API. I should never have been different.

See the changelog for more detailed changes.

Russian Salad

17 Dec 10:06
Compare
Choose a tag to compare

Mostly bugfixing and some testing refactors.

  • [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.

Stuffed courgettes

15 Dec 11:11
Compare
Choose a tag to compare
  • [FEATURE] Finalize implementation of selectChoose and selectSearch 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)
    and search(term) actions
  • [BREAKING] Delegate the rendering of the list's topmost element to optionsComponent. This
    allows a better customization of the list. If you use optionsComponent 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.

Honest Hamburger

11 Dec 16:55
Compare
Choose a tag to compare
Honest Hamburger Pre-release
Pre-release
  • [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.

Salmon crumble

08 Dec 20:48
Compare
Choose a tag to compare
Salmon crumble Pre-release
Pre-release

This version includes new features and some significant changes

  • [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.