import computed from "ember-addons/ember-computed-decorators"; export default Ember.Component.extend({ classNames: ["hook-event"], typeName: Ember.computed.alias("type.name"), @computed("typeName") name(typeName) { return I18n.t(`admin.web_hooks.${typeName}_event.name`); }, @computed("typeName") details(typeName) { return I18n.t(`admin.web_hooks.${typeName}_event.details`); }, @computed("model.[]", "typeName") eventTypeExists(eventTypes, typeName) { return eventTypes.any(event => event.name === typeName); }, @computed("eventTypeExists") enabled: { get(eventTypeExists) { return eventTypeExists; }, set(value, eventTypeExists) { const type = this.get("type"); const model = this.get("model"); // add an association when not exists if (value !== eventTypeExists) { if (value) { model.addObject(type); } else { model.removeObjects( model.filter(eventType => eventType.name === type.name) ); } } return value; } } });