From 1364e8db4e78e1b63ad1f180e4d46931f6f491ac Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Thu, 11 Oct 2018 18:37:17 +0200 Subject: [PATCH] Add `styleManager:update:target` event to track target change in Style Manager --- src/editor/index.js | 1 + src/style_manager/view/PropertyView.js | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/editor/index.js b/src/editor/index.js index ae8f97d88..212e2365a 100644 --- a/src/editor/index.js +++ b/src/editor/index.js @@ -47,6 +47,7 @@ * * `keymap:emit` - Some keymap emitted, in arguments you get keymapId, shortcutUsed, Event * * `keymap:emit:{keymapId}` - `keymapId` emitted, in arguments you get keymapId, shortcutUsed, Event * ### Style Manager + * * `styleManager:update:target` - The target (Component or CSSRule) is changed * * `styleManager:change` - Triggered on style property change from new selected component, the view of the property is passed as an argument to the callback * * `styleManager:change:{propertyName}` - As above but for a specific style property * ### Storages diff --git a/src/style_manager/view/PropertyView.js b/src/style_manager/view/PropertyView.js index b43374c1b..146c3e73c 100644 --- a/src/style_manager/view/PropertyView.js +++ b/src/style_manager/view/PropertyView.js @@ -1,5 +1,5 @@ import Backbone from 'backbone'; -import { bindAll, isArray, isUndefined } from 'underscore'; +import { bindAll, isArray, isUndefined, debounce } from 'underscore'; import { camelCase } from 'utils/mixins'; const clearProp = 'data-clear-style'; @@ -182,10 +182,17 @@ module.exports = Backbone.View.extend({ parent && parent.set('status', value); }, + emitUpdateTarget: debounce(function() { + const em = this.config.em; + em && em.trigger('styleManager:update:target', this.getTarget()); + }), + /** * Fired when the target is changed * */ targetUpdated() { + this.emitUpdateTarget(); + if (!this.checkVisibility()) { return; }