From b0bab01337248c2f042306bda1e0871dae3f8428 Mon Sep 17 00:00:00 2001 From: David Polak Date: Fri, 4 Jan 2019 18:17:01 +0100 Subject: [PATCH] Add dynamic styleable dependencies for parent --- src/style_manager/view/PropertyView.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/style_manager/view/PropertyView.js b/src/style_manager/view/PropertyView.js index b242af896..70c4dfb04 100644 --- a/src/style_manager/view/PropertyView.js +++ b/src/style_manager/view/PropertyView.js @@ -416,6 +416,7 @@ module.exports = Backbone.View.extend({ const unstylable = trg.get('unstylable'); const stylableReq = trg.get('stylable-require'); const requires = model.get('requires'); + const requiresParent = model.get('requiresParent'); const sectors = this.sector ? this.sector.collection : null; let stylable = trg.get('stylable'); @@ -451,6 +452,24 @@ module.exports = Backbone.View.extend({ }); } + // Check if the property is available based on parent's property values + if (requiresParent) { + if ( + trg.view && + trg.view.$el && + trg.view.$el[0] && + trg.view.$el[0].parentNode + ) { + const styles = window.getComputedStyle(trg.view.$el[0].parentNode); + Object.entries(requiresParent).forEach(([property, values]) => { + stylable = + stylable && styles[property] && values.includes(styles[property]); + }); + } else { + stylable = false; + } + } + return stylable; },