From a555242ade421c70f16deae5f3bb8435f3f5b06d Mon Sep 17 00:00:00 2001 From: Lucas Wojciechowski Date: Thu, 7 Mar 2019 15:23:54 -0800 Subject: [PATCH 1/4] Improve diffing of styles containing "visibility": "visible" --- src/style/style_layer.js | 13 +++++-------- test/unit/style/style_layer.test.js | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/style/style_layer.js b/src/style/style_layer.js index 263b123eab7..08bdc2c7984 100644 --- a/src/style/style_layer.js +++ b/src/style/style_layer.js @@ -39,7 +39,7 @@ class StyleLayer extends Evented { minzoom: ?number; maxzoom: ?number; filter: FilterSpecification | void; - visibility: 'visible' | 'none'; + visibility: 'visible' | 'none' | void; _crossfadeParameters: CrossfadeParameters; _unevaluatedLayout: Layout; @@ -69,7 +69,6 @@ class StyleLayer extends Evented { this.id = layer.id; this.type = layer.type; - this.visibility = 'visible'; this._featureFilter = () => true; if (layer.type === 'custom') return; @@ -116,7 +115,7 @@ class StyleLayer extends Evented { return this._unevaluatedLayout.getValue(name); } - setLayoutProperty(name: string, value: mixed, options: StyleSetterOptions = {}) { + setLayoutProperty(name: string, value: any, options: StyleSetterOptions = {}) { if (value !== null && value !== undefined) { const key = `layers.${this.id}.layout.${name}`; if (this._validate(validateLayoutProperty, key, name, value, options)) { @@ -125,7 +124,7 @@ class StyleLayer extends Evented { } if (name === 'visibility') { - this.visibility = value === 'none' ? value : 'visible'; + this.visibility = value; return; } @@ -173,7 +172,7 @@ class StyleLayer extends Evented { isHidden(zoom: number) { if (this.minzoom && zoom < this.minzoom) return true; if (this.maxzoom && zoom >= this.maxzoom) return true; - return this.visibility === 'none'; + return this.visibility !== 'none'; } updateTransitions(parameters: TransitionParameters) { @@ -210,7 +209,7 @@ class StyleLayer extends Evented { 'paint': this._transitionablePaint && this._transitionablePaint.serialize() }; - if (this.visibility === 'none') { + if (this.visibility) { output.layout = output.layout || {}; output.layout.visibility = 'none'; } @@ -270,5 +269,3 @@ class StyleLayer extends Evented { } export default StyleLayer; - - diff --git a/test/unit/style/style_layer.test.js b/test/unit/style/style_layer.test.js index 29b241107af..f8450010fc3 100644 --- a/test/unit/style/style_layer.test.js +++ b/test/unit/style/style_layer.test.js @@ -315,6 +315,33 @@ test('StyleLayer#serialize', (t) => { t.end(); }); + t.test('serializes "visibility" of "visible"', (t) => { + const layer = createStyleLayer(createSymbolLayer()); + layer.setLayoutProperty('visibility', 'visible'); + + t.equal(layer.serialize().layout['visibility'], 'visible'); + + t.end(); + }); + + t.test('serializes "visibility" of "none"', (t) => { + const layer = createStyleLayer(createSymbolLayer()); + layer.setLayoutProperty('visibility', 'none'); + + t.equal(layer.serialize().layout['visibility'], 'none'); + + t.end(); + }); + + t.test('serializes "visibility" of undefined', (t) => { + const layer = createStyleLayer(createSymbolLayer()); + layer.setLayoutProperty('visibility', undefined); + + t.equal(layer.serialize().layout['visibility'], undefined); + + t.end(); + }); + t.end(); }); From c49c945818cdbf93184549fcc16fbd477acc147f Mon Sep 17 00:00:00 2001 From: Lucas Wojciechowski Date: Thu, 7 Mar 2019 15:49:53 -0800 Subject: [PATCH 2/4] Update style_layer.js --- src/style/style_layer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/style/style_layer.js b/src/style/style_layer.js index 08bdc2c7984..cc9ddc637a8 100644 --- a/src/style/style_layer.js +++ b/src/style/style_layer.js @@ -211,7 +211,7 @@ class StyleLayer extends Evented { if (this.visibility) { output.layout = output.layout || {}; - output.layout.visibility = 'none'; + output.layout.visibility = this.visibility; } return filterObject(output, (value, key) => { From 650ec1bd63845fe475fa23c5ded970e24c40e1b6 Mon Sep 17 00:00:00 2001 From: Lucas Wojciechowski Date: Thu, 7 Mar 2019 16:05:04 -0800 Subject: [PATCH 3/4] Update style_layer.js --- src/style/style_layer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/style/style_layer.js b/src/style/style_layer.js index cc9ddc637a8..9cfd91bd62f 100644 --- a/src/style/style_layer.js +++ b/src/style/style_layer.js @@ -172,7 +172,7 @@ class StyleLayer extends Evented { isHidden(zoom: number) { if (this.minzoom && zoom < this.minzoom) return true; if (this.maxzoom && zoom >= this.maxzoom) return true; - return this.visibility !== 'none'; + return this.visibility === 'none'; } updateTransitions(parameters: TransitionParameters) { From f09e2e822f1713ee50b4ec38ceb6e7b14cc4b8d3 Mon Sep 17 00:00:00 2001 From: Lucas Wojciechowski Date: Thu, 7 Mar 2019 16:10:29 -0800 Subject: [PATCH 4/4] Rerun CI