* DEV: Fix the function prototype observers deprecation
DEPRECATION: Function prototype extensions have been deprecated, please migrate from function(){}.observes('foo') to observer('foo', function() {}). [deprecation id: function-prototype-extensions.observes] See https://deprecations.emberjs.com/v3.x/#toc_function-prototype-extensions-observes for more details.
* DEV: Fix the function prototype event listeners deprecation
DEPRECATION: Function prototype extensions have been deprecated, please migrate from function(){}.on('foo') to on('foo', function() {}). [deprecation id: function-prototype-extensions.on] See https://deprecations.emberjs.com/v3.x/#toc_function-prototype-extensions-on for more details.
* DEV: Simplify `default as` imports
Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
48 lines
866 B
JavaScript
48 lines
866 B
JavaScript
import EmberObject from "@ember/object";
|
|
import discourseComputed from "discourse-common/utils/decorators";
|
|
|
|
export default EmberObject.extend({
|
|
@discourseComputed
|
|
localizedName() {
|
|
if (this.forceName) {
|
|
return this.forceName;
|
|
}
|
|
|
|
return this.name ? I18n.t(this.name) : "";
|
|
},
|
|
|
|
@discourseComputed
|
|
sortIcon() {
|
|
const asc = this.parent.ascending ? "up" : "down";
|
|
return `chevron-${asc}`;
|
|
},
|
|
|
|
@discourseComputed
|
|
isSorting() {
|
|
return this.sortable && this.parent.order === this.order;
|
|
},
|
|
|
|
@discourseComputed
|
|
className() {
|
|
const name = [];
|
|
|
|
if (this.order) {
|
|
name.push(this.order);
|
|
}
|
|
|
|
if (this.sortable) {
|
|
name.push("sortable");
|
|
|
|
if (this.isSorting) {
|
|
name.push("sorting");
|
|
}
|
|
}
|
|
|
|
if (this.number) {
|
|
name.push("num");
|
|
}
|
|
|
|
return name.join(" ");
|
|
}
|
|
});
|