diff --git a/src/style_manager/model/Property.js b/src/style_manager/model/Property.js index 46631d8d1..89c2285f1 100644 --- a/src/style_manager/model/Property.js +++ b/src/style_manager/model/Property.js @@ -135,6 +135,20 @@ const Property = Backbone.Model.extend( return result; }, + /** + * Helper function to safely split a string of values. + * Useful when style values are inside functions + * eg: + * -> input: 'value(1,2,4), 123, value(4,5)' -- default separator: ',' + * -> output: ['value(1,2,4)', '123', 'value(4,5)'] + * @param {String} values Values to split + * @param {String} [separator] Separator + */ + splitValues(values, separator = ',') { + const sep = new RegExp(`${separator}(?![^\\(]*\\))`); + return (values || '').split(sep).map(i => i.trim()); + }, + /** * Get the default value * @return {string} diff --git a/src/style_manager/view/PropertyStackView.js b/src/style_manager/view/PropertyStackView.js index 9481df9c4..f53f58145 100644 --- a/src/style_manager/view/PropertyStackView.js +++ b/src/style_manager/view/PropertyStackView.js @@ -241,7 +241,8 @@ export default PropertyCompositeView.extend({ } const toAdd = - model.getLayersFromTarget(target, { resultValue }) || layersObj; + model.getLayersFromTarget(target, { resultValue, layersObj }) || + layersObj; layers.reset(); layers.add(toAdd); model.set({ stackIndex: null }, { silent: true });