From a18743b09454e99979c5282cfe0360129582ccb4 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Tue, 23 Apr 2024 19:46:15 +0400 Subject: [PATCH] Add `trait:category:update` event --- src/trait_manager/model/Traits.ts | 9 +++++++-- src/trait_manager/types.ts | 7 +++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/trait_manager/model/Traits.ts b/src/trait_manager/model/Traits.ts index 51414f6ad..75ee480c4 100644 --- a/src/trait_manager/model/Traits.ts +++ b/src/trait_manager/model/Traits.ts @@ -5,7 +5,7 @@ import Categories from '../../abstract/ModuleCategories'; import { AddOptions } from '../../common'; import Component from '../../dom_components/model/Component'; import EditorModel from '../../editor/model/Editor'; -import { TraitProperties } from '../types'; +import TraitsEvents, { TraitProperties } from '../types'; import Trait from './Trait'; import TraitFactory from './TraitFactory'; @@ -17,7 +17,12 @@ export default class Traits extends CollectionWithCategories { constructor(coll: TraitProperties[], options: { em: EditorModel }) { super(coll); - this.em = options.em; + const { em } = options; + this.em = em; + this.categories = new Categories([], { + em, + events: { update: TraitsEvents.categoryUpdate }, + }); this.on('add', this.handleAdd); this.on('reset', this.handleReset); const tm = this.module; diff --git a/src/trait_manager/types.ts b/src/trait_manager/types.ts index ef5f58d7b..ff4378e5c 100644 --- a/src/trait_manager/types.ts +++ b/src/trait_manager/types.ts @@ -188,6 +188,13 @@ export enum TraitsEvents { */ value = 'trait:value', + /** + * @event `trait:category:update` Trait category updated. + * @example + * editor.on('trait:category:update', ({ category, changes }) => { ... }); + */ + categoryUpdate = 'trait:category:update', + /** * @event `trait:custom` Event to use in case of [custom Trait Manager UI](https://grapesjs.com/docs/modules/Traits.html#custom-trait-manager). * @example