44 lines
976 B
JavaScript
44 lines
976 B
JavaScript
import Component from "@ember/component";
|
|
import { computed } from "@ember/object";
|
|
import { makeArray } from "discourse-common/lib/helpers";
|
|
|
|
export default Component.extend({
|
|
tokenSeparator: "|",
|
|
|
|
createdChoices: null,
|
|
|
|
settingValue: computed("value", function() {
|
|
return this.value
|
|
.toString()
|
|
.split(this.tokenSeparator)
|
|
.filter(Boolean);
|
|
}),
|
|
|
|
settingChoices: computed(
|
|
"settingValue",
|
|
"setting.choices.[]",
|
|
"createdChoices.[]",
|
|
function() {
|
|
return [
|
|
...new Set([
|
|
...makeArray(this.settingValue),
|
|
...makeArray(this.setting.choices),
|
|
...makeArray(this.createdChoices)
|
|
])
|
|
];
|
|
}
|
|
),
|
|
|
|
actions: {
|
|
onChangeListSetting(value) {
|
|
this.set("value", value.join(this.tokenSeparator));
|
|
},
|
|
|
|
onChangeChoices(choices) {
|
|
this.set("createdChoices", [
|
|
...new Set([...makeArray(this.createdChoices), ...makeArray(choices)])
|
|
]);
|
|
}
|
|
}
|
|
});
|