* renames `select-box-kit` into `select-kit`
* introduces `single-select` and `multi-select` as base components
* introduces {{search-advanced-category-chooser}} as a better component for selecting category in advanced search
* improves events handling in select-kit
* recreates color selection inputs using {{multi-select}} and a custom {{selected-color}} component
* replaces category-selector by a component using select-kit and based on multi-select
* improves positioning of wrapper
* removes the need for offscreen, and instead use `select-kit-header` as a base focus point for all select-kit based components
* introduces a formal plugin api for select-kit based components
* introduces a formal pattern for loading and updating select-kit based components:
```
computeValue()
computeContent()
mutateValue()
```
36 lines
970 B
JavaScript
36 lines
970 B
JavaScript
import computed from 'ember-addons/ember-computed-decorators';
|
|
|
|
export default Ember.Component.extend({
|
|
layoutName: "select-kit/templates/components/select-kit/select-kit-header",
|
|
classNames: ["select-kit-header", "select-box-kit-header"],
|
|
classNameBindings: ["isFocused"],
|
|
attributeBindings: [
|
|
"dataName:data-name",
|
|
"tabindex",
|
|
"ariaLabel:aria-label",
|
|
"ariaHasPopup:aria-haspopup",
|
|
"title"
|
|
],
|
|
|
|
ariaHasPopup: true,
|
|
|
|
ariaLabel: Ember.computed.alias("title"),
|
|
|
|
name: Ember.computed.alias("computedContent.name"),
|
|
|
|
@computed("computedContent.icon", "computedContent.icons")
|
|
icons(icon, icons) {
|
|
return Ember.makeArray(icon).concat(icons).filter(i => !Ember.isEmpty(i));
|
|
},
|
|
|
|
@computed("computedContent.dataName", "name")
|
|
dataName(dataName, name) { return dataName || name; },
|
|
|
|
@computed("computedContent.title", "name")
|
|
title(title, name) { return title || name; },
|
|
|
|
click() {
|
|
this.sendAction("onToggle");
|
|
}
|
|
});
|