From df9361c57957cd79a754809f5a691f409a9f4a3e Mon Sep 17 00:00:00 2001 From: Emily Kellison-Linn <4672118+emilykl@users.noreply.github.com> Date: Sat, 9 Mar 2024 12:34:27 -0500 Subject: [PATCH 01/48] zindex first pass. scatter and bar traces only --- src/plots/cartesian/index.js | 86 +++++++++++++++++++----------- src/plots/get_data.js | 8 +-- src/traces/bar/attributes.js | 1 + src/traces/bar/defaults.js | 2 + src/traces/bar/style.js | 2 +- src/traces/scatter/attributes.js | 10 ++++ src/traces/scatter/defaults.js | 2 + test/image/mocks/zindex_basic.json | 53 ++++++++++++++++++ 8 files changed, 129 insertions(+), 35 deletions(-) create mode 100644 test/image/mocks/zindex_basic.json diff --git a/src/plots/cartesian/index.js b/src/plots/cartesian/index.js index e57c5572d01..1d0a3b2479b 100644 --- a/src/plots/cartesian/index.js +++ b/src/plots/cartesian/index.js @@ -130,6 +130,10 @@ exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) { var calcdata = gd.calcdata; var i; + // Traces is a list of trace indices to (re)plot. If it's not provided, + // then it's a complete replot so we create a new list and add all trace indices + // which are in calcdata. + if(!Array.isArray(traces)) { // If traces is not provided, then it's a complete replot and missing // traces are removed @@ -137,14 +141,16 @@ exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) { for(i = 0; i < calcdata.length; i++) traces.push(i); } + // For each subplot for(i = 0; i < subplots.length; i++) { var subplot = subplots[i]; var subplotInfo = fullLayout._plots[subplot]; - // Get all calcdata for this subplot: + // Get all calcdata (traces) for this subplot: var cdSubplot = []; var pcd; + // For each trace for(var j = 0; j < calcdata.length; j++) { var cd = calcdata[j]; var trace = cd[0].trace; @@ -178,7 +184,7 @@ exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) { pcd = cd; } } - + // Plot the traces for this subplot plotOne(gd, subplotInfo, cdSubplot, transitionOpts, makeOnCompleteCallback); } }; @@ -189,41 +195,60 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback var modules = fullLayout._modules; var _module, cdModuleAndOthers, cdModule; + // Separate traces by zindex and plot each zindex group separately + // TODO: Performance + var traceZindexGroups = {}; + for(var t = 0; t < cdSubplot.length; t++) { + var trace = cdSubplot[t][0].trace; + var zi = trace.zindex || 0; + if(!traceZindexGroups[zi]) traceZindexGroups[zi] = []; + traceZindexGroups[zi].push(cdSubplot[t]); + } + var layerData = []; var zoomScaleQueryParts = []; - for(var i = 0; i < modules.length; i++) { - _module = modules[i]; - var name = _module.name; - var categories = Registry.modules[name].categories; - - if(categories.svg) { - var className = (_module.layerName || name + 'layer'); - var plotMethod = _module.plot; - - // plot all visible traces of this type on this subplot at once - cdModuleAndOthers = getModuleCalcData(cdSubplot, plotMethod); - cdModule = cdModuleAndOthers[0]; - // don't need to search the found traces again - in fact we need to NOT - // so that if two modules share the same plotter we don't double-plot - cdSubplot = cdModuleAndOthers[1]; - - if(cdModule.length) { - layerData.push({ - i: traceLayerClasses.indexOf(className), - className: className, - plotMethod: plotMethod, - cdModule: cdModule - }); - } + // Plot each zindex group in ascending order + var zindices = Object.keys(traceZindexGroups) + .map(Number) + .sort(function(a, b) { return a - b; }); + for(var z = 0; z < zindices.length; z++) { + var zindex = zindices[z]; + // For each "module" (trace type) + for(var i = 0; i < modules.length; i++) { + _module = modules[i]; + var name = _module.name; + var categories = Registry.modules[name].categories; + + if(categories.svg) { + var className = (_module.layerName || name + 'layer') + (zindex ? '-' + z : ''); + var plotMethod = _module.plot; + + // plot all visible traces of this type on this subplot at once + cdModuleAndOthers = getModuleCalcData(cdSubplot, plotMethod, zindex); + cdModule = cdModuleAndOthers[0]; + // don't need to search the found traces again - in fact we need to NOT + // so that if two modules share the same plotter we don't double-plot + cdSubplot = cdModuleAndOthers[1]; + + if(cdModule.length) { + layerData.push({ + i: traceLayerClasses.indexOf(className), + z: z, + className: className, + plotMethod: plotMethod, + cdModule: cdModule + }); + } - if(categories.zoomScale) { - zoomScaleQueryParts.push('.' + className); + if(categories.zoomScale) { + zoomScaleQueryParts.push('.' + className); + } } } } - - layerData.sort(function(a, b) { return a.i - b.i; }); + // Sort the layers primarily by z, then by i + layerData.sort(function(a, b) { return a.z - b.z || a.i - b.i; }); var layers = plotinfo.plot.selectAll('g.mlayer') .data(layerData, function(d) { return d.className; }); @@ -434,7 +459,6 @@ function makeSubplotData(gd) { } subplotData[i] = d; } - return subplotData; } diff --git a/src/plots/get_data.js b/src/plots/get_data.js index 18e19a97edf..06e922e4bf5 100644 --- a/src/plots/get_data.js +++ b/src/plots/get_data.js @@ -39,10 +39,10 @@ exports.getSubplotCalcData = function(calcData, type, subplotId) { * @param {array} calcdata: as in gd.calcdata * @param {object|string|fn} arg1: * the plotting module, or its name, or its plot method - * + * @param {int} arg2: (optional) zindex to filter on * @return {array[array]} [foundCalcdata, remainingCalcdata] */ -exports.getModuleCalcData = function(calcdata, arg1) { +exports.getModuleCalcData = function(calcdata, arg1, arg2) { var moduleCalcData = []; var remainingCalcData = []; @@ -57,6 +57,8 @@ exports.getModuleCalcData = function(calcdata, arg1) { if(!plotMethod) { return [moduleCalcData, calcdata]; } + var zindex = arg2; + var filterByZ = (zindex !== undefined); for(var i = 0; i < calcdata.length; i++) { var cd = calcdata[i]; @@ -70,7 +72,7 @@ exports.getModuleCalcData = function(calcdata, arg1) { // would suggest), but by 'module plot method' so that if some traces // share the same module plot method (e.g. bar and histogram), we // only call it one! - if(trace._module && trace._module.plot === plotMethod) { + if(trace._module && trace._module.plot === plotMethod && (!filterByZ || trace.zindex === zindex)) { moduleCalcData.push(cd); } else { remainingCalcData.push(cd); diff --git a/src/traces/bar/attributes.js b/src/traces/bar/attributes.js index 092d9fe52bf..6332e392574 100644 --- a/src/traces/bar/attributes.js +++ b/src/traces/bar/attributes.js @@ -226,6 +226,7 @@ module.exports = { textfont: scatterAttrs.unselected.textfont, editType: 'style' }, + zindex: scatterAttrs.zindex, _deprecated: { bardir: { diff --git a/src/traces/bar/defaults.js b/src/traces/bar/defaults.js index bfa15379cba..fa3559c4ac9 100644 --- a/src/traces/bar/defaults.js +++ b/src/traces/bar/defaults.js @@ -29,6 +29,8 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { coerce('xhoverformat'); coerce('yhoverformat'); + coerce('zindex'); + coerce('orientation', (traceOut.x && !traceOut.y) ? 'h' : 'v'); coerce('base'); coerce('offset'); diff --git a/src/traces/bar/style.js b/src/traces/bar/style.js index df30b7c3850..9b3f9750f28 100644 --- a/src/traces/bar/style.js +++ b/src/traces/bar/style.js @@ -14,7 +14,7 @@ var attributeOutsideTextFont = attributes.outsidetextfont; var helpers = require('./helpers'); function style(gd) { - var s = d3.select(gd).selectAll('g.barlayer').selectAll('g.trace'); + var s = d3.select(gd).selectAll('g[class^="barlayer"]').selectAll('g.trace'); resizeText(gd, s, 'bar'); var barcount = s.size(); diff --git a/src/traces/scatter/attributes.js b/src/traces/scatter/attributes.js index 7241fd5784d..787730238dc 100644 --- a/src/traces/scatter/attributes.js +++ b/src/traces/scatter/attributes.js @@ -686,4 +686,14 @@ module.exports = { arrayOk: true, description: 'Sets the text font.' }), + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') + } }; diff --git a/src/traces/scatter/defaults.js b/src/traces/scatter/defaults.js index 31cae6f285c..039514ba803 100644 --- a/src/traces/scatter/defaults.js +++ b/src/traces/scatter/defaults.js @@ -30,6 +30,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('xhoverformat'); coerce('yhoverformat'); + coerce('zindex'); + var stackGroupOpts = handleStackDefaults(traceIn, traceOut, layout, coerce); if( layout.scattermode === 'group' && diff --git a/test/image/mocks/zindex_basic.json b/test/image/mocks/zindex_basic.json new file mode 100644 index 00000000000..c6d57e5da85 --- /dev/null +++ b/test/image/mocks/zindex_basic.json @@ -0,0 +1,53 @@ +{ + "data": [ + { + "x": [2, 3, 4, 5], + "y": [4, 3, 9, 5], + "name": "blue", + "type": "scatter", + "marker": {"size": 20}, + "line": {"width": 6}, + "zindex": 5 + }, + { + "x": [2, 3, 4, 5, 6], + "y": [2, 5, 4, 6, 4], + "name": "orange", + "type": "scatter", + "marker": {"size": 20}, + "line": {"width": 6}, + "zindex": 4 + }, + { + "x": [3, 4, 5, 6, 7], + "y": [1, 8, 6, 8, 5], + "name": "green", + "type": "scatter", + "marker": {"size": 20}, + "line": {"width": 6} + }, + { + "x": [4, 5, 6, 7], + "y": [2, 8, 2, 7], + "name": "red", + "type": "scatter", + "marker": {"size": 20}, + "line": {"width": 6}, + "zindex": 300 + }, + { + "x": [2, 3, 4, 5, 6, 7], + "y": [4, 2, 6, 1, 6, 9], + "name": "purple", + "type": "bar", + "zindex": 6 + } + ], + "layout": { + "xaxis": { + "title": { + "text": "zindex stacking" + } + } + } +} From 176f922d608b8d9080cbb92fc376a9277cc8dc93 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 11:14:51 +0000 Subject: [PATCH 02/48] Ensure zindex is compared by trace --- src/plots/cartesian/index.js | 4 ++-- src/plots/get_data.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plots/cartesian/index.js b/src/plots/cartesian/index.js index 1d0a3b2479b..84e8519c71d 100644 --- a/src/plots/cartesian/index.js +++ b/src/plots/cartesian/index.js @@ -234,7 +234,7 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback if(cdModule.length) { layerData.push({ i: traceLayerClasses.indexOf(className), - z: z, + zindex: z, className: className, plotMethod: plotMethod, cdModule: cdModule @@ -248,7 +248,7 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback } } // Sort the layers primarily by z, then by i - layerData.sort(function(a, b) { return a.z - b.z || a.i - b.i; }); + layerData.sort(function(a, b) { return a.zindex - b.zindex || a.i - b.i; }); var layers = plotinfo.plot.selectAll('g.mlayer') .data(layerData, function(d) { return d.className; }); diff --git a/src/plots/get_data.js b/src/plots/get_data.js index 06e922e4bf5..905f3b9997e 100644 --- a/src/plots/get_data.js +++ b/src/plots/get_data.js @@ -58,11 +58,11 @@ exports.getModuleCalcData = function(calcdata, arg1, arg2) { return [moduleCalcData, calcdata]; } var zindex = arg2; - var filterByZ = (zindex !== undefined); for(var i = 0; i < calcdata.length; i++) { var cd = calcdata[i]; var trace = cd[0].trace; + var filterByZ = (trace.zindex !== undefined); // N.B. // - 'legendonly' traces do not make it past here // - skip over 'visible' traces that got trimmed completely during calc transforms From 7a5cdac7261cfe43265ead3f9e0a38c05fe5b54d Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 11:46:06 +0000 Subject: [PATCH 03/48] Add zindex basic baseline --- test/image/baselines/zindex_basic.png | Bin 0 -> 50031 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/image/baselines/zindex_basic.png diff --git a/test/image/baselines/zindex_basic.png b/test/image/baselines/zindex_basic.png new file mode 100644 index 0000000000000000000000000000000000000000..5a892c219644ea51431bce9aec3e7fc85368feeb GIT binary patch literal 50031 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 Date: Mon, 11 Mar 2024 11:57:12 +0000 Subject: [PATCH 04/48] update plot-schema diff --- test/plot-schema.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/plot-schema.json b/test/plot-schema.json index 9b3a8816729..c838d0535e2 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -14841,6 +14841,12 @@ "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ @@ -47221,6 +47227,12 @@ "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ From 5dcf623cbb25c15f618745da19fd94e6b2ef7b80 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 13:00:28 +0000 Subject: [PATCH 05/48] Add zindex to image --- dist/plotly-cartesian.js | 144 ++++++++++----------- src/traces/image/attributes.js | 12 +- src/traces/image/defaults.js | 2 + test/image/mocks/zindex-scatter-image.json | 23 ++++ 4 files changed, 108 insertions(+), 73 deletions(-) create mode 100644 test/image/mocks/zindex-scatter-image.json diff --git a/dist/plotly-cartesian.js b/dist/plotly-cartesian.js index 7e1e2a3dcfd..2a272a7800a 100644 --- a/dist/plotly-cartesian.js +++ b/dist/plotly-cartesian.js @@ -87391,19 +87391,19 @@ module.exports = $gOPD; /***/ (function(module, __unused_webpack_exports, __webpack_require__) { "use strict"; - - -var isBrowser = __webpack_require__(24200) -var hasHover - -if (typeof __webpack_require__.g.matchMedia === 'function') { - hasHover = !__webpack_require__.g.matchMedia('(hover: none)').matches -} -else { - hasHover = isBrowser -} - -module.exports = hasHover + + +var isBrowser = __webpack_require__(24200) +var hasHover + +if (typeof __webpack_require__.g.matchMedia === 'function') { + hasHover = !__webpack_require__.g.matchMedia('(hover: none)').matches +} +else { + hasHover = isBrowser +} + +module.exports = hasHover /***/ }), @@ -87412,30 +87412,30 @@ module.exports = hasHover /***/ (function(module, __unused_webpack_exports, __webpack_require__) { "use strict"; - - -var isBrowser = __webpack_require__(24200) - -function detect() { - var supported = false - - try { - var opts = Object.defineProperty({}, 'passive', { - get: function() { - supported = true - } - }) - - window.addEventListener('test', null, opts) - window.removeEventListener('test', null, opts) - } catch(e) { - supported = false - } - - return supported -} - -module.exports = isBrowser && detect() + + +var isBrowser = __webpack_require__(24200) + +function detect() { + var supported = false + + try { + var opts = Object.defineProperty({}, 'passive', { + get: function() { + supported = true + } + }) + + window.addEventListener('test', null, opts) + window.removeEventListener('test', null, opts) + } catch(e) { + supported = false + } + + return supported +} + +module.exports = isBrowser && detect() /***/ }), @@ -88021,41 +88021,41 @@ module.exports = function shimNumberIsNaN() { /***/ (function(module) { "use strict"; - - -/** - * Is this string all whitespace? - * This solution kind of makes my brain hurt, but it's significantly faster - * than !str.trim() or any other solution I could find. - * - * whitespace codes from: http://en.wikipedia.org/wiki/Whitespace_character - * and verified with: - * - * for(var i = 0; i < 65536; i++) { - * var s = String.fromCharCode(i); - * if(+s===0 && !s.trim()) console.log(i, s); - * } - * - * which counts a couple of these as *not* whitespace, but finds nothing else - * that *is* whitespace. Note that charCodeAt stops at 16 bits, but it appears - * that there are no whitespace characters above this, and code points above - * this do not map onto white space characters. - */ - -module.exports = function(str){ - var l = str.length, - a; - for(var i = 0; i < l; i++) { - a = str.charCodeAt(i); - if((a < 9 || a > 13) && (a !== 32) && (a !== 133) && (a !== 160) && - (a !== 5760) && (a !== 6158) && (a < 8192 || a > 8205) && - (a !== 8232) && (a !== 8233) && (a !== 8239) && (a !== 8287) && - (a !== 8288) && (a !== 12288) && (a !== 65279)) { - return false; - } - } - return true; -} + + +/** + * Is this string all whitespace? + * This solution kind of makes my brain hurt, but it's significantly faster + * than !str.trim() or any other solution I could find. + * + * whitespace codes from: http://en.wikipedia.org/wiki/Whitespace_character + * and verified with: + * + * for(var i = 0; i < 65536; i++) { + * var s = String.fromCharCode(i); + * if(+s===0 && !s.trim()) console.log(i, s); + * } + * + * which counts a couple of these as *not* whitespace, but finds nothing else + * that *is* whitespace. Note that charCodeAt stops at 16 bits, but it appears + * that there are no whitespace characters above this, and code points above + * this do not map onto white space characters. + */ + +module.exports = function(str){ + var l = str.length, + a; + for(var i = 0; i < l; i++) { + a = str.charCodeAt(i); + if((a < 9 || a > 13) && (a !== 32) && (a !== 133) && (a !== 160) && + (a !== 5760) && (a !== 6158) && (a < 8192 || a > 8205) && + (a !== 8232) && (a !== 8233) && (a !== 8239) && (a !== 8287) && + (a !== 8288) && (a !== 12288) && (a !== 65279)) { + return false; + } + } + return true; +} /***/ }), diff --git a/src/traces/image/attributes.js b/src/traces/image/attributes.js index b17768e6575..1a6a50a9bab 100644 --- a/src/traces/image/attributes.js +++ b/src/traces/image/attributes.js @@ -133,5 +133,15 @@ module.exports = extendFlat({ keys: ['z', 'color', 'colormodel'] }), - transforms: undefined + transforms: undefined, + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') + } }); diff --git a/src/traces/image/defaults.js b/src/traces/image/defaults.js index 5d19c45ea0e..dc5542bce91 100644 --- a/src/traces/image/defaults.js +++ b/src/traces/image/defaults.js @@ -45,4 +45,6 @@ module.exports = function supplyDefaults(traceIn, traceOut) { coerce('hovertemplate'); traceOut._length = null; + + coerce('zindex'); }; diff --git a/test/image/mocks/zindex-scatter-image.json b/test/image/mocks/zindex-scatter-image.json new file mode 100644 index 00000000000..0d0898c0c6e --- /dev/null +++ b/test/image/mocks/zindex-scatter-image.json @@ -0,0 +1,23 @@ +{ +"data": [ + { + "type": "scatter", + "y": ["E", "F", "G", "H"], + "x": ["A", "B", "C", "D"] + }, { + "type": "image", + "zmax": [1, 1, 1], + "x0": "B", + "y0": "F", + "z": [ + [[1, 0, 0], [0, 1, 0], [0, 0, 1], [0, 0, 0]], + [[0, 1, 0], [0, 0, 1], [1, 0, 0], [0, 0, 0]], + [[1, 0, 0], [1, 0, 0], [0, 0, 1], [0, 0, 0]] + ], + "zindex":10 + } +], + "layout": { + "width": 400, "height": 600 + } +} From e17739e34902ac0b1ee3e993a7367eb15a92dd02 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 13:32:06 +0000 Subject: [PATCH 06/48] Add zindex to all cartesian traces --- src/traces/box/attributes.js | 10 ++++++++++ src/traces/box/defaults.js | 1 + src/traces/candlestick/attributes.js | 10 ++++++++++ src/traces/candlestick/defaults.js | 1 + src/traces/carpet/attributes.js | 12 +++++++++++- src/traces/carpet/defaults.js | 1 + src/traces/contour/attributes.js | 10 ++++++++++ src/traces/contour/defaults.js | 1 + src/traces/contourcarpet/attributes.js | 12 +++++++++++- src/traces/contourcarpet/defaults.js | 1 + src/traces/funnel/attributes.js | 12 +++++++++++- src/traces/funnel/defaults.js | 1 + src/traces/funnelarea/attributes.js | 10 ++++++++++ src/traces/funnelarea/defaults.js | 1 + src/traces/heatmap/attributes.js | 12 +++++++++++- src/traces/heatmap/defaults.js | 1 + src/traces/scattercarpet/attributes.js | 12 +++++++++++- src/traces/scattercarpet/defaults.js | 1 + src/traces/scattergl/attributes.js | 1 + src/traces/scattergl/defaults.js | 1 + src/traces/violin/attributes.js | 10 ++++++++++ src/traces/violin/defaults.js | 1 + src/traces/waterfall/attributes.js | 12 +++++++++++- src/traces/waterfall/defaults.js | 1 + 24 files changed, 129 insertions(+), 6 deletions(-) diff --git a/src/traces/box/attributes.js b/src/traces/box/attributes.js index 63b0def141a..ca3e6bc450a 100644 --- a/src/traces/box/attributes.js +++ b/src/traces/box/attributes.js @@ -451,5 +451,15 @@ module.exports = { 'Do the hover effects highlight individual boxes ', 'or sample points or both?' ].join(' ') + }, + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') } }; diff --git a/src/traces/box/defaults.js b/src/traces/box/defaults.js index 892d4401bd0..a9665b3ae33 100644 --- a/src/traces/box/defaults.js +++ b/src/traces/box/defaults.js @@ -67,6 +67,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { if(notched) coerce('notchwidth'); handlePointsDefaults(traceIn, traceOut, coerce, {prefix: 'box'}); + coerce('zindex'); } function handleSampleDefaults(traceIn, traceOut, coerce, layout) { diff --git a/src/traces/candlestick/attributes.js b/src/traces/candlestick/attributes.js index e114d59307b..8c3c9421b0c 100644 --- a/src/traces/candlestick/attributes.js +++ b/src/traces/candlestick/attributes.js @@ -53,4 +53,14 @@ module.exports = { whiskerwidth: extendFlat({}, boxAttrs.whiskerwidth, { dflt: 0 }), hoverlabel: OHLCattrs.hoverlabel, + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') + } }; diff --git a/src/traces/candlestick/defaults.js b/src/traces/candlestick/defaults.js index 43ca40f8809..47649a64fa8 100644 --- a/src/traces/candlestick/defaults.js +++ b/src/traces/candlestick/defaults.js @@ -31,6 +31,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('whiskerwidth'); layout._requestRangeslider[traceOut.xaxis] = true; + coerce('zindex'); }; function handleDirection(traceIn, traceOut, coerce, direction) { diff --git a/src/traces/carpet/attributes.js b/src/traces/carpet/attributes.js index 3d947048121..799bf7be498 100644 --- a/src/traces/carpet/attributes.js +++ b/src/traces/carpet/attributes.js @@ -112,5 +112,15 @@ module.exports = { 'Individual pieces can override this.' ].join(' ') }, - transforms: undefined + transforms: undefined, + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') + } }; diff --git a/src/traces/carpet/defaults.js b/src/traces/carpet/defaults.js index bbadc66cde7..394e2b247db 100644 --- a/src/traces/carpet/defaults.js +++ b/src/traces/carpet/defaults.js @@ -45,4 +45,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, dfltColor, fullLayou if(traceOut._cheater) { coerce('cheaterslope'); } + coerce('zindex'); }; diff --git a/src/traces/contour/attributes.js b/src/traces/contour/attributes.js index eb16d5e49c0..33f35c7b5a4 100644 --- a/src/traces/contour/attributes.js +++ b/src/traces/contour/attributes.js @@ -265,6 +265,16 @@ module.exports = extendFlat({ ].join(' ') }), editType: 'plot' + }, + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') } }, colorScaleAttrs('', { diff --git a/src/traces/contour/defaults.js b/src/traces/contour/defaults.js index c1ebd9be8e9..62f05c25588 100644 --- a/src/traces/contour/defaults.js +++ b/src/traces/contour/defaults.js @@ -51,4 +51,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout ) { handleHeatmapLabelDefaults(coerce, layout); } + coerce('zindex'); }; diff --git a/src/traces/contourcarpet/attributes.js b/src/traces/contourcarpet/attributes.js index bfe5f4e6db7..66d2b6be563 100644 --- a/src/traces/contourcarpet/attributes.js +++ b/src/traces/contourcarpet/attributes.js @@ -70,7 +70,17 @@ module.exports = extendFlat({ editType: 'plot' }, - transforms: undefined + transforms: undefined, + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') + } }, colorScaleAttrs('', { diff --git a/src/traces/contourcarpet/defaults.js b/src/traces/contourcarpet/defaults.js index 4a83c3558ae..8981db7d27f 100644 --- a/src/traces/contourcarpet/defaults.js +++ b/src/traces/contourcarpet/defaults.js @@ -55,4 +55,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout traceOut._defaultColor = defaultColor; traceOut._length = null; } + coerce('zindex'); }; diff --git a/src/traces/funnel/attributes.js b/src/traces/funnel/attributes.js index 501738f9cca..5047f52e231 100644 --- a/src/traces/funnel/attributes.js +++ b/src/traces/funnel/attributes.js @@ -109,7 +109,17 @@ module.exports = { }, offsetgroup: barAttrs.offsetgroup, - alignmentgroup: barAttrs.alignmentgroup + alignmentgroup: barAttrs.alignmentgroup, + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') + } }; function funnelMarker() { diff --git a/src/traces/funnel/defaults.js b/src/traces/funnel/defaults.js index 80f9745fac9..27b66fbcc2f 100644 --- a/src/traces/funnel/defaults.js +++ b/src/traces/funnel/defaults.js @@ -61,6 +61,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { coerce('connector.line.dash'); } } + coerce('zindex'); } function defaultFillColor(markerColor) { diff --git a/src/traces/funnelarea/attributes.js b/src/traces/funnelarea/attributes.js index a95c6d2969b..97dd8031a16 100644 --- a/src/traces/funnelarea/attributes.js +++ b/src/traces/funnelarea/attributes.js @@ -98,5 +98,15 @@ module.exports = { description: [ 'Sets the ratio between bottom length and maximum top length.' ].join(' ') + }, + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') } }; diff --git a/src/traces/funnelarea/defaults.js b/src/traces/funnelarea/defaults.js index 9067c6f2542..1d0c383e3c1 100644 --- a/src/traces/funnelarea/defaults.js +++ b/src/traces/funnelarea/defaults.js @@ -69,4 +69,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('aspectratio'); coerce('baseratio'); + coerce('zindex'); }; diff --git a/src/traces/heatmap/attributes.js b/src/traces/heatmap/attributes.js index d2faa7d1649..337fbe01a59 100644 --- a/src/traces/heatmap/attributes.js +++ b/src/traces/heatmap/attributes.js @@ -132,7 +132,17 @@ module.exports = extendFlat({ description: 'Sets the text font.' }), - showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false}) + showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false}), + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') + } }, { transforms: undefined }, diff --git a/src/traces/heatmap/defaults.js b/src/traces/heatmap/defaults.js index 5e5acc5111a..33abee3e1f3 100644 --- a/src/traces/heatmap/defaults.js +++ b/src/traces/heatmap/defaults.js @@ -36,4 +36,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('connectgaps', Lib.isArray1D(traceOut.z) && (traceOut.zsmooth !== false)); colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'}); + coerce('zindex'); }; diff --git a/src/traces/scattercarpet/attributes.js b/src/traces/scattercarpet/attributes.js index af0e7d406bf..f5659f1d21f 100644 --- a/src/traces/scattercarpet/attributes.js +++ b/src/traces/scattercarpet/attributes.js @@ -118,5 +118,15 @@ module.exports = { flags: ['a', 'b', 'text', 'name'] }), hoveron: scatterAttrs.hoveron, - hovertemplate: hovertemplateAttrs() + hovertemplate: hovertemplateAttrs(), + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') + } }; diff --git a/src/traces/scattercarpet/defaults.js b/src/traces/scattercarpet/defaults.js index 0ca56773e37..8dae7c826a8 100644 --- a/src/traces/scattercarpet/defaults.js +++ b/src/traces/scattercarpet/defaults.js @@ -75,5 +75,6 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout var hoverOn = coerce('hoveron', dfltHoverOn.join('+') || 'points'); if(hoverOn !== 'fills') coerce('hovertemplate'); + coerce('zindex'); Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; diff --git a/src/traces/scattergl/attributes.js b/src/traces/scattergl/attributes.js index bbfd23e13f2..8f49ce80909 100644 --- a/src/traces/scattergl/attributes.js +++ b/src/traces/scattergl/attributes.js @@ -82,6 +82,7 @@ var attrs = module.exports = overrideAll({ connectgaps: scatterAttrs.connectgaps, fill: extendFlat({}, scatterAttrs.fill, {dflt: 'none'}), fillcolor: makeFillcolorAttr(), + zindex: scatterAttrs.zindex, // no hoveron diff --git a/src/traces/scattergl/defaults.js b/src/traces/scattergl/defaults.js index b19c27bb117..7052d606441 100644 --- a/src/traces/scattergl/defaults.js +++ b/src/traces/scattergl/defaults.js @@ -67,5 +67,6 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'}); errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'}); + coerce('zindex'); Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; diff --git a/src/traces/violin/attributes.js b/src/traces/violin/attributes.js index 18d1358ee13..59aefe9f4bb 100644 --- a/src/traces/violin/attributes.js +++ b/src/traces/violin/attributes.js @@ -254,5 +254,15 @@ module.exports = { 'Do the hover effects highlight individual violins', 'or sample points or the kernel density estimate or any combination of them?' ].join(' ') + }, + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') } }; diff --git a/src/traces/violin/defaults.js b/src/traces/violin/defaults.js index 1224fdd9bc8..61b1d5b405c 100644 --- a/src/traces/violin/defaults.js +++ b/src/traces/violin/defaults.js @@ -50,4 +50,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout if(!meanLineVisible) traceOut.meanline = {visible: false}; coerce('quartilemethod'); + coerce('zindex'); }; diff --git a/src/traces/waterfall/attributes.js b/src/traces/waterfall/attributes.js index cadd27a18ab..79db8b03106 100644 --- a/src/traces/waterfall/attributes.js +++ b/src/traces/waterfall/attributes.js @@ -151,5 +151,15 @@ module.exports = { }, offsetgroup: barAttrs.offsetgroup, - alignmentgroup: barAttrs.alignmentgroup + alignmentgroup: barAttrs.alignmentgroup, + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') + } }; diff --git a/src/traces/waterfall/defaults.js b/src/traces/waterfall/defaults.js index e5b07290ab6..6494a74142c 100644 --- a/src/traces/waterfall/defaults.js +++ b/src/traces/waterfall/defaults.js @@ -76,6 +76,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { coerce('connector.line.dash'); } } + coerce('zindex'); } function crossTraceDefaults(fullData, fullLayout) { From dbbb0d55ee7b38c03a5efc9f59800f65262b394e Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 13:32:47 +0000 Subject: [PATCH 07/48] Update schema --- test/plot-schema.json | 78 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/test/plot-schema.json b/test/plot-schema.json index c838d0535e2..8d0296599f7 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -17520,6 +17520,12 @@ "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ @@ -18068,6 +18074,12 @@ "dflt": "", "editType": "none", "valType": "string" + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ @@ -19469,6 +19481,12 @@ "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ @@ -23941,6 +23959,12 @@ "editType": "none", "valType": "string" }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" + }, "zmax": { "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", "dflt": null, @@ -24990,6 +25014,12 @@ "impliedEdits": {}, "valType": "boolean" }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" + }, "zmax": { "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", "dflt": null, @@ -27400,6 +27430,12 @@ "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ @@ -28187,6 +28223,12 @@ false, "legendonly" ] + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ @@ -29367,6 +29409,12 @@ "editType": "none", "valType": "string" }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" + }, "zmax": { "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", "dflt": null, @@ -36479,6 +36527,12 @@ "editType": "calc", "valType": "data_array" }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" + }, "zmax": { "description": "Array defining the higher bound for each color component. Note that the default value will depend on the colormodel. For the `rgb` colormodel, it is [255, 255, 255]. For the `rgba` colormodel, it is [255, 255, 255, 1]. For the `rgba256` colormodel, it is [255, 255, 255, 255]. For the `hsl` colormodel, it is [360, 100, 100]. For the `hsla` colormodel, it is [360, 100, 100, 1].", "editType": "calc", @@ -51460,6 +51514,12 @@ "dflt": "y", "editType": "calc+clearAxisTypes", "valType": "subplotid" + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ @@ -55511,6 +55571,12 @@ "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ @@ -73408,6 +73474,12 @@ "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ @@ -75596,6 +75668,12 @@ "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ From cc2fc9293507cc511c6cacb7de7a19f90d2a1aaa Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 14:26:20 +0000 Subject: [PATCH 08/48] Fix scattergl zindex --- src/traces/scattergl/attributes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/traces/scattergl/attributes.js b/src/traces/scattergl/attributes.js index 8f49ce80909..f7770c05efd 100644 --- a/src/traces/scattergl/attributes.js +++ b/src/traces/scattergl/attributes.js @@ -82,7 +82,6 @@ var attrs = module.exports = overrideAll({ connectgaps: scatterAttrs.connectgaps, fill: extendFlat({}, scatterAttrs.fill, {dflt: 'none'}), fillcolor: makeFillcolorAttr(), - zindex: scatterAttrs.zindex, // no hoveron @@ -102,3 +101,4 @@ var attrs = module.exports = overrideAll({ attrs.x.editType = attrs.y.editType = attrs.x0.editType = attrs.y0.editType = 'calc+clearAxisTypes'; attrs.hovertemplate = scatterAttrs.hovertemplate; attrs.texttemplate = scatterAttrs.texttemplate; +attrs.zindex = scatterAttrs.zindex From 6639de51e200676323b7265220c4edec4dfed9b1 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 14:49:47 +0000 Subject: [PATCH 09/48] Add baseline /zindex-scatter-image.png --- test/image/baselines/zindex-scatter-image.png | Bin 0 -> 10504 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/image/baselines/zindex-scatter-image.png diff --git a/test/image/baselines/zindex-scatter-image.png b/test/image/baselines/zindex-scatter-image.png new file mode 100644 index 0000000000000000000000000000000000000000..4f467c716deedd4480aec27e2ec59ac85364b68e GIT binary patch literal 10504 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 X;*J`gRSW|+97Sv_9W4reJa^-thrO3^ literal 0 HcmV?d00001 From ac0a2a3d00ceec5396667e0fd8cc36e668a61c32 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 14:56:17 +0000 Subject: [PATCH 10/48] Restore dist --- dist/plotly-cartesian.js | 144 +++++++++++++++++++-------------------- 1 file changed, 72 insertions(+), 72 deletions(-) diff --git a/dist/plotly-cartesian.js b/dist/plotly-cartesian.js index 2a272a7800a..7e1e2a3dcfd 100644 --- a/dist/plotly-cartesian.js +++ b/dist/plotly-cartesian.js @@ -87391,19 +87391,19 @@ module.exports = $gOPD; /***/ (function(module, __unused_webpack_exports, __webpack_require__) { "use strict"; - - -var isBrowser = __webpack_require__(24200) -var hasHover - -if (typeof __webpack_require__.g.matchMedia === 'function') { - hasHover = !__webpack_require__.g.matchMedia('(hover: none)').matches -} -else { - hasHover = isBrowser -} - -module.exports = hasHover + + +var isBrowser = __webpack_require__(24200) +var hasHover + +if (typeof __webpack_require__.g.matchMedia === 'function') { + hasHover = !__webpack_require__.g.matchMedia('(hover: none)').matches +} +else { + hasHover = isBrowser +} + +module.exports = hasHover /***/ }), @@ -87412,30 +87412,30 @@ module.exports = hasHover /***/ (function(module, __unused_webpack_exports, __webpack_require__) { "use strict"; - - -var isBrowser = __webpack_require__(24200) - -function detect() { - var supported = false - - try { - var opts = Object.defineProperty({}, 'passive', { - get: function() { - supported = true - } - }) - - window.addEventListener('test', null, opts) - window.removeEventListener('test', null, opts) - } catch(e) { - supported = false - } - - return supported -} - -module.exports = isBrowser && detect() + + +var isBrowser = __webpack_require__(24200) + +function detect() { + var supported = false + + try { + var opts = Object.defineProperty({}, 'passive', { + get: function() { + supported = true + } + }) + + window.addEventListener('test', null, opts) + window.removeEventListener('test', null, opts) + } catch(e) { + supported = false + } + + return supported +} + +module.exports = isBrowser && detect() /***/ }), @@ -88021,41 +88021,41 @@ module.exports = function shimNumberIsNaN() { /***/ (function(module) { "use strict"; - - -/** - * Is this string all whitespace? - * This solution kind of makes my brain hurt, but it's significantly faster - * than !str.trim() or any other solution I could find. - * - * whitespace codes from: http://en.wikipedia.org/wiki/Whitespace_character - * and verified with: - * - * for(var i = 0; i < 65536; i++) { - * var s = String.fromCharCode(i); - * if(+s===0 && !s.trim()) console.log(i, s); - * } - * - * which counts a couple of these as *not* whitespace, but finds nothing else - * that *is* whitespace. Note that charCodeAt stops at 16 bits, but it appears - * that there are no whitespace characters above this, and code points above - * this do not map onto white space characters. - */ - -module.exports = function(str){ - var l = str.length, - a; - for(var i = 0; i < l; i++) { - a = str.charCodeAt(i); - if((a < 9 || a > 13) && (a !== 32) && (a !== 133) && (a !== 160) && - (a !== 5760) && (a !== 6158) && (a < 8192 || a > 8205) && - (a !== 8232) && (a !== 8233) && (a !== 8239) && (a !== 8287) && - (a !== 8288) && (a !== 12288) && (a !== 65279)) { - return false; - } - } - return true; -} + + +/** + * Is this string all whitespace? + * This solution kind of makes my brain hurt, but it's significantly faster + * than !str.trim() or any other solution I could find. + * + * whitespace codes from: http://en.wikipedia.org/wiki/Whitespace_character + * and verified with: + * + * for(var i = 0; i < 65536; i++) { + * var s = String.fromCharCode(i); + * if(+s===0 && !s.trim()) console.log(i, s); + * } + * + * which counts a couple of these as *not* whitespace, but finds nothing else + * that *is* whitespace. Note that charCodeAt stops at 16 bits, but it appears + * that there are no whitespace characters above this, and code points above + * this do not map onto white space characters. + */ + +module.exports = function(str){ + var l = str.length, + a; + for(var i = 0; i < l; i++) { + a = str.charCodeAt(i); + if((a < 9 || a > 13) && (a !== 32) && (a !== 133) && (a !== 160) && + (a !== 5760) && (a !== 6158) && (a < 8192 || a > 8205) && + (a !== 8232) && (a !== 8233) && (a !== 8239) && (a !== 8287) && + (a !== 8288) && (a !== 12288) && (a !== 65279)) { + return false; + } + } + return true; +} /***/ }), From 497b5f1dcaca1c2aef9552ab9e071db860996a96 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 16:02:54 +0000 Subject: [PATCH 11/48] Remove scattergl zindex --- src/traces/scattergl/attributes.js | 1 - test/plot-schema.json | 6 ------ 2 files changed, 7 deletions(-) diff --git a/src/traces/scattergl/attributes.js b/src/traces/scattergl/attributes.js index f7770c05efd..bbfd23e13f2 100644 --- a/src/traces/scattergl/attributes.js +++ b/src/traces/scattergl/attributes.js @@ -101,4 +101,3 @@ var attrs = module.exports = overrideAll({ attrs.x.editType = attrs.y.editType = attrs.x0.editType = attrs.y0.editType = 'calc+clearAxisTypes'; attrs.hovertemplate = scatterAttrs.hovertemplate; attrs.texttemplate = scatterAttrs.texttemplate; -attrs.zindex = scatterAttrs.zindex diff --git a/test/plot-schema.json b/test/plot-schema.json index 8d0296599f7..b219866e364 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -55571,12 +55571,6 @@ "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" - }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", - "dflt": 0, - "editType": "calc", - "valType": "integer" } }, "categories": [ From 071ac98fb5e6346e9dd52d6b2ab6bd7cb93954ac Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 16:14:43 +0000 Subject: [PATCH 12/48] Remove coerce zindex from scattergl --- src/traces/scattergl/defaults.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/traces/scattergl/defaults.js b/src/traces/scattergl/defaults.js index 7052d606441..b19c27bb117 100644 --- a/src/traces/scattergl/defaults.js +++ b/src/traces/scattergl/defaults.js @@ -67,6 +67,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'}); errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'}); - coerce('zindex'); Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; From a141e00dd4f344f2bd3c1691ee5f332ab8e9ff1f Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 16:54:49 +0000 Subject: [PATCH 13/48] Remove zindex from funnelarea --- test/plot-schema.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/test/plot-schema.json b/test/plot-schema.json index b219866e364..6b69076b92f 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -28223,12 +28223,6 @@ false, "legendonly" ] - }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", - "dflt": 0, - "editType": "calc", - "valType": "integer" } }, "categories": [ From cec8d650802bff6270b1fc2052b261d0561a12fe Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 16:55:21 +0000 Subject: [PATCH 14/48] Remove zindex from funnelarea --- src/traces/funnelarea/attributes.js | 10 ---------- src/traces/funnelarea/defaults.js | 1 - 2 files changed, 11 deletions(-) diff --git a/src/traces/funnelarea/attributes.js b/src/traces/funnelarea/attributes.js index 97dd8031a16..a95c6d2969b 100644 --- a/src/traces/funnelarea/attributes.js +++ b/src/traces/funnelarea/attributes.js @@ -98,15 +98,5 @@ module.exports = { description: [ 'Sets the ratio between bottom length and maximum top length.' ].join(' ') - }, - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') } }; diff --git a/src/traces/funnelarea/defaults.js b/src/traces/funnelarea/defaults.js index 1d0c383e3c1..9067c6f2542 100644 --- a/src/traces/funnelarea/defaults.js +++ b/src/traces/funnelarea/defaults.js @@ -69,5 +69,4 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('aspectratio'); coerce('baseratio'); - coerce('zindex'); }; From abfd1a8cd94a09392347c650a978bbd9334c74b7 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 17:31:48 +0000 Subject: [PATCH 15/48] Add zindex for ohlc --- src/traces/ohlc/attributes.js | 11 +++++++++++ src/traces/ohlc/defaults.js | 2 ++ test/plot-schema.json | 6 ++++++ 3 files changed, 19 insertions(+) diff --git a/src/traces/ohlc/attributes.js b/src/traces/ohlc/attributes.js index faf59ab3308..e703bf29cec 100644 --- a/src/traces/ohlc/attributes.js +++ b/src/traces/ohlc/attributes.js @@ -133,4 +133,15 @@ module.exports = { ].join(' ') } }), + + zindex: { + valType: 'integer', + dflt: 0, + editType: 'calc', + description: [ + 'Sets the layer on which this trace is displayed, relative to ', + 'other traces on the same axes. Traces with higher `zindex` ', + 'appear in front of those with lower `zindex`.' + ].join(' ') + } }; diff --git a/src/traces/ohlc/defaults.js b/src/traces/ohlc/defaults.js index 9c0dc35086d..5847ed2a27b 100644 --- a/src/traces/ohlc/defaults.js +++ b/src/traces/ohlc/defaults.js @@ -31,6 +31,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('tickwidth'); layout._requestRangeslider[traceOut.xaxis] = true; + + coerce('zindex'); }; function handleDirection(traceIn, traceOut, coerce, direction) { diff --git a/test/plot-schema.json b/test/plot-schema.json index 6b69076b92f..afa30a4ee75 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -40531,6 +40531,12 @@ "dflt": "", "editType": "none", "valType": "string" + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ From c1bfd61d708fa811f0f92a7d49829af167107d88 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 11 Mar 2024 19:21:30 +0000 Subject: [PATCH 16/48] Add mocks for zindex --- src/traces/funnel/style.js | 2 +- src/traces/waterfall/style.js | 2 +- .../mocks/zindex_funnel_carpet_waterfall.json | 73 +++++++++++++++++++ test/image/mocks/zindex_violin_box.json | 35 +++++++++ 4 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 test/image/mocks/zindex_funnel_carpet_waterfall.json create mode 100644 test/image/mocks/zindex_violin_box.json diff --git a/src/traces/funnel/style.js b/src/traces/funnel/style.js index 2a393fd15a6..8a782427196 100644 --- a/src/traces/funnel/style.js +++ b/src/traces/funnel/style.js @@ -10,7 +10,7 @@ var resizeText = require('../bar/uniform_text').resizeText; var styleTextPoints = barStyle.styleTextPoints; function style(gd, cd, sel) { - var s = sel ? sel : d3.select(gd).selectAll('g.funnellayer').selectAll('g.trace'); + var s = sel ? sel : d3.select(gd).selectAll('g[class^="funnellayer"]').selectAll('g.trace'); resizeText(gd, s, 'funnel'); s.style('opacity', function(d) { return d[0].trace.opacity; }); diff --git a/src/traces/waterfall/style.js b/src/traces/waterfall/style.js index 7a0cd005ac4..e46183d394b 100644 --- a/src/traces/waterfall/style.js +++ b/src/traces/waterfall/style.js @@ -10,7 +10,7 @@ var resizeText = require('../bar/uniform_text').resizeText; var styleTextPoints = barStyle.styleTextPoints; function style(gd, cd, sel) { - var s = sel ? sel : d3.select(gd).selectAll('g.waterfalllayer').selectAll('g.trace'); + var s = sel ? sel : d3.select(gd).selectAll('g[class^="waterfalllayer"]').selectAll('g.trace'); resizeText(gd, s, 'waterfall'); s.style('opacity', function(d) { return d[0].trace.opacity; }); diff --git a/test/image/mocks/zindex_funnel_carpet_waterfall.json b/test/image/mocks/zindex_funnel_carpet_waterfall.json new file mode 100644 index 00000000000..6a25f2824b2 --- /dev/null +++ b/test/image/mocks/zindex_funnel_carpet_waterfall.json @@ -0,0 +1,73 @@ +{ + "data": [ + { + "x": [-3, -2, 4], + "y": [2, 8, 2], + "name": "scatter zindex=2", + "type": "scatter", + "marker": {"size": 20}, + "line": {"width": 6}, + "zindex": 2 + }, + { + "x": [-3, -2, 2, 3], + "y": [2, 5, -3, -1], + "name": "waterfall zindex=3", + "type": "waterfall", + "zindex": 3 + }, + { + "width": 0.7, + "y": [4, 5, 6], + "x": [7, 5, 7], + "opacity": 1, + "type": "funnel", + "name": "funnel zindex=4", + "zindex": 4 + }, + { + "type": "scattercarpet", + "a": [4, 4.5, 5, 6], + "b": [2.5, 2.5, 2.5, 2.5], + "line": { + "shape": "spline", + "smoothing": 1, + "color": "orange" + }, + "mode": "lines+markers", + "marker": { + "size": 15, + "symbol": "arrow", + "angleref": "previous" + }, + "carpet": "c0", + "name": "scattercarpet zindex=3", + "zindex": 3 + }, + { + "type": "carpet", + "a": [4, 4, 5, 5, 5, 6, 6], + "b": [2, 3, 2, 1, 3, 1, 2], + "y": [3, 4, 5, 7, 8, 6, 8], + "aaxis": { + "smoothing": 1, + "minorgridcount": 9 + }, + "baxis": { + "smoothing": 1, + "minorgridcount": 9 + }, + "color": "red", + "zindex": 10, + "carpet": "c0", + "name": "carpet zindex=10" + } + ], + "layout": { + "xaxis": { + "title": { + "text": "zindex stacking" + } + } + } +} diff --git a/test/image/mocks/zindex_violin_box.json b/test/image/mocks/zindex_violin_box.json new file mode 100644 index 00000000000..bf4b3efdc50 --- /dev/null +++ b/test/image/mocks/zindex_violin_box.json @@ -0,0 +1,35 @@ +{ + "data": [ + + { + "type": "violin", + "name": "violin", + "y": 1, + "fillcolor": "yellow", + "x": [ + 0.1, 0.3, 0.1, 0.9, 0.6, 0.6, + 0.9, 1, 0.3, 0.6, 0.8, 0.5 + ] + }, + { + "type": "box", + "name": "box no zindex", + "x": 1, + "y": [-1, 1] + }, + { + "type": "box", + "name": "box below", + "x": 2, + "y": [-1, 1], + "zindex": -100 + } + ], + "layout": { + "xaxis": { + "title": { + "text": "zindex stacking" + } + } + } +} From 32659aef87435552ba45b1ff975b7bb789605260 Mon Sep 17 00:00:00 2001 From: Farkites Date: Tue, 12 Mar 2024 08:16:15 +0000 Subject: [PATCH 17/48] Add baselines --- .../zindex_funnel_carpet_waterfall.png | Bin 0 -> 41536 bytes test/image/baselines/zindex_violin_box.png | Bin 0 -> 22678 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/image/baselines/zindex_funnel_carpet_waterfall.png create mode 100644 test/image/baselines/zindex_violin_box.png diff --git a/test/image/baselines/zindex_funnel_carpet_waterfall.png b/test/image/baselines/zindex_funnel_carpet_waterfall.png new file mode 100644 index 0000000000000000000000000000000000000000..3d985ef88a04b35f334fe0028fa4ffa0ba1b1cae GIT binary patch literal 41536 zcmeGEWmJ@H_XiBq9n#VWlG5Fvq@;ifN`rLw&@Cb@-6$;zC=ElWq=Ixe2*Qvv^mCxs zb^q`6uJ_~f=~?$$=La0;tmE8!|6=cRBA;j|;p0%@AR!^)KUS94MnXb?A|W9kV_|?# z7GGR1A|Wv#J(hp?6k@cSjp?4GF#CFcs7UuE19r1YB8LL9mh4kBEzYURAhwbqhPQ9u zGUz=dB|>}pl+?Z?k6~QXCPc+))EAfeUi04dW={Q?`JJ!WFTPICtu8BjZf1LJWTdY3 zSB(tn?RqxRaxgNW{NJ|p9*vXOh%oyFzABo$?7v&vop{)86xH5BP9BNJKjOYuE_bX1KmN6V_{f6+1ego`oHtZqTPr3 zVEp&LB{PD;Ci9DRLrMN?UvN>B|G6UY$Nw%0EZP573IyB#V(Nd{_oq<&uO$4hB>V-R z|1Xz>dTW#jvv*&v^k`~nW8|(%p8Sl$Q&=BGrkF3Mx)a>Nz_84P_tsYKAE;Jg3toih z^o%XqcP*!_xnYH!`>uYLpjti0AYx96ef^sopzj_($*%~kH$k@>DHDpzw{3{kH*Pn>PB3VUzVeoz3RirZFw)YlGoDq0n7Z8=m@xnq_)Bl6YK`61V5n_nDeg-L$cPgUMK-J8$6@>uPO zIoQgNTj@(+x+~&HqmeBh{^ku99ZnuH~+A}C1R5LN*GE? z)E42hGr!4PO$fW=h~yF8N8JiX`2;fx8k*>X)!xp@Ns6oU6M+uZFR!}ZF{<+6V`H~h z+l;BHvt3q3<#x1#h#h$w@`& zK5yJ97dXt;hp-Qjs-FIaF9!DRPFL}H?&{G{;NvBr1{u2gD1j8xxftN&0p1=8R@N-_?hvtY^ zQKkNyX7O$4;ggOc9WTC{wYHsXk}T*N`;)zY|9)${Y_gTy*<*iUUS5zrZu5cNWVsO0 zcU>cIX3b@bf}_uM3;Z2@9Z$o`4Vyadh2<;8@HbRYP~GsfUZPx6O8HdVFxA2M&&8dW zWRHy0)S@H1_&*N35zOzu%wU$1nxD(8(1D}}wEaZw)ywty#Xje?=x;q!U23!WjWt(L z%VGn^*n2%$Lz8g-8=Ei_l#Ju4^LgXSbFB{jIZL%GvVZtE1&MPV77tVPqTf+WWPPpe zc)z>}dv@KtC-ufqrWZlX+0mvsNX(6s`g+mC30dT!2OUk8LsU8y1`V#$4*VYm-*CFQ zP;y!RYCFT(KS8XBpz+7g9x{Fr(iyH3AjQ7kfC5X^a42M+Da=B{L@)!d;^zthqTs2*WswTLC|+hQA|rU@Sf)gm`TnM-EExY?)XTXSI_os2t%W+*}3nj>ON^9$lSe=aXQqbdZ6GzvhjUoJ0D9%xC`n59%J1bmgqe;?DI5YHS zaN#vRwVJEgQRuJ9iW{EgtCc98@1;7dB)_ayBxT5#L%sRvw@Ei66#f5}T$nwI_wUiR zPL>tiO4ZPcI*M}&lT?f%s-K_IYnnPiygPLz|4_$a(V=B)C6(vK%7=05*A8NFuOFUF z8jEZrUuOJx$xUZ|C#s>Mq1BRl5YzG_5``z<)e3C6v&5j`>$m0Rco@G&$d6|mWWL_s z>-vxeRTQ_tZAMVpgm72c7R1~j4QVky9Gsk-I)fTo2AM6zJ3+mP8sKgkL|eZb-twK? zJeuIhh}2D~da^3lTDIe21n=nKs#D0Nb=VEWRT1JQgVu0lEqQhC2jZVH!N3}<+DypP z?Fp*DM*dY_pK?`wR1^0Ty)&(A5QysV`uZ4lLW3>^Eel$1e*H#w8&3_cF=B+!4nCda zQ~~?iWd`Hp?X?aO99|uaG`GxD*jG&`D{V-)4QY~t6%!Qty7X?eo{m|1#DEFStn=<@ zTXlrYHKG$sa*Vn@Eq39nc`pG|C1(@`kFZ#m-@ae?B=5UyoxvBW72{>PBTV$3*iPj( z7Ug*KpN_D3bQSr32h*pP{Ds*!vX7bL7ZWGwY<2LN8im+O>jn21fi@nBfVtLeRGM}U zIz>6mRI{&?j{W`zRr0p5x|oa2FW+Tr(DJBF)6SI=JVNz*Ti)5|776zB(1x6S!Km9^ zddwa>p3Hpy?Z?tTJ0c;CQNIpoCQ>p>99bq>*^l|+CCGia8YZO02zGk}Nv|Hh@6J+x zGg->)6aCN9<`s~Lk|stwD2r2N+vK>2Nu*0cGg8%yLmLjOG zRoi|4uh0H}zxTu%?UZINGUG;n!_PM+6Gc5k!q`|yA@2^@7ni6ggZN*1@n~ta2KR~S znaZ4?SAv^d%Z=$$d&}^+N9Rk)Q3OCeITI5G7R?;L;Tbxm)Lh>^u{n=PL+iPEKG*B{ zWV!Q$Uix+tb4D(gO#0FhzhWx4fFziYjiv4h1#68-N4`UBh60 zc9X}>b54risu0}ctsTaHPcn^0)1iu^@z{w7XFo&84%SN_NGgibzqJkOTr8n9f??z_ zPYLX+sfst?5=T&_J)CmV1!mQhyyu@^mOTGVwX(8;*9p!+e)4O4z)L3T5Cz*wYjm>t z-(X53?qi37!y|`#fhvOlWb0tBX`f14z;dt+U`fdKSaD{>=3siLTm->#Bx?>5e5iQN z($eyS<9s8_Og~&PhAJG8q9h(;y1K;x332x=lVASFKa>Dvdzi?g9^J?H^?W_mIHMX} zQCP%&%47y{zEknVZByfEsdl%#2z#NV|H)E&=!TKVqF>cxb7z*0%#4h;?V*@fBjOf5 zYkdjUKR%#0x^IU7EXjoLHN%aL0RS8`v9Ms^Qwj2#zlw~B>DG5@w%DVmqjOv^C!I+c zg&CW#o_>_nTuM-)dst;TgclcZb-oNLZ`WJ02bCu6A%Rkn7X3->^)9Q!-s0a5f0b4A z2u&L3e9AGvcKVXR?eY8{(mWR`>$p6mz^;Jrx;K33}IEKKegFqkjS z4VY18!>uU1RL>Cn=I2l~T?uHMp#9YMJ~sHy&03=7laEhJ{R#!`7hC3!gFo#3{(Z%> zTzJVJ6B06Xp=C+$f2<{F`xDE&C;H*jr%4Sw>#1r}x)TlGr#u1X00uEG|B+QKE$HL3 zGOF5P(o@s7={5A50xhg@x7fJj-8#dLBbz~+a1ozVU4$Aw|ZX=5^K`$=`(*l|O^prM)M^JczIknjrPNh{;zag!+)0!izveyxg8Gg56%X4$P5Jotj}QYm@rtNE9(G-PY!n9LkAs(0v^Fj$w3LCWLbzI(zpNv(j@SDAO5g{8vH z8|8arY1PS89_ZZ9A~QNYD@--wFGZg_S@!G5)OkePF>v7ZduF@<|3sBH_P*GtFHy&UE9;C{hBC z1|%m?F$vO?Idy325pTsx2fZyw6CWw^6~M|38b&!C&1uOu8u*ig9C&S2+6$4C zt&BQUr*EH`dJC_G-&Cb33&kYm^7^UyF15vc0#lapvc&@bh5w>IJUyF)ZPq|}vu{~y zajHHoCc)-3SwF_*z5X!PQJ|E6rmzEls|l~|u&>JxDvB#UD#NU|VRfQIDd!yjXhz3J zZIsJbskh7hm3Cu~pA{ZXVZ@6@&SPYcmLgWBreyLFmEskjNXm)|@+)zq@YD`TKZJAQ zhU|;NPcF#h`5j5-+^@}JVfZ3*OGz--RIEK%o3ahyCh8Z1te!wK^nqF`)bWcADnc>8 zu3;l;9G2?3H&qy{wL9@ypW4(*zVgP--T>OG;6ys{YrHH|S|B3bb8oiWF*&z z=bsx?cw}<*V_q-NzHSWeNNUgS@B~oqD8l?J{-0uT zd!GLnzu6{+7E6mdoQ2F?sasGI`8Vd<&Hytwu?MHBmkHL$4*ESC%%n8eTJh^WR?;05 zJIzns8Rm9bbPh*2Lq9maCXbyw(?Y{Z1h>g+^N|Zc=j0vh2|Q8A9Z`>dq2FcCi0%aY zk)$=+a4hKG$r5ziKd)pcn!V{oH%zmb)ff370;@+IG|>P8Nf9Q7q_94BpUVminYvL6rx zFgUz*?dw4LUVo%pwEdB}gSafe&baSjmz9~>MMWNft^=NO9^&XzF0zC4>YU!LlT zp^nfg*0{&Whyt=j0jNm)#P8pqNP<<^SRkDO?1yf>KeT51E)?#<+i}l2( z^vJyy;Fl0DTuPmP=D7f>l8(tA zP!<09R{=ZWVRfph+$`uJuJ%>a(bdxDTlv;MOA-<^fnJHG5gRQ~d?Fkg67s!Fmxt*S zfc65S9vI9S3S0!muk7XC3J?-v;#(&t{f*75S8HM&zAe7j$77lZpq^qNUuE)@;(Ff8 zMGW4Z_Bw5HT5PeN{>n_wsTZ^ua53~#T|-0h=K5+#6fuBgyjkO&3^WF+%*|!h8G5kU z^+u+X3gjrH2!0E6ZR2RWb@LblWV%Rm8H1LnEE?`7T;nYuLrKu)3?Wv-S&_iVNl$wB>pnyt65YiLi_<*80C^cDO90wHQA{LKA?&xpjbrZpQ5E%$Sl4Gg`LWZuhrFv6i}x!#R+`B@k!?Sw>d_EF_AYt6#&(BrMqm zgM?KBng?^7sm9hRQsaZW?9wIZLq@zb6~i$JXx=n>>||W;&ejnEp2XKNaEznqkY2RJ zc5rY|lp7mv>3@Fwu-WHC?IY>{$Wa(@s&WN<)y$VZv;ywD3`n8yzAEHo#Nd_;&V>cd zPg2;hYP2=ll0jeNhf<7DKLww^&63r^*$3!8WX7vk@2I1l$+TasQMAG?zf6)gd>BXIF`?lwmFJ5-6RjQDWZ)6W`c2KMHg z)P2yyFIsVQNYX9_B#m)=W2l6<5eD&56%|gNw0i+WckTo|48;JUM4)i3*6Py2@tj)86LN#Sh6{jGmhc)xq!c(=LanF6o!@$JMyqs)s+ccZ0 zwkhgFkAWS|fRdA*gp9+S|K4D*=W_Oj*yt_yJ{cLAg{P~DX}|3LLi5OrYR?udCq+fY zQ*L|%$;oD4FTgQbeL0ol=!6(mu{W+}YV54E8S1y9ai<*{w^`hbi#T~B(%>$&%8+d4 zLZ3g^sRAf%=f+Odny#_X;+7m_W#)KWcDA-0S~f$DOynHWR!C~Z+L+J5===~x#pXLI zBe=H~w3(XFW+&sWMc1fp^R3TyDA7ijN&(py1dpUhkVo!Uo_4+bBv#wA-7Zw|o#r#6 zz8J8^74mp*^=e|#4A84=1}Jm){kw6x!Xh&FXsfCJodt*^55*wFcqDf=ZMeLk^!YD7 zLIi>NuB2Ik!HUwI*7hy2Qnw64)$GH!!qvCCLGVQplxX?@wjNZS$-ktSTL>9@zmTQ; z0_-iSWU^=Qss+KwxigvhY}6oarPZAsc6l_1ztAB3^xytJ5czy2SCfE8eSc2L1>QBaW03-B+9rNvb()_4;YCD7~ZI_A;(8sGG6jl@Cy zIhxJ~{aY3+>%t7W8RY`S0Z~E4Brv#Ae|u;pI%a6*pj#@&UN<%5Xs8k<`a_BCz#WAu z_YY5zy+;ICG}5=K5^pur$#TOVp!Du~4d+PN#R5$Z5ENL4c$EBT_|(Fj1?*1*z{PCd zL0mX3W!S}g!Wgu5bWFeK4JKqtCa}3r@iMR}>nCo1xwSZgRh5H!DUJ~4bfyM0QDN}h z7qgY7p<;~{J}19Qj9af;!{E18*`_sM7FSbW%rO$1c%E zS5_kx1O!o+xQ`1ew(k+Sp881svAT*1Kf6Yp)al)qwf2!+UGmVI>kGX)$84fPuvV)x zb`{+~bsm7{nwiA52jd5HKZ#ujV?^dg5@`R|w&Neu`?i3bM-Du zBY^>p67E}1ZtaoTI;UPunX53s7eH0Q1eUZyDz{-J@WYSz0`2WNIi8l7NONtl>ZpYm z+y@TJ3PAkflsa(Oe9c_xG*Ooik*^4-h4BDnJp#9{_Urzv&0>qc=hfQUE44J<_T$7{ zPML!)62Mo8fL|W6-+Dv$tn9f^luz%5cK8#mqH0EZ#h}O=5Y3qM{E*C>_vW@^dl9Ox0Jnr*{S`S2KW%GMCaYr z_dx7;XOhsV<&5R-V`E^iwC3myW53wsUK@~I%X=7#^BX%Aws8;Y2Q&8BW)>)ommj2C30? zHuqSSmFAcg{|bWrXVQgn;MI6^HsgTuA;5M#i2!3udJx*QooArm^C+3)nOfk#4o@Hd zg$B3RoQsl?rq<~N4O7KtmUaPdnKI<)j?v!Dx5ejaqf2a;T#2p8Fk~%IxSWxZ%g9`Q z{J_G)9fk1=)p==$N5cfqr3o`IGR?ap}z zTW(Z&NC%0}6d$?u)2=7vwrSgs=-zF<1mXx#>xwmYsPE}6-=X3QbJL_m-08r}1Et-W zngPz43^BJNBFB{JDl6*kLRNzkUhQvv>@r2gue3WJJpYvDk8PZ9DoA*O5kGj`QvF zk%jzl$Kko?)m%hGVGRK75cB=Wh;y)aorm@kJ!n+bbhzyDaDb^Gmml09CXkhnm*BnWnn~Q6reWZbD6Ws7R{!aEk2G#r*Hz=q{9Jm6*_Hhm~Cuj z#(oFkXW`jbuRfwMeM)+)a{ppC-cq<{l5PAlJSY6H_bEz|j{DBU5LQ_}Z+9@`9MEup zy_YgXBMA(3+{`eBMA zHYTWdm-ALCsJ9#g|J%wa|GR`XJB|7BIbOtl38Pg%f1qnwI7W7E!^u>4LbOu4~Po|AGTV(%yNjap5Jtk{4B$rxt&f z%oT?x)OT%1FHh5(#h2gYRp!+y58chP`X;hgV>irC087Q1qr&pJuFX39?1s%j7*&vT z3}BIvl-Jo$n_X)ih~zvdum4cFA^ZDQ+Aze6nILgeQYur54DU7#l%O#+UpnO86vHt5 z;IvRg!fJoA87rWW94HOpb#LyccA9?-mYb=667@laa&5%&`jOh1MN)!H1v~Us1ceM_ z8TC`F#~BN}9B^nr@JYLwxCIUgr%CiD1p{Mn#;FX>}>{XO4rejZqQ5j zEOwlRzZwqD^QR}ngu2A(cA7b?S-3#a%alA@kBz~0h(xN+f! zCwmtssgNrQrXSw++nGLo>I^pl%3Y{qpraZsV8|z_cFtIbjdHtS?!cE&2lMXMInT0% zZ<1YrxZ3mvH-0pM0CRBEJmvb@!gZ49#!8MRT`bIg5b1?{*G&awlbGFGd)3WEz`&1lHV= zHp(f-vv^@Ua{dfKzD2}YOiEb_d&_0Uid_pf|0EYPI_$v3Ch%wdEx)bLkk!EUIB8a~ zy&ztACw@d#hgHvnoQd!0WzX9K7X6iHpwoa4E|@Jy%J8q65$svnXz1hO$@kPuc4QXA zB+pB#K9}YEIX^Q{AUnmt!Sd;83P~j4pyQM=VHT(WKyD9Uhg+ibZ2igxZ1g6 z#2sI$o`JTQ8-PO2eGXU$125WL_+lJlZ(iL!HM3I3F}=TS zd?fmqe`R3uH@K+^P5M3E`;LEiyj5((Mp6vmUygEZ#bu@1}B>xgb`uk$dr_hV}Ty>e|kY}Qb4NByBYm_K*Z*aHacbshbt+nyqz9-=gX(< za~8Na(H3qymlNHc@XO@0f!Kq>_okiidR3W#VgxhF&bNciHcvmY{dvk|x}Bcz`M#+y zsF9J8Ebj*7SnBu7SN*)-au=pn9Jn)AJK!GgV9t5vsx}q%{8eyoMUb(b4sv8pjL;+_ z+LGA&F3;^=4dyz9rACd{JIClJg57eaIw#qn(U-4%vLE$0;4hDxVL`9O9)5E(vA+NJ z{=*;3cIc-Gj;8=c)sBrv^Jeha{T1{mR*X9-YK*NZ2?**D^G$5KOPO#H&NH3@ygjtm z#Lp%#zBVqw$CLjagH97H{(;UXL3 z!*qb9D5dC|pPx@eNonJ0%iGcPfs2^H@nIhlZoDap*6n(NO_T=&ARPhtvyQ<8eyV6` zK%@QJlc`ZsTU1PJdbclL2eP`d64Zr?WiX0mLn*s7CfznF6WkLsZ$|Sg?2kkYx&RWf zaWShziSfxHmi;u!tjA=#=T`iS%AO8Gs(RU&*>`*qlP*x+@X14^Km=_zb|yZIeg_vX z9q)M0@UY&d>+h0ifWwG~KTZbK%|K=8Xe8n6`l6D@*ioCj{z0fYEE}M7TH4wu_eYmMw-mgh3Z9PNriK&+^2j~dZk4i(4{1uA%&l=W z=!iF$9ju=KOe}v0Cn&{-_;46Uy8`O|X6atR?-M{yfQ^&`#LN4Y zr{>@a(HXxtOK9uYy*}A4b~#*ooW!L+v39`UuX<1jbFITr9Yux=jfg+vVkcuG!7JED z@{{JkA4m{DZ>-_|+ee4_fvg$HHII3MHkT_KilOX%<)PQX3GFxw$VT!M?Y&Cn`{lh6OLALakM{)nONwNRG|*|v$h7EFhxMvc`I@=$zE<~E$!ooG|A z0|RL+zw{?$=pGwShK%D(?Z{x-%~>Mo<6ir>k?WaN5qy5~&!|Rl*6j+?{awLiT}GQW zB*e+CO<0OAj6XFs!BEkMb~e$a_ciG6hn*KP+B_${3{_#;?rByGYtXG==EO_MmI&_a z`#>AF$NlHoF8yDxD2W$kz5m{Fs_~ugdB`8~^M~l5gR4Wp>Ysggus;`;I;g_pOnmpu8UiP%l>2faXbyBr#C` z#U->d0du?Unep-Q{vA}zso@<1KVMhR3oKt*(WCurq*bzmhL)7DRZR_Dv}2lnHl)5Q z)bDZiY~b%vyWfFsk)B4TI2Q`tBa<`NJTIsFj#Eg+#>Q^_FXiRKUR08kk|z0Yq3O`* zv30uyM$0b^|A0C1<0*Au-UV&p(2<{|u!XPaX~IKtOV)S)9yDA5q_E!oaUdRKTd=2C zH8EN)2)?;(q*bGHKQ#|aT^T^Pi#~QmrUpKzL5t_g=EalqHHymGj4%NUM-g^>QllH0 zo3I)uW0T2pKe!yl-(-degJ`lEsZeA^aa3n;YeSmS(MjMl4T;=veNRQ0EefU+JquEC zC+nY47N)rRu4H<$B|=f^J?Y*(noW~5?&sZk0fm|j(?0+AvD4f>cADGA9v$?%hdSZM z7bbg6NmKG-zIOwLRJV=^7@=|-bhfrGc>x+H(A?(_DF^ONHQFmE%03(O!r`kxb%PXZ zV$RfZedXKk`FrnsN&pxF+&<7n%0}KZsn8`Xb!tW*@R+>E$M=I%&Acn+!@y4rN1YUX zh-QGvLu(|HCIRf{W#cr@+jrE4_tiz(cV_ICh1{(pO-q9RX84-AY)7UD)A%ib5+VCO zx$~~pAyo5K!M8<=mnd%DpuDS{qfk_YhlhiaIn}eSmEBJnFx)aU-^tb(nxjgb>)eZj zBIygxO9EPy7DR`F)bpx;o_zv%_M*cX=bR`xvP&@2DQaQ)%l1&k=al1Ip!M->-9m#~ zht$l>?5nZ4ik$V~%L2|Vyd)<~{fpeMJI&**mq)LPXPDn8^U?pB`qK86?9Iil08^QodLHZ$ zVG`g#kglvMz^}S&aWKP=Bi+=)Sa|B3*Djz4Nyll=4}TFCHF;?_ffjI034Ek9RP8_Q zCP3SxzzHjrKhmZWnFzwSorKM1ztl_aYsv7FI?eyk(^`~#Oy-a7n=37w&aX@Z=52qw z{-6p^CDJbvc;a~`j;oM@J2skf^61I2{e7Wy9N%OK^#C4)X_sT(oBi1;*6%eB+D@O{ zt|HiidPinymF{9kVAbCXcAB6Q{+gLf{A)jkqDiQYcId(SCjWSI7n=R=S*D`}-vrP7 z=8fT4hh7NO83L()QQreKaMbO=;tm%v9e&1^T}u$@K+aTkOa^Z7w9UFQ!O++kn4<(2 zr8<><$3K|q5*&g0y6sPtgRIyS7x+aHu;@z#X3`B!h>tL8bqea*jtv6eH`_id7|Du^ zE>cg($#Hb->*FTOUZR7}y^DS{(8r@g!v-yuiIJCIvbpcR5RSL+YN?Bf!xx@y~fd28$keyN*1{hQm8MT2(_S6??!%l*JBN=ONA*^#-A>ZoI0; z5Ho{G-OB`G5>x~tE!>v$rJ}p{mVEbHvUX)2O+#~#@ly!abJPcnD#(%ZBwxwDprfa| zWA=XOS|3PNI&2SxRT$H!goUZ{;>n8@;4 zQF+GB7MvjC*bS!Saecf`JwnANdX{#68MsT>=EY;%&tmvS5GXG+O6+o%(Z$IE-klq?zxbD|u7;Ddr}=j-q} z7ooq){e%V(>g=?d+tD;I_o5gJ-mrt|7Q?oN!<|+6zVn`R_dmOZWItwHR*KSUk)L-glrVMIVSAoOhy>xIeB60Hq$-Q*5dXEqkf-wTMs?^Fwd9|XX-CC+Clp{H1AMgf$kv=Z^64lhp+ z+SD{nGEj6#5nk7>FKX>yFjXe$=Qh(bcn^(XStIU_@&tCu`?Gg`>g?puixY!N+KRdl z-lgKr3%3jBePR3O5xtcGm7c_{-mDwP4~)9pcFMoFuB#lOW)Oc`p+do}qwCEVz;SB- z@k#0BYCn~Q;n<6sm%J$OIaC8r%9RK_J|ZJUTlR*eXT7m_YU)dj!o7AAF`e;e@cVih zEd;9b$SlRFT1&T}*oj)0>cFQ$Q|){Y_N%PTIFRg9VB?>54tRm{wm*}malJ$<=2~#p zmn4%$Isf_F(C=pkkAg7OpiS<&?`y8iCeOFVYJJ|<6u-s^mQCdb{kJzebJNNk7Rl`R z26-ELZ+fz+*=jCDdc}<%?1zm+qAS~8qhH#c@DeS6R!oNGON3L>2eku>b2(XUV&@^D zwvD0i?=OVz{UwQWf1;xu%mL=>*EzC8c!5DBFl;Aid=26Bn3-lHhAoF zpqyUv#71IDRxgo2YHDlJ;jvI_G+y3IA(I2MyvHQEvGNXpZ`?9zR3KC(St4bEKu6hH zn~G)~*x>v!Nno-=3$Lgi;gP^vHZN%E{odoU)-suQx2KVfenr>X;p6)#23g9J6ZF%4 zrAO)f8&f84xtO4&&m9$d#>NmrZa(R)s>?%ZWFguQ+ahCot0wH18;&lFX4zduAby7M@OIWYp`4lAj;^#XLBX zHMpXM!$ip={V#Ve{!>{JcP1-(Bj^LHU!~GlEP!d0`lDfq?0W5II4XJjR)MAmwIt}x zk{69x9Rn0s(B|(u{U5g`jaGbrIOEQ=ZRVoxLs19Qg2Vcg)vvk3Q^guUKf;pGh+A5GDHh172(^M@{80Tw4{xt&h2Pz((-tnk2;@J6zehZmyEzroVo@eqR6W0h!cZ#x zC19hfZz{Ap3m!ayH1Ni-<3z*g#NGSW`UDgJRM$%7GTEGUvW+b{b_qik`}iu%1yg4e zT-vF?OrwM`Vg4F_Z;n1@Q9;_+-0g$_*i^WI8vB;*TStGU^x$+kIk%RqKG##iLFQ_w$<#So5H#_TnljDq1Q*1VmyV zjW+VJjjxE^pY&cZ=#&|pEL;@mj1{^VUTdnt&+l*+6~_MZcw56z^}v7WqwUsY3yTUm2h|p7b;xtuY2vNL z#obQd+J~ql(-vV9U#{-v*Mh1NOgtCfE)NOZ4=reImE983iPx%0B{Ik1ck@mkU7A{N z|3XnQ8G;UL*=Bhq2}APx_VzBaIsPYbPeHd9PB3mf!&1lbHQ0 z&EJb;jQ`+UzkgbzJnBBkooNkaRf@(u{AfD+ zPQm?!sMq14D-!X`0cX9VeD5?*m7#)UWa z!SC5}pPb(k<0g+QsvT+VMHcZYIwOK}10LDW)&fGjTv+c4N9Q(JwTqs}KxO45e-%I( zf@I8aU8KYEap3cyUIlm$P0^3N7uW!nf%ZGbf$a-*JjBn-1;6fg%5m54J0){~;jgx> zAF{0h%>FEbU~~lxJ7@u}#cbOcwPD_mnlSFaKRdwY2rjnUp+`k8P-$@ft)}j88LOX@;}t_odq+9xafjGqh{s~+$*Hb9^QpFE9=w@6u!E@`5AB%d3!?t#Tux%J# zU?5ZN;IakK*!$wzWZ)gb_^(a`(C5eU%0oLYB@=>GhLjemQ4=(?=|GG%`+BQn!ut{` zSy@)5zQ2D{@bgd;z6W@#*7FE@U(Ovg;Ue*WQyl9y#rcN1-QqV31lI2MNJwQar4*6j zT9}X;Z@~FSQqNk3lfEO-CvL!&o)H^cK`bU4E*uNSKVk2H6L1+5=x2*7<6`r%@tL*717mjKOELvbnDiIHXHUSg5#4~rQ&clYXqSL8)vyuYZy%ocx!u)@k) zGOQUWW$kF;^2JINuoB|qkpyi}>}OMwC(HggTO2 z^C4m@n4FuMwA-uys}xHzN37(StrN;r;X z6d(Dl4&DuYZz z9JD}kAFFjHS@<4If4oxG@ZuhS@17So-3f0O9&hX9eCkS6`7*)vl#^3hx^JqHEV#X0 z`HYn{)vP~jE~^2mW}}=vhDFI2$h5Q}V~Xow!q~26l}B^5WxBT;?=R_M&&gkB9~^@_ zh6HAv@711eqxwE2g&O&)>-@8JD1fx7E)`Hj+^dkd6H1rJV<;|Xv?6gwT~AIp|oc2CwgszN8aQXy)0c zxKRNNcA0WdfHbEj*n-A+pHF{WYau=Bm3V&YL)yHgY2DjZdL$XUa00OKrU z^{ubr3;b(oBRT;YbgI5Av9=N|W#i@<8e&r!SG0%N*vjSlle>kgk%hb3Mzl)!7t_NG zS4|nPLmo_Dc(bJzmFDx+astwqN;4tf=JD~vEqV#=7Z)+!j_aOD0Z;NQu)oD0%i#y( zgSh`dBJj6T>e+edP^FEZE&3g?$w8-L?0H76(xJ}NLt zd&E$=XTs^D_R?E}iwC!IdwmDj-|KaVhO)cgN20|Sfi&*oE7Wwm5!aIwUCp0Ac8oN= zQt)%|KW7lQk2X=as0hY}LwNGzdWF29=AY14&co`>C1x)qN2dgI^U zpvg*yxm;x!<x_eOL@hhy_aehg}Iq!x2b8$8-=?Bjl-m6n5uE?@m31W2qNU^p z9IgdQQ)T|)$8CYPzoqlVSpr43xt3IEq$q2wLd3}_OroM>*YnE5eG6iMvrvq<_P(>7 z?pb{PV&PuP=Z|fZzm|y>2e{=%5eHbiquskT1KqDCasw5?OQM~Yb(u*RI6QHfp1bYT zt!s1$x+{$9-_noVVKHx_qXna;2NODNY!u&uS%X&nu`wdpq_MKiIxZ(eN?_^60jb7^Q8jHHxTB_Eo-coyjj!#AFUkd46 zUy_t)buwKyTi^M6dBeAjmfpuTIKgf2t60B4;4`?j)qazYKS|wj)5!j45#n4H1z*4y zdl$Ag753<^&2thL_HBgQBBi|)l@(*!aMB$ar|J?T4EzrrCKjV#0S&4bo#VB{Ywe=%jM7{cDkf?{9uVJ8e*)VZ5%YW#iZY`g<0X%Nf77ss(& zH*wdItDuV9i&IT784AeIztfQ6awhA+pCOLR5#eKLxGzgvnQ47%_njXO*nZVg!^@d# zp@rAk+jy#*40Es71Q^i7BF^sh^!Cbr7}Qpy-46_e^W>d+<$8bijthiH-G~z8In#)1 zaot0X^pyB;b#>5j`nx16DQvZ+1yOCOzKe$^I4SAAgv7zjyj(ND=_8n_hJn3)^Gyy431+<(JTIZHf4&h0a*@O|S*skCc}>Sy5f&VOUHpcBeV*r{=>- zesWj--@p1$f>%VtDeAU4iV7zxT0fkF7Xr4wu?~@&0wu%sez!eT83*Ulqf%|l2mCl( z3TgXF=ehE%7s_2zOqE#q(O3c~gF9>$pE@TYv~U<#ofV-5I%fU=;$Uj3l*HcDRFs4w z!qaZT#B_h5kIj&ZjF3h)DqY~~)|C?ejVg9!eF~>1_?1~GGa32=XYjOspD5PpE z`RxAEUWY`>j=446Gl|^%{=gGCt9P)yQA0$)7167iERtQo?P2o0GxeWeFheMMpGKH= z2I&;XOS*g@dU|bYi%R&m65`8LrHG%HIY5er!^Z?|VclTzpO&h8x{FeMHM)inCwRx; zq3B6FI)LtkSf_X;38&GBqeQ*ocyFzO&h@2-dG^zn znqXc8u`9QfXj5+8;5_p*tj<~VkdPO9<-CSb8 zatBpnqUW>v19F~&=2Zf>Ij8>kdzJ~5`SsDmGr$&cdP&8#??G=}3z?u#vjt zF}D$;K+(ZkilR+(g`WQ(Rlt&+-tev$3PSnB7U<+DMV^foeB(?^`R?3sY?d5VU* zg7rX(Xq6XF|5qOP0`BqlD%}kdGjxxS@K-pfZAv8ZFrVY&#>pixSt><;p~4B4;2$x6fGODVlWk8 zS78=$ZTm~bm9-G+10r~O;?MfUaweR?n<{*_ekzKpWcJW4^WH%_WZ%=a2lvrVZO6aD zkMSu*2u`ylmPZWl)jDBX4!On!G7uZV(=bnfq4w`jkAmw6%KZ6>sqlD`BX7ASEre@Zarewn|^&lRGrmcCAI@&B;*mtR#zYab{~cXv0^CEeWuij>lzba!`m z2uMjN-5}i{A&qo*Nh6)_TzfzJ{dCTMaK>1!4-CAy?m4fnpTWk4Lbe#Wxo#uhX}H~d zzo`v1(%gaw3XWA@O~ zf`N2OtEkhZXm_L4S9@v*WyBPpXgXF%Rm=kI%3mA)7`f|y9bhTTEBqkToyWuJzxY12CUBcJG7bTT=Y6h}h>&*uc zGzznGvQZn&Fw-^KL~dWYI46;W3M{{{Zg!NQu1zpkyR9YqHo<*w#IQ6Y{j!}9P9Y^% zqAu{-fhveaD@2qUntG{$y3q2yvj*3{AmWuBcFdT|FrRDUpw0&j;J)lOb-Nh>_4Cv_ zp$XBV379|``E;qzL<2J01^n>V9KmsRr*5h8YqUyneml}Z)Mww5e^52lYQk^Uu~~Rc z=kwegS*xx-3)5jWEy$QgTI2V>Uzsg9CjN4=>g)VifV`(e5T2T6=vrwGmh%3ndtK z7Fdo4eU1M9U2Bx)hJK)PXbR`6nZ(A99ojP~KMl1AnL$hw%+F7*yMa@=DI%zy^iO(Jb=Ia-A>ONIv!H0*2Qs?b2e!2R>zt&vS5>-)HXzTIj6B4j)Pv-;S?Co!-OFw@~J3yR` z9jE?xdSh()nk2nGhcjqI1F?|dtrb&k%tcrX5%j~sl)~v0B3GJzDt%k4TX(0PAf0A$ zLVIYs>8YVyWb*{u<2=`wgFo=8X$COgyvHp4*h|1t8)Pls|BROkf)MFSMDI1|sF=%L z_2L<0wbN}8T|6M2jz{Aa?3m*pj4EyUsplui>Bfq))W9n>gv3Hysprvu36tadkdTyx zc8Y-hW-)NV&gOvaOsobg)yja;lHOpwu!zqnW zk-HDpjsE#HqmyFkc8Vpj5zx-CE>Gr}^hNESzOkNfw5Ozbr7APH{re4un;B7M8SREE zxo$lxq*U+%@vPr9eF7YihHzEbYYvp?9Qhc>pp_06TCnhpYGX1JQ}w@Jb<-NO zO=f8!30VL9<@C}s)_r%;s@*x-z&W=vevk((QGUyKMkZ{zfvV29lVIXYsQKS!R{yP_)k@Y@7bSZmK? zl5yTOm$TJTn@u}>#e`*fw(+5X}!@`IBvS!@(*zn{6{c&9jmj)ek3h1nsL^= ziL$prWiI zt)PRnX|jcdNA`(s-m3BYV+OjwQVsf8mPqjHRYa^tAEd`#j_`szfgf~5UE%>723;7! z>NxMQ)S2OCC_OQX78~W14mgiW-;W}>ENp9dkc$SI&g45>k9^Q5SI6FA{vv!z)RW_Z zoI>yzcGc?NTI^^r-50$Jjk;L>SdgF;ffnU5P+6h|UX>jzM{|Xq zj<&rxFNil?*!WDi6jMnUNW(C(H()WnloLb!#N2CF2TL5lI~a92@8S{e)tj1;l0RXm zhVxuZ9`S`oxI9qn(<}3yO;hNXE!W5K;ep}l(KkaO?z#M0Xv=Y{Y8qkgRE9UkF}%XJMm+7&O#VwleYVW#kO-@Rs3&LiwocOH z_99$=wu1yRZ^i*s#Z3n06e)5QscKY<1{Dmgm{`m$6iffA7PYb-_t6=~wcN)yByGLV z*aoB%7Y@vBGWRsIC>{@5XUvV2|Ke@1?Q- zFJy5k0o~vnypAj5ns9|}^_a>Tp_^q51*0^)C}r+%Q_t>0?z&Qw@HcE-XwV0O+px(0 zqE9#JAi8*|pMm=-g-#mM7EdweIVpc zd)E7}^=wfTTSt?HQ`v-#v&TyLXE%vWDBGynAAEM<Rm#$!$#BQ+-IT$qkBEG({@k)mybpwspL{91XU3RFrn_ zEqZQB0EZIlF!K|%DgYvqlWXl(gx=(ckr%1u$c3WdgNa%XhN=;NUS#{{^aGR|y6V~& zzGb08g1CF{blhoHgAbM{4VSErJ1^-)x`JG|9p>ECjTz!Lzxh1wJc;vUU#;WshsK1U z={!}uqVFLw>YLWSF)>IsBEzgT`TRunW9bM}J?FFxY>^8&BtlK#xbf=yf2r}T9ak|EtVcCVG+V zuGy23yKCZEOGfpgJA7bcl_#mRA9>P>%Ze{D5#K*J3K9d{^vLu8{0}84mV6$b-raUJ znV0Y$(A{pi-Ia9ZwqzOfZF;%=vUUg8<%5-@-{=Qc32r|I)IT+RUl}Bc5XlaU-S9JO z3}0m8`|+z_^X(24oF>Z992Vu%GaSV?e-ySt-oZK7QavBQf6=GQC3`e)v4Ds&6kqL6 z!eWYEV)=o^8_C-9_14<|1~fr~G;^)hoF?4gFO|V@nnETQ{l6C)n>KEUmRtAHykd(Z zV}8Yy@0Z7?EjW#^bg{4mS=VJERn05~xsh(xw8`qYg%I))C4T-3>+DIMxX~Y;bUu>C za5h4Yzitcf=A4&_Z{b3RkNC${p_J6BL1fr|;c}h8g+d!~U|1*zC2`HWxZ?p>$d+-v zVg?#8feprka!01J85_aSzf6@udqP%L47GHa(f&kUv3AurC7m(eyliPF_l0sb@yWp6%ZnC4H`H{|6OcJG6Q$%$sbmkKFG51GzjRipotN zH3(jqS*N<<-mq2YErAWAk)$kMh^7|d2RKVZ^6z!+>Ub2MgU?M-gN`KQ~ ze_`-VMDbN))`M`)`DnWHxQe7|6h0!ICe2Vl#}aCdP(PaU&5(ZT`J?wkO|3NR?v+}J zoO;$r7C1(a`c33TNtg|4iEdqJ^JenDU@~X`j8dXU_vL%}gHe~irGJcj!!)DQ7(L41 zSr{r_!I%XTS7rYrp?Ey+PS#2wY4dz1_l9UyL7#v+U+cnNe}P@+eYqdD%{i)p<;wL! zO;sTNhd*lS6f#E{P;2MIjCAdi2Hu->(gAbP@cLUdOrv2wv{Wt4mfy`eb4wsw&98eL`KXrn|Mi9=dsNpg0i3UL%lX(|yBc`o$t{)G>F4f`RW! zIf#DsC7g*AIV%ndo+Aenr&u4HA}pB0rSuJNRZu?OjYq z`NS|)7#{fJ9R3vWl|jii_ZKRa-?K=Xc=EZ`HU%VMTseP{Cf>B;EGu5D5rx?cu0b*_%Ndx^0(aNmR=cgG4u}+qPZ;oYfa7czdW@atuTR|0mb-4|NE9nP3--18f)?F;3UukZaz0 z1sQ+bAA-OfdHe1OhD=)8zS8_Ar~Nm-O2}kzsablo;i|Uxqt! zaxM$%5t{m2N{1&I<*z)lC^~O>NfI-Td$RW2jORsTjrngADC|Ri+enSu!p~3gVVt}Q zT&dLh7h)l)0=TBa64SvK2Z;k3W%cX=!-5xOHGs1wISl#dSheZUttgQ|UN*C0VMv9B zKGq})iS}4&vroa5hwPcsH@h5OL7f>|>=To!#cZKzgkl$jlF=o9Q)r5eC&X`Uh0xdi znF+-9A>9YP3x}xHP73;8^B-X{V&Rx+fFxm4KWD+wL_@(>Av`H|mq`{){K!Q@(@Ty{ zG^FgS-uqbA(z2^lS6aR9=wTGcRrV91*+D9WPS}q)bh&cY)D+t7XPji^m(>(Jgy?rW z7pXFl_8(o)+WGN~`WJrdB$B{~<3|iT=8sYnHe?%eFp@4byFp%d<$3SKni3kt0R28I zNIO_HPf-$^==}KI<+4EpVn0tf_W-hU+XrNw$n8>CYbPkSA^*D&q>ohthJks#6o?n< ztO8Vo?{6Q|)D^_B2QQvr4aoxs4*IJqw$7YUGowiOm$gGe1W;d(73)2%$3i zrc7;O8n0#9@t4fUuk6GED@`w3c{-zc-1jp^n;4~^*XGCV&%4yGsO4lm$Yn9eTwsRz zPvr9?WvbW!6E8hJd*$#C zm(tihQ%>RZ582+>9sK)#y)dE78`=(emfMefe;C$ONCRRI>#ZL&=b*KG*Tl?2u(@W5 zetp=SmT%*wI96ZGdsnWSLwqd8_A>^KM>!x!yRK4jfirC`l*}8$iOk>c(^B2cja`*) zU8_zVKdJcXS+rhV0aA@)IIs0#LPL83$!S&nh!!sl;mQm9wX1!oN~1x*W4VvafP5Ot zYSXsBHrZ(Rvk9fvkwDC{6ylibYS36Jn}XAQwa3GPPD%z!PB&D}N?>2I8SUbM`Wge_ zLgE4^aWi_-)}|)@5j)J+{d&m1E z4(DJxE6|&~=Y=s^kt3o|9%@rQa4wR?{wkKCTS`j&q#~8XhOGEb@h{LbP8RbD0dQ6< zKw^;2eDccPA{%0NHODRgsrsjX_t$nk!-iY?xR=t?4P`aMMGC##_jhq)&3%-g08f)} z)W0a>$cExeIPXC6bEfk_(bVXs9|8hLsy0jhMC3;~J(}B6ZRqpuwY0kp`!EV8cE()K zZgixk1gry7+TWtb8D2>3uPx%I8FASc8wfMK8|2EDqSp*s>W5l+1oigs7ff8zpSWY} zFyk7m(UPZPZ^diRd%5}7-^R~s8hl?yX7mW&wBpN1v`~3`KQDI|TA}A>!h0Z$Lym{! z_6iyYDGDf{w@sHb3tLxIbLrkrpLFtnjgif-_+fv{W*a~030Iy{PBRK=6tc9oKFLHB z4-~{bl~P^eY09?y`sVpBGJBD70spr79_=eJ1d24olVD{m{U)@#W(qpGbO#GhFLqUv4_1Y4an*(4H7x2t_ei?&DNny zW4fU&x;Lf^z0Zd|qkXD+e1F+|c#n;*e8+EI!h7x&=e<1FCjM3R1GJAS7g?VEyC{_7q^T~EH16--wr15^QDTs*nS)V0Ah~k8MyDp_3DJfB(88P}o`2hL08nwJjo=pGHU+ zefCw_rhE?ZA;vDvgAT=rBNtJVA0ox0ogl`5-1m2W*kUKsIKsGF)y?*V0{P{fBxw5+ zoD}9-Qnzl;n+!xE1~z1Vc1#a>bL}C5Ibww}-a~P)5xT=bZPNENntq4NT6hhQ+|ZRD z!X@wQxUkhe8$c7-Tb_#K(8mR>Q9z>NaeUaQmp_70q zqLt_#-lL_1+g{iEo!4w5&$nB?7Gd9LCnkGV%lbjV$l51~-H=^=Nw(AYTGu^~st8Iw zrTfFS1|nm{q!u0_9t-x-n-_$zHa1Qra)YYrWzi0~tY z#*3~#EGzC`tE!h2If*&1d+OZ^zo{z`s?8`2i|QIqzA^QOWqGClfwGc} zkX4buwKroq(`zUVe;|N&3aLm?>`DuZ>+uNO$ z+ln~&@$4L==*f`IW7eK~Ws;B~n=xECpvb9=YFLmH0$w2jSF8s;@$;{rhSx@5QuOVa zT&gbY>S#E}asP5B{f0Pf(gxERBQy)P9(ILXCU&I=;Rv!BebA0XvW(k`r=3o6`QJLO zex%HmXuE?xodxz;|EubyXiP)pfjL{7+j4mtl21Z!$1QqR#oCBDj0QrgY2odWjGdT) zTvuZOp+((YtRLh}PBUIfcM7fk!K3hL z4$n4d?m#nz6chp1Jwo`$3-Y_pphTyls|()YMQuH8dh7&)edQ^x)jwTXg-)4!Ca)bC zt;XIz^PYcwcQy;>TB!&__ZA<75t?}eHJ_0bgrrXiJHwgG_~Gr@Jj6cIHFTB18uUFs zKFxn?Cr_SJ>%VB_-%2vq-P9p3!)cMLd$+SuYKGv$o>Tf~-IbiM?V^6AEWZ;6S?j4? zjA!_!E9tcVgkbVaNMzn+To-a zq3Zzn;TOorOo4gtQ%yC!2!KT>v2w5VD|w=F)gnClkQ-yuScGKX*^CKmX!TvDqT4E< zalVYEg~ozDR#Mi9KHr)E9u0pq^uS|#&PoG&JxL>cm)OliMWUUIuwO+m!1+{F^8n3S zXn?lzbCz4TOw(t)HtZ84yLdR71YmaIgz5_$G?K=s4!H~R3fr(&T_5=VMw1G!M$l+u zr+#9UoFwFS7=C%}xb=Nhb6V@dac4avLQgPv7sPF3_UyhYONEiUDxUz-4T#-4>`s3p9SOZPa)224(f*y-l0TwK5}#D?=MQVLyhw4zou} zQ$3N!$KWq??{@}NvD$Dp>gjaWhg?gLs>sZem6>HOl{66*9f@8H5H5}>Vu-V#z7I!y zS!JsKQp?w%(p`owK7j&+tP5N+!dR53nlx3>U?lf9L!HH7?A68dCNvu%Ea?o)z)7QD zExm^m-qXYL6U+#ddT)!$*LjJbn9v=~uDG$godi_ujD^p6J)UOBG`9H{%R^4(tB(4U z5C~#UalWe)Z|V-rVRVtK(8E{BkxSPBo%Wmrv1)M%SYJC#IKE{(2m`*d`0JiTJbv24 zApO_KZye48CBBFQujL7GI_B*GO41OOXNz32c$N0we?xh^mPt3d;79L_enazl`+og* zsru%KB$h*0hPKj`EdNmckWd{?N41+2T6LR1AvYB`2Nj<&sw$6x8ipB;FXA2~i8<3E zw6q<6=nQY%$a@!i?)|<+|iV68*+=Ay``3v#m&HxCDEonkT#ay97HC)~{x65^6 zr83(4!gBsA$!>bc@_1Yv4Ese9Sv}9Xh=9E@`|eDxDY#h_Cqe=!5A6ME2m6C*7X*}5 z2X6`C!wQmSWLQJn;5MQ01DL@K_DneK=^{ws@R zNbg0e(rUvM6UISV*14SEyYy-ej@lj)4<5*Ma!qM+^)!y+?atoQ%8|uVMhPaR-3+*QRID6>1$WQh!KfmW6yv5vsTcO2o=E!nf+Z z3cP|ftP=1LawZWypx%E`lnt#iNR53kCzmVAbH!d_C#Wf@nQ6mSHN*yT7lm}b2ONlx zz=0^^jo%-kP&D5^?~(fQ!&Lq3??@mu&rJ`$V3VWqt1$6DdZSiRd`ynkk&TSTELSeF z`z=m-f9rm5MA4WjRxvpCy(kt4=FzA(AXH*MMM4bsmkwvIP$r`It+l0}c z{qToY(;#832rI!uYMerkp2>%+`aYkB(LBS%C^s;kN@d)~*XA@VaoN$-sN`OJpmlU% zveIE=BlH#Vro{jFDb$fK8rz&lRVuAtQNXXPwsWr#y-V)+**&nV61IFc*=5;O5j_xBawrOOEWh2OE0B`bE8E~eL0L-hm`^++Nw1|S&WZOc{iHC!Iq~ecZD<1}+ zf?tH@lV1uhl~ zcILqaBOZ3)+J@c?h`{z2zvJtBOuQ7H*5P0#@#7$k4551T!xcPqTwA<0FMq0_>X&@3 zWXEcA((;xT@n!bLs562+!d|O7u(F|)u~Npo;JK3f$@=RBU)P^UC%lYBDlvMB(B{x; znGYJPl|HG0e`ZhR9uA_bXZCs*AF5=gu2q7o8GZCo$?YCn7?hC>)dH{$u{$opjc<-z zzVcbzU`hfxR+ATABs(VTZus?Quo}ta4l8d&4hHc5j0!LWEy&gmerax3hEVl`+Om8%vq@&IgB|&P}0hIs%$zo)ba0?uzApx$M37}TU>V$ zm|?S_@fdw)CJ>!n-8a8J&jT;FXRIT<64{n7KsTc-_0BJ`Qz*DQVB54g;n!JMD`wtR z_?of7N0cavcCD)^C)|xzW>M5mN;JLOYmUWugN1{|6)hyV(*r(2>qs{IZsd2!{(iQ= z`}cU1!#Vzw_Zbi`1mepwTzPow!ht=e*pXDEkJybgPSJX@-KyGlFIBS?U906iuf-21 zd5B>bzh#Y4Wixt62kF-(FS|@8e-$^T!{Dw)Z^40VYbpucpm`LA9z(h z2uV?-Gh2#yyTVwRM8M+!8Bq4ZCWmE0iw-AJRyPJ#csH`>#_q`muBgLT`NeiHP8qYk zh1Q4`sj}UU8?8)G8%qrS9QQlNGe-te*c%liyW5yK9@cG9XldIh!+UVnL0pVg)BRcRsGt!WtXr+FMiqY@Ba{kboUhL;#coa zIf!SI`PvEgubJ~$g8FQDdoA5dVJ&dZN5!&Yx8V?@_}fr*l8sJWIF>OQTXK7B_#WVE zr$W6D>l_!jr_NXE_}5D_UqT7x4I=D(g{ibKy2*!wyZ3rerR!NdltpNI+;>jixHgUI z8k}H4p{%aw7-F~5_-J;Voli&Lyd$%YoB7qk?$Ro)ODj%ks`Z z(KKNQb=HCfr4|)yZvk!K#C{{%7RC7x`?(ZN7DHx0w)fbLrAA%vZOm}t*g#-ElfYiZ z%jWs-n|#~xhK;4S5!yp_ts14hyG|h-@b(tQndrN(X`1L>k0{~feI8vL##^;Ze|^+`q^n9KR8-=S^I;I2|uP_bPJdqxTOgL~G2GiFws$o+9_H z>tbBost*r8ZFCk>gNdG}(}-^FM4vBA-VtcJN)9DNuBV7Ev+|*4$*Sta`J$>hQlOnz zY^WT>7SA){nc6YpIwHT9pFs!3xV05q=P&xmtfz#GO23 zy69q@Lm%!mp?u@`%5}7QU<1s+M^dQ{yHZyUMh8a6<&Hr!7NDeTD8AAwkO(z`1}Fw!(YDQHIff2kbBF=?24Dxg0k#owJ- zO)&8s{Dgbe){dE(vBbI4hDZMq-3+#kodZoQ_{BRJ`b3JKHIks|--;66u=sD&l;~G) zw33+>Ur{{`n~iWu1e`c^@GNJ z&=>N5+ulZswTv4q*hbhb)llE0Fh?BCZnMOA$FlaM#@pQ<{|J$Yi#Fi$udN^B{S>K>oqs(7b{j>j{F9!hqr=0*b209n7OYL{#rc@I zyyN+gxO!L`cVaEzWEl62_9^7{LloyajN)ex0A~Wh2wMj@B|5EcY@oQbJYV33RV^r@ z!{sH+o-Ih^9e;8~`PSLPIF7#zsY=745=g173c<$flZL0*nxw32B2I2T^=Pe9V{=)9S<-*5@pHQ= zWQN!+7cEGinGi@Hke@L}owUJ+Iv6ik z%N1OK{#3~nihuWjfv1-=>pkiFB<(bk2kpAggKfl$#cbmR-`Vg{i4Fzaji2;$)4s3i zaK6*loI7i1ZW{x)`gb{yCkHNw4hRn&XCV(9a?FY~d>}VJ;rgy8xar{0FJJM`nR(rm zD{)g5AeG5;mPtKN{S@Xp?`cWCneiRzoOU-Gt51ECWQcAet%&BT$4F^?IeWu$FnN%N zDrICv!~Fz0hF^j5-5CPp@#uk{-R=8#I2w8q1)_243|e2zc(FT`wv|K;f?r%CPlm(~ z7!a3!u%^qxor2r4G?V`4x^U~D`YNn#CU5p^ORg8hG5l?9%_PXvKs~NzTuTUoyn-a8 z;)Rdnv2`V?GsTWEHKw99L#Wrx?m8I)VM16f9 zb_$)dQWA%T#+-+U_}t!ko}m}lEPn&_+(tj)%VMxZVx zwFdG_;z9}N&z4Gtp*heo5)#U^e%LB{J%%Ag$i;=YU z{D}74gS&C!A5q=FJ}6|2aOs))vEgB9A0H7`|3_$3EdmVC|LWa`@{>%Mpn=z#CN6%K z@AB{)YfNS*e%Xx~qRq#-{zwmpx4Kz#9nU$YSs3d*(9q-9*Ku=eXvaq zXFU_g!DAk|vLo5J*Ad+7`#3R)OrYA?jtQb8e#T5DkKmqy@i9AoEd0>?M<1OEEj$8( z9uFgSG!{Eamnmw2#XH*R3SDjF4X`r!YQe7Y`*R>HV@#Z!q|{4!I7`1Xi9*HnJJel7qkm%3Sn&ESLAs*pN|C#164 zR=~r<>#E+c^l0n|3|Up9DLRk_-W_4H0^Ga>5A&q;!=3rO_mvbE)KUbtg202#*Bnnd zL@Ju$U!PlFa~W^&m9OG@{A%=0rW0{7;Lh?rommX+Myhi2l^#~0dIMOf7w%*HaLls} z+pevEM*roZ7jJiyb&#@of+9#_-{O5S{dchgMwz?Hs$kZ95e2flHv77c8(}-25X$wC z-PLj4D5o)ZTkAP7Wrh1mEw6KI*g51y-S_wPmFS|f5up0q-BsHzM=Vo_CZwlFBJ_sS z?vC;s?@uvE1svFuD!WtkhJ-HF@O5c~GghH4X?2#b#HycJ&GCaeY>x~O|2Mf;4I>AC zh{ZaN-(*cS7)%>6Xf5V})!!qv{iA@|drR(T+a?N;vvYm(%}28tHQ_ju zP4}f5JO43Dchzp)VG1<6G&mOp;5LP;qK5x|d3eHHezIJUmafslqLK9sL?P9ufHFyeN?rA|I`=3h8`m^^s5m`S8y=*|ei zUENuHQC{yDpWDd1LL7cPTKpD!zF5D)EE|ixs$@L1N+tM)&zq0awRElFU@9=v?tW_Q zWF>IUFkIKkLA(w1nzAaq{$OYDh=&*eqXkbLXas4CMenQVwBV(;d-r~->GC>lk2qYT zEPObbTJ5mJCa@O`ii~bBmG1wI?SWz-Mg~dn0QalR6>}!QSGAE)|C|0>JJ&GF#&2L4 zQNxX%1m2!L*U~X!9Fa@}=|@3Iy{ePPKn%3sBX$Rcs8Lf5@deH<&GiUj;=&n*X3!gq z(#ZLgNBx_P-s+Qu;GRl-%?|sI57(S03$W8=%iM*sdWjZOH@c5KH#e|;8_M0-A$V8+ z>jfZyI5jzeK@@a)YC0Z?t@|rHga?fpucc!SAH?_!{K3ZGsKtf6D{xsh9QjU7| zEL!dj&oiv@8rQ^>l+dqViClG5^4pND=XzF4aGlx>=$5@X^2bGRft!`VmwAY&XtZJP z&2^iXCmDxg>aJypL~Fw?3$q9eYne*t^jFOyW%Jv!)Kwyn&0{6WkH3-Z6S`>f9=Vvy~p2 z9Ab&`rb?%_Px&bO2i3IFK1h{vmwVsC=#2I&aj13cTDr7Q?33~!$*PIMJFj(EQG$$q z_)H8jaWw%!ey%3VFO|%&;tE~k3_g`P?~3~V_h+*o=bX3batVPY@;cY}dPK&3$Uma* zo;zaYfBG#faxVKFJqrl6L)03BeP13ZeX81mHa-7MOY)`-!&l8k&yQwq*v(`0DJm*h zED?m!D?jr3E?mk3(eoGk-beR#7+mx0>+l@A)}*nCr@Pa)`n0Y zR+{e#Pb(&gRw|?|3}oY>V}XM{(-hoexf)#O*Q>qrgImv0j%1ZctNuT^WH0qr>pKL@ zuvTfruZxZ0#%p4?&ku$~{5DWADdXsKCwA6}poUUExUkHOyq^r55V0o$r!uv)F-}(* z4!wyQs{=H=Hfr~DKL(!-`1Lfy0JBl3lFhC{e{j_IH`MMDFxa5v$=^dxwtww6?*-TB zdug41^3IHwPfYlS(hRZEtItZ(xvNIvI1|)?YeNQFxP$C%V(WY4^5;8?umV};n4cp4 zP8G?bgk4(&{RAyw1Jm|MKT@5!jrwR8KuAm_1rf0b+On3|@J^k0|Ef_&?$MnU_4D1c z6U}Uc*rIiGWI0tS7;MF^(1N35hO15=+GfV4KQeGj^s zF36!Bu{IvStT>n1TT&iH<6rz#7Qku4mV>YW8Of0wMP?mzoz^J__t7SM?AaK4o-!ba zUuV2p98w)b5?D6yX>g)ky>n!ULtyk#k%O)L`z`EYyy$FaN*1O*7Pu_7|89{VQe46) zI9O%uYRb?;73XdOzC0j*HVxtb!Xros)F2kthOp_5L0hW_VH^P*!8!hhw@Q3}lmA=N zAN25V2hxgx`{M%1H{7t7KO*?8I->FWR@aWesb^D9AE1F!&Z=4qg`g!4r#t&Z0qWUy zvV>ApWux>~y>i#d#pV>gH<#ycRWcR_gipmELhP&ho9wAV?IpVABjH@$fTs?Om6aaE z`!`FH!wA;v&o@)QTAQycok}AfN3tJGwDRr|bbi!E6n_?|w!l6ct1x_aaD}Q@{^BNZRKArRAD13-U0dkh z9$l;_fA;3wDOwpsd3*cu4T7uwxi4Nv%cWrKtH3FUAQX%bK=Nc^H^YV8gB*{s;~2=6 zu3ls$iPi}_vV~z)GGTNZVb0I%(a;)6Rbgm+#P4N8PT9Bd zQbeoXeq+1vcF;L3BoeLWrR~^oA(*2Hv;y`+H`bwE za_R1}9fo`o8&Yu!A`znf+2irw+Lf2`zLef*9?zcZt*52N#;S@ipONu|WN!;i|EjeP zix%rraF_j#FgEAwYlqeS?&pJ71EgU8E6`eT*@Q6%nHamq!+9dE{7+FU>9?+G1j`hL z2Y62OML+q&TnF&YL&UNJgZPQ;WjzcPjR%KdDqBzho)Xd;Yhw{Fc%LFRm4WFTciO5f z6yBW$7DUhRoCUn^W5VrcD>?e*e&cpxUyJ<4l@8|_p=00YPu9Gnxo_CcQ>hTe{8@Aj zoc~w{!(om~d9$hk_e{(jw<56|%nQEN({X(rHi#0%e$Iuj69rk(wpDov@s8-L+bQrwN~?cxdquKOlTZ1l@n1*y5H<;btlrStw9VO8Pyh&3i!uRO)q%6af` zS=kCyA;2G#MtX1ko^35VvQ_K@`5A{Z(EQ>Kpg|fN1af{!}7xhma zDbP^$+yoaK+!`I&4bBDfV0Z9eS%y^ZXm5ZUT9J`RpXBc;@?&fq()AVh(H=_H9qA~ z82}A#@79st0F`G_iL2fl#I-Y9m$8*TECkOT;tNExR08CeQOdYH=ubV816^Nf;WwizoPs*!JfH2SS5@Ht=Wvlgur`7(M z|9to}8O{ZgEP|Q?D2$3%B%)p}Q0-+!(X${yp)Ia1O1f7LoCdmFE||KxPsK|!Qj=1? zS~PfkjusA5Kk|S{k-qiKt z6Ue3fddHItydW*C`5gV2=(StqJ2&@&n_*=J=GZt`MJfwGh$L-UIy7DzZ*O)P(5wkv zhS)mQ2bjyezA6P!T<(qP^8yiY%#a%6pZy-;g#XKqfxitWmHQf>ROV>t*a~?vRU*}h z67-2+L7K6ke>uF7>?Xw+g48!46?3Zad5ZKW(gw02@nfUk3*_9zY<8z>G`F$>L4Y_V zKy6tFhfgq*NAExe3*^NmJ|p>5^N?p^?i&BgTUI}3p@Fm+UfO;@oV&E@L4Cyxn`){+ z1qc44G!z%vdyu#eemw{3xm1A@*n=!?T(;CM0)n{68j*m1Q_e!|Il;0B9cOw-$@f3M zH3(Yi%W(ZcpTK_)2(-{ay6Bw219|t7F3>^ABJ#V%E65Q;J^{PHA+;K#2M(Mg@+jSZ z9|9^U$e@CfEf9qb`7(nX-hVz8V0@!$SFZ=DN>xva8z?`>vw?Ra1^ftxIFk_Ym7fmb zjsJWyAngl+X`DS}xM>q_{zoBnHYBqY`JHIv|B;XwKsY_*X8(_H2FQhPGRi@|GC*(I ze;=MJ2(CB78JYI~Bm4h5Z3PJklfXJ?*x9i|P+u!_8)-mh6f#ODVV|b9eki2uU{+VMIxg}LjlE@`=JI%n-$o4$-hTeAGxh(tJrD^JTLnsk zO-5l{rv2+vYT|6i0N&x0mYNz`IvfLiX$w%oH?0@(KaQvB0TQXTJ^=u(|ATvnNa^!- z(fR)JAYt$nVl^5DfY)bJ+>G`Af0+=7|J#+9o}LatlUK52v;?r4>;PHUVa0V$c7Cht z`2SuT$gsrre|{O_%>fW$UNHcZ_zPqgS6?3Y#2vxL;H~nyv8XnNAYo8O{hvyKyaH)} zGz1SGAjPHhP-&9T^=$z3Hn5!Q4b=CA(EpJRL^k&or06BlnVSn$)p5`4_wwY9ztaxD z@FvT&tDxj+QU6CZgcgKo4#-8u+75-r*=jGMHOzJ+$JGUOiQd#^bi;PSF+H=74 z@%B7H?*;;@3b113!N5FBPJpPi6qT?rDFo})@99eW>!?|l=WaR#QFMCFhF9JQWaT_I zBN;fYXIWiOf!N8yruu1^T+R2jl4D>DA0eO0Oe*pYC*2ox>s(kJb z^~koZ$yRrJpQ{;dNWBh%8ykem9SE>aX@O-8T4YJ@(fn`Y& zz^^h8L&KKt+Hu-Q)wSye;CJsj{hlHg(zN(5o^IC4B2K`b;g44NZLxmfjPmtc-9GZR zYR%KnMsmarSB5+X$lZ&%sbbE;)-d%F;Z#AWGrT7`1xJPvE=1>H z1u&BTaoWsRCmW;=n!J05Ef-5ta3Crh2!*R+v|c+oC1q8btxQaItNUqxG)G7As+>K5j{S9{Y)_h~99gbqU9xad znfz$rwH}Db>98)*ZX14`B=HLpDG_PUj>WQmsD*Rh8`FIGz9&ny;ft`Hun5rDDly~~ z^{q<&RD*3S3L(*KZE)ZfidI)3XqrrJz0n;#GejE|SlGe|5;}lA!{E6IOW0x5@g=Mh zNYKLm(98HlLYbBM!Qg0qX`G1v|Fw7R;ZU_(TybQQ%h06c)?_DxPdZXkZVk;PQHF7u zbUPiBqLYwH$uyOb&@h}NNhX6(eKZ*pDc@H{Zha%URSI?ZXwp@=oV904{yG1gKhJaK z+0TCVGtcwx{qFVdwbt)l?|RqIz&@9qF6{}0a?KyDAK^CQP2PrC28rjpU%BxilCzvr zs1?`%@yKHT3C2Yg3fynR|GN^)wK*OIMcARBu%u}k3)ziLKm0ptC!C3(m1mis!_mml z)B%Zes^49*+%e-({7kIOxPYbz{Wx-7^!;^O8&mBTbaXrJbQw(3dNk7aqk$Z;#4iE! z(lXrFKmGm?o}cs6YAK;{tl7`vqpVlL#O3EBYU+a(FhOxP$%PSjFFR6U|Fcgp$q8~) zp4Mh277*Xc-0u1Y6psBkKvWB+-UBZFM@40_Z6;7z*SP6zVZ)|vl{M~EL;5wpI3VTT zdi1(N9#SLtNXj3yb?vq?lO@NFDbsx|u8Ix_ zRuBFL)-(yID(~&MLCeI>Qb0{+GBp1b<9dda^H>GtS;lGb`rnUwd3hZNMm0Z9*QP7( zJt(Ovkhad^M1cKodm}B-HDwKiS2PPYEnf4Xc^#kS*MEN1e!Oo915?zRK()Rz7nou1 zK?(-dTOajH8!~M%M?Md`1q5U!qEvn#NX+ib`N zLJ#}I?^NyfK2^eITLs>#Me}9s5A-{;MQUE7DYS&jVUapY&Sz1Q5z&gycQav#PvPZIB-j!!Xn&xQ02zAJmiy@OoH-*_(T0M~vJ3hFT!oEm| zzI1rN96A2>_A5hU8|zE5j18i`|!Awq%I_^O#|tfdo-- zbLv|6tR6}Y>d9l`@lTzE5yB9y#$wY$p!_D-ScDEfDMn4K56y?zi=#6x=VlCblzTfJ zTz!$^C0T=y4u-rDr-?7?+_ZO>0aVgp=(SzsxL3qap%%)?CtFdPW~#D#LI|= zE50G$4lCYqx(u*Yf$eFoue{sWu34fJ_K>w4B2^cJx|j3yrouQdVMAVNRE!IiWMZmP zH8w&WgSyQW8M)Av?6BgV!!F6(4HxW&%2)>{#zr9ph<}u*eZ~Y=V{y7}psiF3TNB%A zy4liR$c5=?QE6crt2zYFpqB;}hcl5`^v#Q)ln8wZ-=&``-bOZCH97Xa)d=Z!9f^07 z9edxf(yxqpE@5MaSv1Pf%ZMHSNZ?xKZqckITX@Q{lg=fci_pft))@uW6DBMJMpRtn zfE2^AhE))`Ut^;FRgUL9v{Oh0YMmI}B?2i+H*guNElgOHrdl`1BMEFd&l0Zd##ylF z#H+n(8G2+ZfBNsnjxqCm3%+n^-de;hib?aSjd3SOV zYO^SE4{yW-%lMbW-lxlW`m!g1`^;M`&9(3%gig<`-0T9huJgVCtfiIQG{{Qb|9HJ- za-EB99g?nAp2y7E|N8`oDsryaG}t#hXeAS=%=Sb=PsH32{jePN};xV(u!F11cK2*$R< z60SL}GHQs$XnfbQ-nd}w?{*5v5sC&kP8l=N_3cJAlIWClcDlO##=YDF`Mac&~~6*fOu|yusmAkvP2lbe;z(^8p99ys%!i5dw+;c(msO{<*vA1_Y9o zFj+)rfDYX z9soI0?-t#M8BkK1QBNki&=lXF;!IP9r-mGtm`{az0Hc*b7?$o(m4p1eJ7ig-QE>g7 zaLRP#^*x7(sZc-#)N)<{5-L^|WO1iq(Ep;#|L-O$f&V1U3FGYnZ)(Jl|0nDpfj2Rf>QD(p98Li}cVzz$jG^kRnA8ks76!02)Mk z7myZ+w9q3}`aiSQ`!3h_?Q5Uxqka9CXBv|Ej5(e;N4@XyTwhO<`t*g-QTCeY(?@pJdVkYAvB8Dgv zk%V{fwmtea#k507W=AQwozTgZTl&$)IJ=P0tl6ZXPW+h@4g;e@>F)TgnBz9sS?Ndy(e)g6;_xAR-JDT#6 zri=uLyE{O z=rOmHj_ydgPVhHBrH&Ft3A9Bq2`7jK{fsL8;Z-OSF0H`^YuHYn@E&&&bNt57B5rpE z%^Jp{`yY2%dKRaLJ!iqqK3ZHHoZ@M%r z8NnHJH#2a@^pT@uLg4PC$vd4?o(8||1T;HlcuHxjPgTsJkE@@$E-meX%+7b4Io7FP zPnYRE%>yB@GvA_^MUxc+_uF3HQoKAjHwQkllL-CWLD%SI%SD((7{>|Wu7(F4?YGx? zEkFG6<#|p{q2>i1Y#=s*dA1-wGoh%o?q)|v$E>~5LF(v{!ofe^1fw<8?TxYITZYAI8>{@A@EG0dzt=g@yAC8P?Y+W+{=Fl9-oXzCNHBpruUbT zuL5^QHE9&K^bI~94Q3tl4!+YBm#d4%Fa2z9rjgU3k;QR^l~h#?Kl^yo&0Y>Aje+NO zrHbdDsyvO%Twh&E2`?J`UP^@(e&Vneu{$KEmf7$Y@<3wyiLz;JTSZ(0e-cmBCH-yv zq+%xvlK@S>Yr4~DQqjccHhi*{xwI`_)%eEa{bdacuU+r`twr}Q^qOroZZlO381bHK zsy#9bY@;5%3g&c<^{t%26R$^OFav#NK_}bRCq{NXuSW+K5^w9pcZxPyXvDHDs-C-u zq{j-ATt!FWnLb(^K8nQezchMslO99XCy#rAAEPX&k1&bjdkz2b+`X0EC&iDKYf?@TW0-_((h4nURrlefHzaycH_js;9QEqai4Zqp~jRtJZW@a>Sn1c*h~X z9^<&nTWgc%J#y>v;_+xG^~q1pllz%01Bh|Iot4YwcHIeIziN~(kB`QahgWY(hT@ri z!pO1e@Tj{YYtriQ$=5fJ35XEfBI_%UiI6*faDxKSrV)@ZA%By+(<7`4Ak!5Pq} zwO%#u>NJLP{cu_goh~07UJdbvh=LusyER=#F9&Hb38=w^l|3CG;Uli+!JE!6ZaI1@ zc~ntZtoW#VZDmvP0y-Uu8tj(xbBKXbFJ7w~V8wb}e4a2IicdZVtEP>`kEwG|!anBm zpjsF@8x_#$f#k<`LI}!!4U~N?5d{mw`*C88LD0QAzqf?$ovWl(6!q&XwDf-QGuMZ| zj+4C%8iKcL#Wcx5QOCB!rY#WIU0?4jtl`qdDfE~R8xN%>HHomRio?fKl-O;hW;6>I z>i*nw{5;RCaB1eN;_VC|!q+B}{LT%&oudwK?l_C>R?mdML>|~BT;vMDClfh-P~}10 zSC7I!O}d0mkCLaySbXW?)mA3L3KM_3hfsqzM>1il1qti<@}QD!tPT^}ekd_1;d&^Z zuN($Pu4~41fg~aI%`W~c1c`X#WhjPbH6}b_1E{a{Fl*!)3hweV?070ly-~L0SI|~l zG_b8KezdS?yx;i?;L8pzy-%wp&h>W9aX^rBo;=vqrk7eL@s_lW`_T9y&M4k<7<3%n z+P)pO;#W5;2uiRKpSM>D^N4_3!24S|`jtgJLNF}bwx z+9P(Q@n9_@*7};3s%qG4AB?ZC(m*c6#KJ9NYjxbjt~XOydeZad-sJO3nfzz@bY4hL z1>AOYbbN?x*h%0#oTixfDKaieV0EogQQXHtStJ}@>`m@(FPq0o9R6T#da;ldY$fF~ z#yfR5FFj{IwV#Z2JKkI9WcQiiCM7@fVsCSyv!og$K)8{>lD?(Mgi;sK&pQx-)A@mL zI#=#Vf%AG5ib~$>x`){P*~5ZNEE0QZP-ef z2tGM-U&!$3Al%Kjo1aK&6A6Y_r195-%}wAJD(ErRC;KDrBbGilnu3mIhfJ)KS~>i6 zTv0#2inPMwR_fOq1*<3AqvG`y2K4z+nrv?2uRRBDxF7y(Wpx|ctj*5~stZ`uwkCLq zjxMbA@tk$^A@EkC@4Q`dH%jFiO{@beB_t(NrwVXOJs)p2U^Wp-hi_i{&ZlbNUas(0 zOEZU$Y&2zLBUHi7VE*^b=uw8h5;h+$3#;?pv@6&4n+n`z*&DJnXKcX9u2u}r=0u4k zSbC4PtmG`kBG-a4AEPP7f)0O4UGYSiwCX?qrhR~e*X8cxa^t*ZgO)$v(Wpe;tht#V z>EMJ7#Jxf2DEKY97O(Mg2K~aie>2cb^1*3>)8BoZ#H&=Pj=^h zWPKRtfeSTFMBFTmJbXqEojsU3X{`K2Z{@`AafJ?Cx;BC-;X&25oyAtNd61)vP96ns z%(e@kHR!M3=n$MEc+$wo)8#f7EP=0knH#5Q_BDoegeM7x`uQ|oO<}BW-w-ycdovZfkz;4AlD2S>;U>$n8*Nba^^tlX*rroP z*3Ht>$k?K$lMa){fpbz>tg_0!=EDt^X{`7JLv(@*FSvJW;UE0AGo()e082k zpuOo}a(y<t2jyUw|Bhhea;m`8h zn(*eEtp9$?vEe?SwBm__N4BSn6wjG%8~mWn#O;$;@G}yJSKoQ4%0{@2M*rglFkl`a zbbs}uTQE;|c7T`Kx%*U!0UZ9X|33ViKVGRZHCP;G=h85Z%6!$NXI2tZxTyvlApLhP z1aO*>jK9UGeU^G78C0XpN#1{^d5(X|DE!;odC-f$6e0$~km-l9Gl1Wi{T61P$BxgG z1Qfm~v&rRn!EY*li_op!rBg-*%4Q78)ZSX)Hx2~rsRs9mzl3&@o*z;2wZ#0|ipil+ zxQ8cppMKF4$gkQ@+V^H0)Z!*%CuUfAP#lO6y~W=vRU|?b}ih zGEF^|WFLZXp*yxA*hd3?)LC2}`9B_{1xIYN@HOw#EW6|LoL+SdcxhiOz*imPrbJ+O zABMf1xwLBX&^J{|6F9u}(QbOHUXtY;i{E=3i;-c#)M%c|fzm;clWcW165-Wy{0Mj2 zaOp(e^o7vhr>_30JvS;QCPvKdhg$vFQL(hOZ+t9S?3jcvpR<7$;0-aQlj#2;n^5>J zuxIhKN{9Me%YAQD=bliBT(RCxlZIsif2lcKVt%O^LHi0s!6v|h@QF75%8~#1<*b;; zyw0dyy31@R1;>lI&R3n^3T{`ER zxj&6w7-hq1=a>jSdg5_2wV3;?7W6{|dfb$qR$=P}a9Hi_m$HPAO~-Zdn+CZW?dr^y zyqtks@m(obRoCj4Me4atFHmDE$;6nOfdy!Z{$KB+Gg(;tLD2{(8+VH=f~3uU)+BGM zOZ;SK2QjE8*WETNQoq6@DJiLOm*UL%d%RwUzka&hdtc)%aSZe$niaHP@Y?Mw%e$%I zqmkhDhFy%)!+L!m9j@|z_Ra97`N3Z35-8;1_s<9)d}caf2W(yr^y*u z5zQ*ybGR~W4od>LS2LuH!^I)600`K)#;deD;W2=;RvL5xo^0NqapXF7C}Spe={v0H zDB4*G82XKd^}t(eH8V8jo5fQnOD0VTVYG_h58ZxVhg<5j45iUonY_GV%#2QtPPcC; zXwbkkQRDmK!TuXbDVYK+xoFNT zyHP6KbQ>}Zy*@$>p_OuUNu1K|)VVTs!Y<#3~M{@JU7*M;A(q8+muGr1q;A4+^ zVpBG7upr{U-q2w_@M!##V<0C}%IT~!KBvPPACZ|vY@?|}oqe^N1(B!+827%uzI#FM zo)m5r)xTeFI%%{3zJ)yG=Ei!^u3YVWn$s8rWntnm5e)4!vl?c0isc1z| zo$xEWQxK$XT2E{QUY1oi2Tg}j`;H?cR)L$6{RAfbr|DiF19qD`@0%nKs(@Zrk_f$g zhwa=9J#qL*?gueZMr^k{Nzo}Tl(Ac#?0NLEqgeaWb@)rSTxM|UhLr<=QwcCutWbjo zYF+k)#2iCpB#xHNTb)KG*9t$X*y+fbeM+|xKo7A z3tbjyrer123e#J08s4;oqSG(DxlPK2(rZz<$^lfPa9VKFkRHT3eaO<+y0%u4l*95CEd5HIIP@XNh#yXDj8cJoz~@%PZe@g^ zE)7+3NwTDuu6er?Z*>dV5OP75McnhgHlf>Q-pG0Nac%VbU!FzS9m9{SwkFO|1t#N- z<(?Jq&uEU29Qj*rPHivj@8Z&`9oD}$YmyXO8^sC=N@57$=Dejz?5E2IIdqn_? zf(3}GYDUMhSkO*ckCLIX{3!NzXY86Y+rwsxL)|;jP@@~{;>D)UUYER)!c(m*qTy1U zBWIE?N+#I}AOrh^K2s%2MwJDX2-D$q=2_bx&xKGAG{Iipp>at3Oe&={x|4qW(@ZxT zofRx6N52)6CSp(h@RWfd2Y;Tkw2-EPd3JHh>gn@;Y+31wWgSA17Ht&%Fyk+qq4Ktm znpdHC{uchc<7dZBC|aOBgT3gP+TFMtxY)wGL0ABod0@_^DlM5vkk768F0K8QLC zO7UpVd;Fbf)`mPThOuGmnXYTH6mmH^z6dEA01eFM3Ja zIrX2R6w+r+2tXZ=VKoUceg&Dn0J!V|>zhyNIGG;FD@hJ0-4m+9x?i%09yA ziJUCdqJ~P|U0-1#)P_qFZljz-NjAm}Fh4>+K!atb+`T5R(WL6lqugSP1~Z!CM(bhN zpk|@e)ZkpbExj2+bvs*Pl2U4;-ZOD;3{!hgf#kk-FoiUPWFqK21W6H3^?8>TJ|zFs5tPOM$K)Vjg`IgL6}Z7d2wf=*Jq$)b{7QekSe z;fv|iIf&2S-)!@FBTu_DP)%Tb?=enKYJ77e%i%H&A1Sic`$z*c%YM3f&yddQ5_Eul zyyr`mSAW?4Fu0oAVl}(=8%cRowl;At4=2C9>zWc?=Cz1iGA2QaOw`YvS92nc?IBv1 zsIl^9w|X^>n5M(HS|&^gae-s3d_Orr00L{L_wf!J@`@=#uY8kAiK`zP@musAk1eGq zO=f*QglN$?bNCH~E(*p{@JYBZ?b+OlFYD$RbQI5El}0H0lVt|xcd!LJtV7g14^@0Z zHn)h_(49?;5MI!s;+skCwSvH^=P+ij=A4@RLc9#)><2?_*+G(qqtzN6ex5>T;Xrzf zYv)VWyi0T$#6hl6WXwVO8Wjgc8};M(Z55@%r}%f)+R-m=0f7}gZb>qP}r`seDWd3JcLn*Y=se_F%@`6&+lj>Z`RW@x0;c9^zb9T)S29#*0Fdmz0%E~^$ z(7nJQl_6us#Y>-8Wdjthn0)_jOfCs!-g&7pvebvp?PHTvZCPysMIq-l4#R zUO(OVEd=kKddE}#etUl3JhGgQi|Xic4eQGHciSW(tB zrsdGGwY%gHn2-KE2MxXc-cT-W-RAiI1X6KjzF8FpL8?+k8lr%`@MARj+QNfkFnMg` zx@~k%&Pb^DnuIrek~*ZLjF&FsU}(}hi^ES9UTz^dF>Vjk+PmoGvnq2AlTB8=?ROth zU4L@QO-Yjym*1#Re-AZ!gJka0XGd6)M6lm6pX&w~KkxkAy z6Uz68QcW8=oPMmLmD>&GH)AlruDCxA^PPe*fr85^uQe7D(4h-ISMNjb7meiqwOK6^Zw6 z-mV|0!#6(;r{o2K{RY0n#^T=KzxvXaHuC9M(@NF3KOd(}9knuD!H@BEz-4&o6t>TYnMqmk}*P*oYq4=*dVXTy;9!SdNwYf07x3t?D zGk+-VP4$T4_xf&xB`(n@Xd4$6^kaNFlDdGO3sr#cmuUswkPTtI^^N@;2Hax9hPh{G z`%3E7pgvV>eu~UC$3zb4hY4bA<(Wh*SDy}--xQJ~(4pa=$UfL8$mfEEXgv+`C2?R{ zBpUQBBci_2IS_2)`5$K=E5ma)t2JDmSRd*J+NAG$c#um6xvy5M!3P=MDv{Ok>i-(1 zV4OzZ@*nK!|4ETFO`o)FdHM=^{G$5>&iRSDiI93>&R<5rY{xtVb%o^Jxt#dZ^ZtKhQK%7hreaW*CB`j*KP_y+gM3 zD~x^`U~Qh{<&LiqEl>9&tk0A>Bwl2lZ_n9RYKx$-;y>G}qvHjWRpq(`R4JdA;a$oU zZsOzOw9IPm?K1LBvdVwWSbGT3Nxp4>5aZ?LzRkX};0mFFj&*cWa|r#;gl9Xm$LZ_ErA_ZZ*rapa=3-QR}kWJa_STH~-5F zRw!gS`D*NO&|tfLj=M0dB>U~Kx`Xjikq>%yYU-ja2L0xR8tZ)cN z&=J}j(&VEuNcu1=)V3{hJ>)td_fa2qyEBvac9>_{hs_{<9=5lxhscJg9r4{JuV; zIGU?TyAyg}&n!>ze2za4Z7v3#EM>UO+rZVzk&YMKst*U=-q<)kSnmY5qgeoEN-ira zJKu2RxB+5J-|kmde}`t>hV}PGFUUMtoe_J~-8(1B>J!f_y*jw~WvjSkt#8dC_9D)8 zm7Ig$!{ss;s`TP@1v)KtFaW`3BC@KVP5~#ueA#)d;s&2i3KyuAe%M+W9jwSC^guy()X>Oi?)uZ`PS>!d zBRW%B4)qss{?_oDBFjHR=rK*sO+}*xLzZJf3h6$MMvgL(eT?depg6qjIr2Q^Y)`T+ z3-Hwaw2D)m8roZxRgJe+ST(N~v*%dOyx$yYJ(Jw<6m*=Up3>o52~vD9DZb0Skm+A4 z4+{6f!uFu&4q!{}6K<_uK32x-)tfE1s#svZLgwaIDg0tss`|7_tc>crUcI3jZtH=4 zdv*rKFzS^%WOiPN6f8&HS9_6c0-7z?3}WS!jQfmOoPWt3pGfm2xta!+XjV!6Am4rX zE}y14-FFb|uRgeZ$Hb&_?v=HO$9&hLN4}uT8MStp2^!v3qHnd}S@H+YqfXz^r3)KN zJ3PHo>+T+>)Uut++bYIF_`ci$aBf4oXWo%edaJUs0mx6A;NvtdR32APiWDeITJ{|t zZuZ)CBwn7^QuXXklhh`sVdDqYUsShHU7%2S^>}=}uWI;6x5fL@B(d~;8PhmOI7j@m z9!jPCd2R^O#?(O1oS>qj2b=TV?p;?~+d$p_QsBXkWC>{X8_N862A$0gquKD&t@L^O z2DMo^gxETkh9Fsgz_uUNz&Xoe%FyVV!$c z?1od6sCSKfC%azWADhP+xr4GK!DZ1P5x4J21kG!YaFwZnY)!WLo(#bT|J~UB@kzec zlS8B1uN#e5CT%TGF0D$@mTWr)wWQqq7+L1qeSW>yOBz3%#Em+BsGdisrJ@|ib7y&+ zwF=_G`_au-s%{%kyq`HWFD->T2+CdGrl#Frv*s|{Y;7T*Hzo`1-<>+8JyLPLGw0}Ma7@F}m zLj{r#D0pW(-Nv%qEF=#+6&+?V8$ z1TXa$QwIRBv(0_c#L;>C^VvFawuXG4mND{24io&^#*$6V)wzOW^u~Ke^q7xR0*Y{+ zq5yhKahr!Vd3xV&3lNzJaO9(NspsTzAn4zUhui#D2Y?cNkQ zvJ;9Hv7@$Z@mw3>_T@w(b3^S^?5n?>7;ZR59oB|B&Wx5 zVSv!XUYF5zti^JlIWW*{d=P3bVPrw7>YPg0i-WlWDfrHRwP^}u*PHwz|fp9sU^KgjjJ zj(&=t=XH3uC`PQ{BM0lh>$@5@Z#l7pd3MD?IV`%^`9(*hMgiu^EvBIp6%l#-_0(&2 zIi0t2r6AYTiLhP*G_6sW-{7mHJtnD#DR9Q$q|Q^iu4{!Wp3f&?yK$xdlX@{XfR){q zhzMaP>8DxqSie&#SYxXo)ef>NLz#PF(QL&z=1oH})}=wF^T?Dq{Mhp_19woh?>6{e zkU!Rq9=B?!JIlt7_*GnGHT+Gw@(~l|hafdEl8GBj5ZF>M!x^H`QV33SyRpgv_8i1v zd*d4zT@6A6w;ZDAaso5MD$rp{pKba>DnKe|Yy0KWbO^pm#M{do`fdrW}&%@u`;iUU+r-39(zfJ|#|M&4Vf} zj{p5^l_H{kFx&4rna|^vr+3cNfdU5ZwGA*7vCX1>OB@iGzei-O3Q**N!siGQRA=@@ zb(^16r08WA&vTgy#0pUdhfmx#Cgf(u18TxJZhv?A;#VGa;FCmcSarnbbP9?Z))&+7 z0U5OnmHd#W0wZSFW9?=Lh-%Jbb+>y%d-kB&nv5L&n@+2ZB0^&=lU`r;MS8LCxDohw zZ#1XmL9V#@I_RSZtr~p%>~uuuh_@ekjp-9oe+Ug$c*mM()k8};P5>yyggNL&p_70) z1ZO&7i9kxzrmrdnGz?iz^jv|WWGupUMo)uy_w?7-XBgh&ncgukoOygj?h^#2cZ?P5 zegHYwXrvM+SX{6^IG`X~2w))QO(Ml9{%;>e{ZBc1L-AD_3>8FBRLe0{c3?Ky>8Y55 zi6=kJyA74L?pI^I=HHZ8(7qo1gustwx1IL|N$UL7?YAC1Z}8;8;Bf=Nlv`9GARHde zg|Q9H58W52^^Y?X%~Om^Cj*_H@C$)lTu<<2rwK{&_=m`P(v?|%;3j`LWhJZ7;Z}}n z{5VW}-0C;wT^Zg(U<{61AbaV&!2gs81b`*iNGvcOmYtg1w8*<6Nk@)#Y}LHfbeM#D zw))i&HJEW9qW84YoRA+*$C}gbVCa4xkS;kv#0H@g!VWB4rGj+0G<|=mRoJ^Q4O%qy zk_l99rzHNkVfbR5i9rS(Cg*YgcUls2CC{pDgt8jvOi@Dp!82JUzHfy$38@(W7%>Q{ zNx9*-NzhIg3qb%{_SUYU_=@#12xZ6PWJShZ!_F*K7usH`;bn-%o3+1GDFf+eYv5{F zL*BNkeSbRR*I2WKFRJ#B9&w`{Q4S~}L1>8L%X)|*Y}In7--fPpM5-+zshjip;V8kL zIv%v^lw7Q_?)6%XRRvDcPL8U8>XAE3W!{xTy2Q>#+jOn}sLa*TRnt=wrQjNwB(!)EQ;m`oEU0Buz+e2b!O5 zUsB~N;|j&wsbu&+1;(A4yJann6g_VFcD&)%8#3hGaiQi_cEmGTO&$x3HfO>?MF|9o zN}X@-uIJ09O}XxjX9XqghA>1UA7q?34B)FFMdH<#N6?fW4x`dKzH8Wg03wgB+><&g*NkK_Q~(? zgVyYODQCSC((YaXsSpqF%Icmt&QEgAE6{k7BA>8);0RSd;GPIZ1E?ssTB z?7Svy?U>@?Y9i?u)H$+YpS_xa5`ZX0#y^D(;52*e&3|sLG z@)OG0+kRvoJmf>Ue&^>SI_DI%MTnaHW9Vm>qwG|S=_!-A%Q%|STkBti*(U3QJ_S!xZ*uw4P-WVy_%hwKG_iqb`(oH#hxA{5gh&AI*C9TsK!=B)B>W z&wwG0>Fq!yuYw-8ZLq~{dkm-Z!@GI#(W%DaVV}Uvvj2oaYS!CU5t{q~${H~)l(?@B&t2fA z(|sPZdK|n+U42MrHLk`YDoVH(ye>AGgnVl)`o1Z=KJ6~=my$RghbG@BWACAcx!wNK z$Golm&0Z05Uq4dhVvWgo3M@Z3Cl(hh3;LbAf1`U^igQK(dqMEJ#^v?$k8=(r?&f3a z5%}a}(OiT!(7d$yfw(GsRlM8%3rHrf-44v3UilE|R-s+I@O;YBnAILK$T!A4ybir8 za_)!x+WBQwn<2@hr?)D^Su;vjanUZ^kB^>Vjsw%WN?lGAS-VI6uCux*F<$Z3mk?YukN<5p52#>c!gM){2L)xd*=~G1E>6k#fwPLRkEF`0sl2ASY6%xqU(O}# zk1ZZPuW)5}|KOT4v_N=$Q@VDw_Q=kPl8M4fx)M|uC?%>X0cC{M;_b!PbZGPIH7sXV z3-DjL8QHV?stEPqwtn+VIqOlQS7SYT(Ux=9R%a>}al{|41)5hcj+poMOEvlF^$sl! zHLYuuI~6@iAE9;ELW^}OLSV^Twbi}ga%BxJuZ_`T*7&T(4o(T7T0#bM&#nuZ4-Q;p zczC3OU32@Eor1te7UZT>&1g_h6z-+mpEJaiBlb*vksLX}aiyD92f<~fZW%fpa;6=P z`o>)@4$EA?MSa%iZ>Iuwl=-TRAuoDai!QlC87>^^%<=BA$>{JWfsg)-ZB7YpMI40y zbr9lFL5p5?xbnN20|3+fXQ=YH02r!HiHrc8Z@Kdf&!ievMfZypRPu-ZzzhB$E&hN` z{@`!^K#|Vq>ii@kI2ehlYmS zM{QrV$7^z2227M^qkb_+f?J3Fy(mt|puw!($xN ztV?f&X#Qw&0qqo*M+N0ZiM&;&Rs^!|z zKW1d}=X)T3l~&Gcgfct}m+o7f^EPAVfWOgU6Te!$Y5#+cKN+O#WLLwPvBD2(e+`}^ z0P4w-cu!+l}_$~+1} z0*LQSy8j*45E23fnYHGV>@&Y-5rqyAIMdBZ2LF7Ch>Q*N%4HeIZ2vp00nBVEsI7$NPV+PuM#<4%>}h{e2??y$&t7qhk)oFe1u6A1-Vs5$|Yh98hkQVs#F<_QB>CsYdPoaq$VX^4gY zYNgo2Ho8=aM+qpvgc7s)dZrf4$;c}%KBGq$5)ww1mX1_DFsd9Oq>!2VY|&hFNo$h5|C@4-V0Eb zHy?+EC@z+q+}Hv%@0X2%2WdGX|7x7N=V}##(=m1t;5e>;H|tFpUiIw8z4@+GLj!~R zu~%^B7q*@?Pt0j~>4{Wxpd-R@0th5#5-jKtH20>k{BuY{Ex;!p>`E^Y|D2&e-}%2- zKc84hf{!<|2m@>q2op5Y)6ALu=2PuEC@;O{I>FPPOs}%>vjO9z>;SA@AA_wTUE8xy z*2f#ngiAdKDE-@0tBfycLo$%;Q0%!zzw@J4MKodV`vIV1U+&>Xh z+^uB}`^!)(%LC&juUGMeh)iv^y6LE7v?Zn#&^|Y_)&M{B0kmETFwEw_+?T6O!x=pU zhCBGT44|vudPtbR5WJrsoB#_x7#BVwP&HE({Hxvzt=BD=y0>v7+C+o*I+LN)fW%4| zM$k?rin_N?pgFI7-B}#e^wiwDq_p>(Kur}85a?PDKAhp~{1i$$w^H8g`f>yiA8o%5 z`%?oP4~^W)6`5btVRH%EBJsUSCl+7;gZ)14aBEjKj@de(zXDlYEKy%J(;5e3*##U= zXBHTk$&v`3r@w>ohl#J_w8A<{jsplY9l)|f_ zbzEIE(;}#WZRer|uSfoE7aO-e35kGp{%iNh_({TkR!^^YBni%aWrZcuLp9DX9v$yC ziH=zLm#hHeSmrz`wujkmyhLEIvU&EYY<#BRY?BZrBRx^&n zeYvE%12F#Wd5uJm>LaIZUs>`A^a`}@=bIp{%)9UUxOtsX;6wpxY5PE)c8q*1yPPp5 zaM!YSYe0K^1>bnM(OK3hQs0)X5;m)JvZ)kvPZ3NC+K3PhPyrOxOF-cnhj@fi;#Hfk zT3%k2(QGmUS{}S8fkA;;!W4n~Z#Nxp!R2hW@|BKmxHcVmZ)&z0CkynOiT*tj@o%=8 zx;8M(A)mHKtYNbrOWz9S^H*2#L34uE@qlSuoA)ZRaBW~o54o0oynb?wwD1}-5^f3x zgBa9&^o-!?X=zJPgz~*6sWpR{pFzl?qT#ZkN_;ubc{6SN`0Omn@SwBCs0K3 z)UU77W;K>>EsSMg+Cs|7tP=38gfSyJnew%ByLCl{3Hj)v`ga1I0s#>tV6sCDUY+3( z&}Z9EF2f&8=|cI@MwQ~UVh2cKEu}ADYvKr@Me(*L&%^?RY0euiIDr`cV`;B z(*k-cg{Rp$yXjMh8ek^SD7T-&RADQ%r+xL~>Y4@`z*Dx94^-C8GxB*b4hA}`od6YI z)x5N&6}E=w07Eh~@J4VitGe{!dQ^!hqZQ-BNlIhmy5^$bks<}`YIJ-iw{d&p-h6s@ z?Ssk5q0NrE&hG!Ma=NS6>s%*gQ^9-`WBEw1hD?&#~@Wq3$~b)Y})F@akec(gGoR|?_x2TEEr-p4Rp};v856XRMwj_<1`#Zv}FeEKPvAm z(j+x5F|+md-wwSJnBqF_QZ1QaX>4q_R#cA`*z@!J0T}HPU<(#1oGG^#M-&PCaG9|; z^>q=jM|~csF^vPKqn0)NQjMRE>Os-0qi&lkx6vX{m~1!u$%cK^tbjch%cY?Xq$M*<~fW!z1t1 zUkw-6Hfh9;5aKhWynUeAs$#q2~)B(EkpAPy}2uArBCu@7rZx2GHVh{;m76 zfx90XYkB+}dIwz2lN0$Yb>b% literal 0 HcmV?d00001 From b75826720aae227412aa43e02e3087fec2174155 Mon Sep 17 00:00:00 2001 From: Farkites Date: Tue, 12 Mar 2024 08:37:28 +0000 Subject: [PATCH 18/48] Fix zindex_violin_box mock --- test/image/mocks/zindex_violin_box.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test/image/mocks/zindex_violin_box.json b/test/image/mocks/zindex_violin_box.json index bf4b3efdc50..9996a8e1fa0 100644 --- a/test/image/mocks/zindex_violin_box.json +++ b/test/image/mocks/zindex_violin_box.json @@ -1,10 +1,8 @@ { "data": [ - { "type": "violin", "name": "violin", - "y": 1, "fillcolor": "yellow", "x": [ 0.1, 0.3, 0.1, 0.9, 0.6, 0.6, @@ -14,13 +12,11 @@ { "type": "box", "name": "box no zindex", - "x": 1, "y": [-1, 1] }, { "type": "box", "name": "box below", - "x": 2, "y": [-1, 1], "zindex": -100 } From e36884950921dcc62b77c2cc5f6e2fe8266e2d24 Mon Sep 17 00:00:00 2001 From: Farkites Date: Tue, 12 Mar 2024 09:05:22 +0000 Subject: [PATCH 19/48] Add draftlog --- draftlogs/6918_add.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 draftlogs/6918_add.md diff --git a/draftlogs/6918_add.md b/draftlogs/6918_add.md new file mode 100644 index 00000000000..cc35a0e3802 --- /dev/null +++ b/draftlogs/6918_add.md @@ -0,0 +1 @@ +- Add a new attribute `zindex` to Cartesian traces. Traces with higher `zindex` values are drawn in front of traces with lower `zindex` values. This feature was anonymously sponsored: thank you to our sponsor! \ No newline at end of file From 85edbdf11744185f7490518044080cfeea15eec5 Mon Sep 17 00:00:00 2001 From: Farkites Date: Tue, 12 Mar 2024 13:39:16 +0000 Subject: [PATCH 20/48] Define zindex in scatter attributes --- src/traces/box/attributes.js | 11 +---------- src/traces/candlestick/attributes.js | 12 ++---------- src/traces/carpet/attributes.js | 14 ++++---------- src/traces/contour/attributes.js | 11 +---------- src/traces/contourcarpet/attributes.js | 12 ++---------- src/traces/funnel/attributes.js | 12 ++---------- src/traces/heatmap/attributes.js | 11 +---------- src/traces/image/attributes.js | 12 ++---------- src/traces/ohlc/attributes.js | 11 +---------- src/traces/scattercarpet/attributes.js | 11 +---------- src/traces/violin/attributes.js | 12 ++---------- src/traces/waterfall/attributes.js | 12 ++---------- 12 files changed, 21 insertions(+), 120 deletions(-) diff --git a/src/traces/box/attributes.js b/src/traces/box/attributes.js index ca3e6bc450a..bee1699b049 100644 --- a/src/traces/box/attributes.js +++ b/src/traces/box/attributes.js @@ -452,14 +452,5 @@ module.exports = { 'or sample points or both?' ].join(' ') }, - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') - } + zindex: scatterAttrs.zindex }; diff --git a/src/traces/candlestick/attributes.js b/src/traces/candlestick/attributes.js index 8c3c9421b0c..57071577683 100644 --- a/src/traces/candlestick/attributes.js +++ b/src/traces/candlestick/attributes.js @@ -4,6 +4,7 @@ var extendFlat = require('../../lib').extendFlat; var axisHoverFormat = require('../../plots/cartesian/axis_format_attributes').axisHoverFormat; var OHLCattrs = require('../ohlc/attributes'); var boxAttrs = require('../box/attributes'); +var scatterAttrs = require('../scatter/attributes'); function directionAttrs(lineColorDefault) { return { @@ -53,14 +54,5 @@ module.exports = { whiskerwidth: extendFlat({}, boxAttrs.whiskerwidth, { dflt: 0 }), hoverlabel: OHLCattrs.hoverlabel, - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') - } + zindex: scatterAttrs.zindex }; diff --git a/src/traces/carpet/attributes.js b/src/traces/carpet/attributes.js index 799bf7be498..11b668f986e 100644 --- a/src/traces/carpet/attributes.js +++ b/src/traces/carpet/attributes.js @@ -8,6 +8,9 @@ var carpetFont = fontAttrs({ editType: 'calc', description: 'The default font used for axis & tick labels on this carpet' }); + +var scatterAttrs = require('../scatter/attributes'); + // TODO: inherit from global font carpetFont.family.dflt = '"Open Sans", verdana, arial, sans-serif'; carpetFont.size.dflt = 12; @@ -113,14 +116,5 @@ module.exports = { ].join(' ') }, transforms: undefined, - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') - } + zindex: scatterAttrs.zindex }; diff --git a/src/traces/contour/attributes.js b/src/traces/contour/attributes.js index 33f35c7b5a4..6f408adce97 100644 --- a/src/traces/contour/attributes.js +++ b/src/traces/contour/attributes.js @@ -266,16 +266,7 @@ module.exports = extendFlat({ }), editType: 'plot' }, - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') - } + zindex: scatterAttrs.zindex }, colorScaleAttrs('', { cLetter: 'z', diff --git a/src/traces/contourcarpet/attributes.js b/src/traces/contourcarpet/attributes.js index 66d2b6be563..e0e255e3ee5 100644 --- a/src/traces/contourcarpet/attributes.js +++ b/src/traces/contourcarpet/attributes.js @@ -2,6 +2,7 @@ var heatmapAttrs = require('../heatmap/attributes'); var contourAttrs = require('../contour/attributes'); +var scatterAttrs = require('../scatter/attributes'); var colorScaleAttrs = require('../../components/colorscale/attributes'); var extendFlat = require('../../lib/extend').extendFlat; @@ -71,16 +72,7 @@ module.exports = extendFlat({ }, transforms: undefined, - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') - } + zindex: scatterAttrs.zindex }, colorScaleAttrs('', { diff --git a/src/traces/funnel/attributes.js b/src/traces/funnel/attributes.js index 5047f52e231..530653119db 100644 --- a/src/traces/funnel/attributes.js +++ b/src/traces/funnel/attributes.js @@ -1,6 +1,7 @@ 'use strict'; var barAttrs = require('../bar/attributes'); +var scatterAttrs = require('../scatter/attributes'); var lineAttrs = require('../scatter/attributes').line; var baseAttrs = require('../../plots/attributes'); var axisHoverFormat = require('../../plots/cartesian/axis_format_attributes').axisHoverFormat; @@ -110,16 +111,7 @@ module.exports = { offsetgroup: barAttrs.offsetgroup, alignmentgroup: barAttrs.alignmentgroup, - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') - } + zindex: scatterAttrs.zindex }; function funnelMarker() { diff --git a/src/traces/heatmap/attributes.js b/src/traces/heatmap/attributes.js index 337fbe01a59..cbc00ff3692 100644 --- a/src/traces/heatmap/attributes.js +++ b/src/traces/heatmap/attributes.js @@ -133,16 +133,7 @@ module.exports = extendFlat({ }), showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false}), - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') - } + zindex: scatterAttrs.zindex }, { transforms: undefined }, diff --git a/src/traces/image/attributes.js b/src/traces/image/attributes.js index 1a6a50a9bab..72bbe184df3 100644 --- a/src/traces/image/attributes.js +++ b/src/traces/image/attributes.js @@ -1,6 +1,7 @@ 'use strict'; var baseAttrs = require('../../plots/attributes'); +var scatterAttrs = require('../scatter/attributes'); var hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs; var extendFlat = require('../../lib/extend').extendFlat; var colormodel = require('./constants').colormodel; @@ -134,14 +135,5 @@ module.exports = extendFlat({ }), transforms: undefined, - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') - } + zindex: scatterAttrs.zindex }); diff --git a/src/traces/ohlc/attributes.js b/src/traces/ohlc/attributes.js index e703bf29cec..594f8694e69 100644 --- a/src/traces/ohlc/attributes.js +++ b/src/traces/ohlc/attributes.js @@ -134,14 +134,5 @@ module.exports = { } }), - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') - } + zindex: scatterAttrs.zindex }; diff --git a/src/traces/scattercarpet/attributes.js b/src/traces/scattercarpet/attributes.js index f5659f1d21f..a0d1edded84 100644 --- a/src/traces/scattercarpet/attributes.js +++ b/src/traces/scattercarpet/attributes.js @@ -119,14 +119,5 @@ module.exports = { }), hoveron: scatterAttrs.hoveron, hovertemplate: hovertemplateAttrs(), - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') - } + zindex: scatterAttrs.zindex }; diff --git a/src/traces/violin/attributes.js b/src/traces/violin/attributes.js index 59aefe9f4bb..61bbed429fd 100644 --- a/src/traces/violin/attributes.js +++ b/src/traces/violin/attributes.js @@ -1,6 +1,7 @@ 'use strict'; var boxAttrs = require('../box/attributes'); +var scatterAttrs = require('../scatter/attributes'); var extendFlat = require('../../lib/extend').extendFlat; var axisHoverFormat = require('../../plots/cartesian/axis_format_attributes').axisHoverFormat; @@ -255,14 +256,5 @@ module.exports = { 'or sample points or the kernel density estimate or any combination of them?' ].join(' ') }, - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') - } + zindex: scatterAttrs.zindex }; diff --git a/src/traces/waterfall/attributes.js b/src/traces/waterfall/attributes.js index 79db8b03106..ac4666fb502 100644 --- a/src/traces/waterfall/attributes.js +++ b/src/traces/waterfall/attributes.js @@ -1,6 +1,7 @@ 'use strict'; var barAttrs = require('../bar/attributes'); +var scatterAttrs = require('../scatter/attributes'); var lineAttrs = require('../scatter/attributes').line; var baseAttrs = require('../../plots/attributes'); var axisHoverFormat = require('../../plots/cartesian/axis_format_attributes').axisHoverFormat; @@ -152,14 +153,5 @@ module.exports = { offsetgroup: barAttrs.offsetgroup, alignmentgroup: barAttrs.alignmentgroup, - zindex: { - valType: 'integer', - dflt: 0, - editType: 'calc', - description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', - 'appear in front of those with lower `zindex`.' - ].join(' ') - } + zindex: scatterAttrs.zindex }; From c422f53ba972dd29c7c42cae0912a295557f6f51 Mon Sep 17 00:00:00 2001 From: Farkites Date: Tue, 12 Mar 2024 14:14:34 +0000 Subject: [PATCH 21/48] Use Lib.sorterAsc for zindices --- src/plots/cartesian/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/index.js b/src/plots/cartesian/index.js index 84e8519c71d..53c3e115ce8 100644 --- a/src/plots/cartesian/index.js +++ b/src/plots/cartesian/index.js @@ -211,7 +211,7 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback // Plot each zindex group in ascending order var zindices = Object.keys(traceZindexGroups) .map(Number) - .sort(function(a, b) { return a - b; }); + .sort(Lib.sorterAsc); for(var z = 0; z < zindices.length; z++) { var zindex = zindices[z]; // For each "module" (trace type) From e5003c6003f26623b6cff06a9ebf19f94fd440ce Mon Sep 17 00:00:00 2001 From: Farkites Date: Tue, 12 Mar 2024 14:38:17 +0000 Subject: [PATCH 22/48] Handle zindex undefined in sort --- src/plots/cartesian/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/index.js b/src/plots/cartesian/index.js index 53c3e115ce8..9260c954eee 100644 --- a/src/plots/cartesian/index.js +++ b/src/plots/cartesian/index.js @@ -248,7 +248,7 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback } } // Sort the layers primarily by z, then by i - layerData.sort(function(a, b) { return a.zindex - b.zindex || a.i - b.i; }); + layerData.sort(function(a, b) { return (a.zindex || 0) - (b.zindex || 0) || a.i - b.i; }); var layers = plotinfo.plot.selectAll('g.mlayer') .data(layerData, function(d) { return d.className; }); From 4edefbdbbb04b310fd1b2e4a1adb02e90cd86b26 Mon Sep 17 00:00:00 2001 From: Farkites Date: Wed, 13 Mar 2024 15:33:40 +0000 Subject: [PATCH 23/48] Update draftlog --- draftlogs/6918_add.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draftlogs/6918_add.md b/draftlogs/6918_add.md index cc35a0e3802..fd8face7fa7 100644 --- a/draftlogs/6918_add.md +++ b/draftlogs/6918_add.md @@ -1 +1 @@ -- Add a new attribute `zindex` to Cartesian traces. Traces with higher `zindex` values are drawn in front of traces with lower `zindex` values. This feature was anonymously sponsored: thank you to our sponsor! \ No newline at end of file +- Add a new attribute `zindex` to SVG based Cartesian traces (not to WebGL traces). Traces with higher `zindex` values are drawn in front of traces with lower `zindex` values. This feature was anonymously sponsored: thank you to our sponsor! \ No newline at end of file From 21a0ac1f5bcca18a1c87009e939d4fa88ed08308 Mon Sep 17 00:00:00 2001 From: Farkites Date: Wed, 13 Mar 2024 15:37:21 +0000 Subject: [PATCH 24/48] Update description --- src/traces/scatter/attributes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/traces/scatter/attributes.js b/src/traces/scatter/attributes.js index 787730238dc..f9102739c1b 100644 --- a/src/traces/scatter/attributes.js +++ b/src/traces/scatter/attributes.js @@ -692,7 +692,7 @@ module.exports = { editType: 'calc', description: [ 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same axes. Traces with higher `zindex` ', + 'other traces on the same subplot. Traces with higher `zindex` ', 'appear in front of those with lower `zindex`.' ].join(' ') } From ff01eb60579543f78799b306e179c6ed8b611066 Mon Sep 17 00:00:00 2001 From: Farkites Date: Wed, 13 Mar 2024 15:47:51 +0000 Subject: [PATCH 25/48] Update zindex-scatter-image mock --- test/image/mocks/zindex-scatter-image.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/image/mocks/zindex-scatter-image.json b/test/image/mocks/zindex-scatter-image.json index 0d0898c0c6e..62f5b014279 100644 --- a/test/image/mocks/zindex-scatter-image.json +++ b/test/image/mocks/zindex-scatter-image.json @@ -11,7 +11,7 @@ "y0": "F", "z": [ [[1, 0, 0], [0, 1, 0], [0, 0, 1], [0, 0, 0]], - [[0, 1, 0], [0, 0, 1], [1, 0, 0], [0, 0, 0]], + [[0, 1, 0], [0, null, 1], [1, 0, 0], [0, 0, 0]], [[1, 0, 0], [1, 0, 0], [0, 0, 1], [0, 0, 0]] ], "zindex":10 From e92b6cdccaa579f47352f0a3f84b61850324e568 Mon Sep 17 00:00:00 2001 From: Farkites Date: Wed, 13 Mar 2024 16:02:21 +0000 Subject: [PATCH 26/48] Add mocks for zindex in histogram, heatmap, and contour traces --- test/image/mocks/zindex-contour.json | 19 +++++++++++++++++++ test/image/mocks/zindex-heatmap.json | 22 ++++++++++++++++++++++ test/image/mocks/zindex-histogram.json | 16 ++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 test/image/mocks/zindex-contour.json create mode 100644 test/image/mocks/zindex-heatmap.json create mode 100644 test/image/mocks/zindex-histogram.json diff --git a/test/image/mocks/zindex-contour.json b/test/image/mocks/zindex-contour.json new file mode 100644 index 00000000000..156f36be31d --- /dev/null +++ b/test/image/mocks/zindex-contour.json @@ -0,0 +1,19 @@ +{ +"data": [ + { + "type": "scatter", + "name": "scatter", + "y": [-1,0,1,2,3], + "x": [-1,0,1,2,3], + "zindex": 1 + }, { + "type": "contour", + "z": [ + [1, 2, 3], + [2, 0, 0], + [3, 0, 3] + ], + "zindex": 10 + } +] +} diff --git a/test/image/mocks/zindex-heatmap.json b/test/image/mocks/zindex-heatmap.json new file mode 100644 index 00000000000..2957438d9fa --- /dev/null +++ b/test/image/mocks/zindex-heatmap.json @@ -0,0 +1,22 @@ +{ +"data": [ + { + "type": "scatter", + "y": [-0.5,0,1,2,3.5], + "x": [-0.5,0,1,2,3.5] + }, { + "x": [ 3, 2, 1, 0 ], + "y": [ 3, 2, 1, 0 ], + "z": [ + [ 98, 97, 96 ], + [ 88, 87, 86 ], + [ 78, 77, 76 ] + ], + "type": "heatmap", + "showscale": false, + "xgap": 5, + "ygap": 5, + "zindex": 10 + } +] +} diff --git a/test/image/mocks/zindex-histogram.json b/test/image/mocks/zindex-histogram.json new file mode 100644 index 00000000000..100fbec7d98 --- /dev/null +++ b/test/image/mocks/zindex-histogram.json @@ -0,0 +1,16 @@ +{ +"data": [ + { + "type": "scatter", + "name": "scatter", + "y": [-1,0,1,2], + "x": [-1,0,1,2], + "zindex": 1 + }, { + "type": "histogram", + "name": "histogram zindex=10", + "x": [0,0.5,1], + "zindex": 10 + } +] +} From 9e134e89bfd0797d74dee41db6397c79b7dc4e51 Mon Sep 17 00:00:00 2001 From: Farkites Date: Wed, 13 Mar 2024 16:04:33 +0000 Subject: [PATCH 27/48] Add zindex to histogram traces --- src/traces/histogram/attributes.js | 5 ++++- src/traces/histogram/defaults.js | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/traces/histogram/attributes.js b/src/traces/histogram/attributes.js index 2eba375a3bb..7efe99f6e21 100644 --- a/src/traces/histogram/attributes.js +++ b/src/traces/histogram/attributes.js @@ -1,6 +1,7 @@ 'use strict'; var barAttrs = require('../bar/attributes'); +var scatterAttrs = require('../bar/attributes'); var axisHoverFormat = require('../../plots/cartesian/axis_format_attributes').axisHoverFormat; var hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs; var texttemplateAttrs = require('../../plots/template_attributes').texttemplateAttrs; @@ -248,5 +249,7 @@ module.exports = { _deprecated: { bardir: barAttrs._deprecated.bardir - } + }, + + zindex: scatterAttrs.zindex }; diff --git a/src/traces/histogram/defaults.js b/src/traces/histogram/defaults.js index 78842de9f8e..b2295d17f2a 100644 --- a/src/traces/histogram/defaults.js +++ b/src/traces/histogram/defaults.js @@ -74,4 +74,6 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults'); errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'}); errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'}); + + coerce('zindex'); }; From 23368c97aa1bec080bb4e39539919e9b356e590f Mon Sep 17 00:00:00 2001 From: Farkites Date: Wed, 13 Mar 2024 16:20:01 +0000 Subject: [PATCH 28/48] Fix zindex routing in attributes --- src/traces/candlestick/attributes.js | 3 +-- src/traces/carpet/attributes.js | 4 +-- src/traces/contourcarpet/attributes.js | 5 ++-- src/traces/funnel/attributes.js | 3 +-- src/traces/histogram/attributes.js | 3 +-- src/traces/image/attributes.js | 6 ++--- src/traces/violin/attributes.js | 3 +-- src/traces/waterfall/attributes.js | 3 +-- test/plot-schema.json | 34 +++++++++++++++----------- 9 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/traces/candlestick/attributes.js b/src/traces/candlestick/attributes.js index 57071577683..2cdec540b76 100644 --- a/src/traces/candlestick/attributes.js +++ b/src/traces/candlestick/attributes.js @@ -4,7 +4,6 @@ var extendFlat = require('../../lib').extendFlat; var axisHoverFormat = require('../../plots/cartesian/axis_format_attributes').axisHoverFormat; var OHLCattrs = require('../ohlc/attributes'); var boxAttrs = require('../box/attributes'); -var scatterAttrs = require('../scatter/attributes'); function directionAttrs(lineColorDefault) { return { @@ -54,5 +53,5 @@ module.exports = { whiskerwidth: extendFlat({}, boxAttrs.whiskerwidth, { dflt: 0 }), hoverlabel: OHLCattrs.hoverlabel, - zindex: scatterAttrs.zindex + zindex: boxAttrs.zindex }; diff --git a/src/traces/carpet/attributes.js b/src/traces/carpet/attributes.js index 11b668f986e..22fb3323400 100644 --- a/src/traces/carpet/attributes.js +++ b/src/traces/carpet/attributes.js @@ -9,7 +9,7 @@ var carpetFont = fontAttrs({ description: 'The default font used for axis & tick labels on this carpet' }); -var scatterAttrs = require('../scatter/attributes'); +var zindex = require('../scatter/attributes').zindex; // TODO: inherit from global font carpetFont.family.dflt = '"Open Sans", verdana, arial, sans-serif'; @@ -116,5 +116,5 @@ module.exports = { ].join(' ') }, transforms: undefined, - zindex: scatterAttrs.zindex + zindex: zindex }; diff --git a/src/traces/contourcarpet/attributes.js b/src/traces/contourcarpet/attributes.js index e0e255e3ee5..0fed2a3e00a 100644 --- a/src/traces/contourcarpet/attributes.js +++ b/src/traces/contourcarpet/attributes.js @@ -2,7 +2,6 @@ var heatmapAttrs = require('../heatmap/attributes'); var contourAttrs = require('../contour/attributes'); -var scatterAttrs = require('../scatter/attributes'); var colorScaleAttrs = require('../../components/colorscale/attributes'); var extendFlat = require('../../lib/extend').extendFlat; @@ -71,8 +70,8 @@ module.exports = extendFlat({ editType: 'plot' }, - transforms: undefined, - zindex: scatterAttrs.zindex + zindex: contourAttrs.zindex, + transforms: undefined }, colorScaleAttrs('', { diff --git a/src/traces/funnel/attributes.js b/src/traces/funnel/attributes.js index 530653119db..7c59018f0b4 100644 --- a/src/traces/funnel/attributes.js +++ b/src/traces/funnel/attributes.js @@ -1,7 +1,6 @@ 'use strict'; var barAttrs = require('../bar/attributes'); -var scatterAttrs = require('../scatter/attributes'); var lineAttrs = require('../scatter/attributes').line; var baseAttrs = require('../../plots/attributes'); var axisHoverFormat = require('../../plots/cartesian/axis_format_attributes').axisHoverFormat; @@ -111,7 +110,7 @@ module.exports = { offsetgroup: barAttrs.offsetgroup, alignmentgroup: barAttrs.alignmentgroup, - zindex: scatterAttrs.zindex + zindex: barAttrs.zindex }; function funnelMarker() { diff --git a/src/traces/histogram/attributes.js b/src/traces/histogram/attributes.js index 7efe99f6e21..087225d762b 100644 --- a/src/traces/histogram/attributes.js +++ b/src/traces/histogram/attributes.js @@ -1,7 +1,6 @@ 'use strict'; var barAttrs = require('../bar/attributes'); -var scatterAttrs = require('../bar/attributes'); var axisHoverFormat = require('../../plots/cartesian/axis_format_attributes').axisHoverFormat; var hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs; var texttemplateAttrs = require('../../plots/template_attributes').texttemplateAttrs; @@ -251,5 +250,5 @@ module.exports = { bardir: barAttrs._deprecated.bardir }, - zindex: scatterAttrs.zindex + zindex: barAttrs.zindex }; diff --git a/src/traces/image/attributes.js b/src/traces/image/attributes.js index 72bbe184df3..3ce37c92ea9 100644 --- a/src/traces/image/attributes.js +++ b/src/traces/image/attributes.js @@ -1,7 +1,7 @@ 'use strict'; var baseAttrs = require('../../plots/attributes'); -var scatterAttrs = require('../scatter/attributes'); +var zindex = require('../scatter/attributes').zindex; var hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs; var extendFlat = require('../../lib/extend').extendFlat; var colormodel = require('./constants').colormodel; @@ -134,6 +134,6 @@ module.exports = extendFlat({ keys: ['z', 'color', 'colormodel'] }), - transforms: undefined, - zindex: scatterAttrs.zindex + zindex: zindex, + transforms: undefined }); diff --git a/src/traces/violin/attributes.js b/src/traces/violin/attributes.js index 61bbed429fd..a121f6d4813 100644 --- a/src/traces/violin/attributes.js +++ b/src/traces/violin/attributes.js @@ -1,7 +1,6 @@ 'use strict'; var boxAttrs = require('../box/attributes'); -var scatterAttrs = require('../scatter/attributes'); var extendFlat = require('../../lib/extend').extendFlat; var axisHoverFormat = require('../../plots/cartesian/axis_format_attributes').axisHoverFormat; @@ -256,5 +255,5 @@ module.exports = { 'or sample points or the kernel density estimate or any combination of them?' ].join(' ') }, - zindex: scatterAttrs.zindex + zindex: boxAttrs.zindex }; diff --git a/src/traces/waterfall/attributes.js b/src/traces/waterfall/attributes.js index ac4666fb502..1a8b473d38a 100644 --- a/src/traces/waterfall/attributes.js +++ b/src/traces/waterfall/attributes.js @@ -1,7 +1,6 @@ 'use strict'; var barAttrs = require('../bar/attributes'); -var scatterAttrs = require('../scatter/attributes'); var lineAttrs = require('../scatter/attributes').line; var baseAttrs = require('../../plots/attributes'); var axisHoverFormat = require('../../plots/cartesian/axis_format_attributes').axisHoverFormat; @@ -153,5 +152,5 @@ module.exports = { offsetgroup: barAttrs.offsetgroup, alignmentgroup: barAttrs.alignmentgroup, - zindex: scatterAttrs.zindex + zindex: barAttrs.zindex }; diff --git a/test/plot-schema.json b/test/plot-schema.json index afa30a4ee75..315986b1654 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -14843,7 +14843,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -17522,7 +17522,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -18076,7 +18076,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -19483,7 +19483,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -23960,7 +23960,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -25015,7 +25015,7 @@ "valType": "boolean" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -27432,7 +27432,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -29404,7 +29404,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -32173,6 +32173,12 @@ "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" + }, + "zindex": { + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "dflt": 0, + "editType": "calc", + "valType": "integer" } }, "categories": [ @@ -36522,7 +36528,7 @@ "valType": "data_array" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -40533,7 +40539,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -47283,7 +47289,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -51516,7 +51522,7 @@ "valType": "subplotid" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -73470,7 +73476,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -75664,7 +75670,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same axes. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" From ef4d489ad45f9b7f91a3ffabe52124943867a072 Mon Sep 17 00:00:00 2001 From: Farkites Date: Wed, 13 Mar 2024 16:22:24 +0000 Subject: [PATCH 29/48] Update zindex description --- src/traces/scatter/attributes.js | 4 ++-- test/plot-schema.json | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/traces/scatter/attributes.js b/src/traces/scatter/attributes.js index f9102739c1b..22e3032b6c7 100644 --- a/src/traces/scatter/attributes.js +++ b/src/traces/scatter/attributes.js @@ -691,8 +691,8 @@ module.exports = { dflt: 0, editType: 'calc', description: [ - 'Sets the layer on which this trace is displayed, relative to ', - 'other traces on the same subplot. Traces with higher `zindex` ', + 'Sets the layer on which this trace is displayed, relative to', + 'other traces on the same subplot. SVG traces with higher `zindex`', 'appear in front of those with lower `zindex`.' ].join(' ') } diff --git a/test/plot-schema.json b/test/plot-schema.json index 315986b1654..26dbb8b62aa 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -14843,7 +14843,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -17522,7 +17522,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -18076,7 +18076,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -19483,7 +19483,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -23960,7 +23960,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -25015,7 +25015,7 @@ "valType": "boolean" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -27432,7 +27432,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -29404,7 +29404,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -32175,7 +32175,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -36528,7 +36528,7 @@ "valType": "data_array" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -40539,7 +40539,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -47289,7 +47289,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -51522,7 +51522,7 @@ "valType": "subplotid" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -73476,7 +73476,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" @@ -75670,7 +75670,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. Traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "calc", "valType": "integer" From edfefcdcd5d0457cd2373a4d9d76319bd4df9e4f Mon Sep 17 00:00:00 2001 From: Farkites Date: Wed, 13 Mar 2024 16:42:53 +0000 Subject: [PATCH 30/48] Add baselines for zindex image, contour, heatmap, and histogram mocks --- test/image/baselines/zindex-contour.png | Bin 0 -> 32583 bytes test/image/baselines/zindex-heatmap.png | Bin 0 -> 19062 bytes test/image/baselines/zindex-histogram.png | Bin 0 -> 19102 bytes test/image/baselines/zindex-scatter-image.png | Bin 10504 -> 10971 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/image/baselines/zindex-contour.png create mode 100644 test/image/baselines/zindex-heatmap.png create mode 100644 test/image/baselines/zindex-histogram.png diff --git a/test/image/baselines/zindex-contour.png b/test/image/baselines/zindex-contour.png new file mode 100644 index 0000000000000000000000000000000000000000..7d33d7648a8707f4624de2fa81f153643330de56 GIT binary patch literal 32583 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

L9I75V`~74eF&W@j>fJU9J-iX_tTFxRaaB-`ng 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 Z%gaXZ<0r!l-X}$*aZ~q3{`H55{{<`>h+qH! literal 0 HcmV?d00001 diff --git a/test/image/baselines/zindex-histogram.png b/test/image/baselines/zindex-histogram.png new file mode 100644 index 0000000000000000000000000000000000000000..3c9a4384e9ccdad2e76797ccd45c4f8d7d950b55 GIT binary patch literal 19102 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 AAOHXW literal 0 HcmV?d00001 diff --git a/test/image/baselines/zindex-scatter-image.png b/test/image/baselines/zindex-scatter-image.png index 4f467c716deedd4480aec27e2ec59ac85364b68e..1c625ca9aec907fe68ad792153bcc0386fc2c18f 100644 GIT binary patch literal 10971 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 O#KzLW;*t4@U;h{6Hb%Mt literal 10504 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 X;*J`gRSW|+97Sv_9W4reJa^-thrO3^ From 1ebbf61dab9cc5223ee8b863e0fb0d671051c98c Mon Sep 17 00:00:00 2001 From: Farkites Date: Wed, 13 Mar 2024 17:04:42 +0000 Subject: [PATCH 31/48] Change zindex editType to 'plot' --- src/traces/scatter/attributes.js | 2 +- test/plot-schema.json | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/traces/scatter/attributes.js b/src/traces/scatter/attributes.js index 22e3032b6c7..a1e44aea459 100644 --- a/src/traces/scatter/attributes.js +++ b/src/traces/scatter/attributes.js @@ -689,7 +689,7 @@ module.exports = { zindex: { valType: 'integer', dflt: 0, - editType: 'calc', + editType: 'plot', description: [ 'Sets the layer on which this trace is displayed, relative to', 'other traces on the same subplot. SVG traces with higher `zindex`', diff --git a/test/plot-schema.json b/test/plot-schema.json index 26dbb8b62aa..457f72db764 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -14845,7 +14845,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" } }, @@ -17524,7 +17524,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" } }, @@ -18078,7 +18078,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" } }, @@ -19485,7 +19485,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" } }, @@ -23962,7 +23962,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" }, "zmax": { @@ -25017,7 +25017,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" }, "zmax": { @@ -27434,7 +27434,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" } }, @@ -29406,7 +29406,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" }, "zmax": { @@ -32177,7 +32177,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" } }, @@ -36530,7 +36530,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" }, "zmax": { @@ -40541,7 +40541,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" } }, @@ -47291,7 +47291,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" } }, @@ -51524,7 +51524,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" } }, @@ -73478,7 +73478,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" } }, @@ -75672,7 +75672,7 @@ "zindex": { "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "integer" } }, From 9c1db372013e015c489f71968eb1e06d588b703d Mon Sep 17 00:00:00 2001 From: Farkites Date: Wed, 13 Mar 2024 17:13:20 +0000 Subject: [PATCH 32/48] Add zindex to funnel_axis_with_other_traces mock --- test/image/mocks/funnel_axis_with_other_traces.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/image/mocks/funnel_axis_with_other_traces.json b/test/image/mocks/funnel_axis_with_other_traces.json index 88ab0b35c66..2ea00e2ec77 100644 --- a/test/image/mocks/funnel_axis_with_other_traces.json +++ b/test/image/mocks/funnel_axis_with_other_traces.json @@ -21,7 +21,8 @@ "type": "histogram", "x": [ 1, 1, 1, 2, 2, 3 - ] + ], + "zindex": -10 }, { "type": "funnel", @@ -40,7 +41,8 @@ 3 ], "xaxis": "x2", - "yaxis": "y2" + "yaxis": "y2", + "zindex": 10 }, { "type": "bar", From d4b4c0a4259c6d1b67193c605a515cf6b00ad21f Mon Sep 17 00:00:00 2001 From: Farkites Date: Wed, 13 Mar 2024 17:30:34 +0000 Subject: [PATCH 33/48] Add new baseline for funnel_axis_with_other_traces --- .../funnel_axis_with_other_traces.png | Bin 58147 -> 61883 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/funnel_axis_with_other_traces.png b/test/image/baselines/funnel_axis_with_other_traces.png index 72a00cc4660c359635a5950fc107fe21bd08ef23..96dc1677b0f1998e9f4e7b33aa6a57db5e94cb03 100644 GIT binary patch literal 61883 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

kp&~qs8vC(xD`7$6xmpos*emS)D9~?jtX(b3a zxyH+l*@45ZJ5mh$z0C&fiMN0Q7WJFY;fkW~O5Eeoe3efN0e*vLFd$TdH4G}vg0?5C zWQa+y2OpW)WW!E2H_WN(gzC`4!znN#lwZe91bpIloUo8hlN1j5xQI&q_Ln$k)-A)5qOfTy9yOhG>7VzF1A2iN1zi5~a%>mNH=IT=u6Xz7q zLNu!8srp*!*2DSVZ)I9PjHWE;r2O|>`+jk6- zN)p)l;i{6^b2WA_a7Ml%XqFH>i9*axgrDz$4-vxV?y$|J=Nd8Owsu{%@>R5eY0oN% z&ncPNc+ZJWcowyH^ty8o?jMCis8zXEVZRk*OSR>Pm?guJ!VqP8Ecv5n3W)Xx zTl0>K!EBje9GOZJefM8K2(TsXK&WRO_tm>OKh0X`2&X8qP%%KN4m5}NY%)+9 zOzl9l^s~*ISqVhRsXYb8Xs#$7f_8#0&~n#Du;NdCp zlL`iMg#`{g9jV+D<->Ucw)oCzqfGC3HXSUyuBeAAMZhDC!vs|QW*Oi92baya-Qlv5 zP_ysxO!gq*d<}CuBoq_|dVK8Cm{vr^-?gigqV$IU1yJp4F_2S>c;H7mml}Rjdto~x zYGzNGZ~RlJJ67N@sCJ;Js3<9c??3!e(T@zUmN-i8nQTzH-wi|2TYOIPkzM?Vnm`&7 z)Q(h}q}1wCZsKv1!n@5bSUS4nTueSagf^>N1^Yf>}TslLwat>gm` zxmLQlY9!7=<S_tAgsMB;52N~9l8h9)W;LpD#B*ggNA->`Y zN>r5d{?uFb`b=+~^fP)9fG+QIeN2Uk-b+UY5CspVuQE_(9|QeE&AdYy40kuQb}ji& zW(@7{bcER9)s4BcC4I|=>%HXN#?XYeMe9vq=;3~O$U_JqC^bOQ%gCA~i@JMy?zsn$ zi2+i@{%YDnJ3aD|21VIOz+8!DA@f&_ies82^AJo0!jKPdc?-V;PR*45bsi^W_RMXm!KDB$k_x5obJX87dp zp))+H;R(b^3ct4l!$%`xBU$z|Xjy6)075^@u}^q%zxJhNVNoTOG*kC-340LM?IlZn zz|Y{_?E+j{<~X+BfeT9B_lybSz)SJL58wVFf16yZ;gH*Uc8Mg1E-uBMuTKdV%BnJz zF@JTPy#a1?(?wptzo}U?L$6N}xlyFY zk}%ic-3!nUtEo1baWgJ0;w#61((@MwUG$?#h+b=+Gb$NSkctdHl|KqQd|z!MavEn; z@1ruE|4gw2R+N7fKgBG!OEKDWd>}Nq0}dAZ)#Rh_8aE^PLeiEEW8pjY2JD1N1vDh{ zof@d?IbN9oTum$b!KnuNBohQ6X%m5_Kt(I7T;N9m;6h348Yn;EpJ6Y5yQ#@hNXk`%TX=5W2}S);AEncrZd$|6V*R1BsYA#r_eyzklL^8 zL=ek<>CSY!+D?-3>IqSl`}U zD;cB-I6a^gbWWg?dD#un;?_V%QLtvxufBKe5mJU2@yp!lV!m28S8I~J0KGqU?pmr7 z1hybnL>tb&Bf}duAA+?^jEcS5A8>QMm4Dly^u(YvQ~43~D}dI@*g*pVzo^@L7AxV; zIaDcFml(i0eC9RPu7p4yJ^K+0piW&Qe|`N_DiIF_Tv`c^`uch$UJ@=N)-r?Ico6cv zZXioo0}Y6YX8(U!miK0OG-8EI{s1TefEX!)(N43rkjsMWNeyN5-7z6L6(Z>9<;z#M z)JY|@Yf4%J`SGJAssA1$a7bc-LqfNB?~aloL<((dlO~r8XiOJ&mj}A{7^5f!NmLfn zBm@g#^X zK^y2jPsUYz0!!yhv+AQ44D<(5lzp`5k_J={w-x<44k9Xx6aC*w2g9ZMj}Tp2Dw$&X zu+v@RjgJ6BUpyXR#@M0q8E9G=JBX3EC`@fHp}Gs6kAUEbxDPM{d^XPHk(T+Ad~^Qv zLAei)mQIW^ivUhmdy+~x9K3}7`vHsf|Ew7sq&Jy684$^ezOCCXn@7F+1UD1EmoLrv zH|>BOpzhHDG(j(2_Wz9E(FuAjX7-w-KgyFy0om8@Vxu4rklK=n0GRbRS!zrkD$5u+ zXXCcoULEgq8Wr!ajwPOK^8iTML;{a-E!rmtfHduGX2WF!{i+5+s6#4%qVOUR8LNMy zR6mCi2|yL-f1wJq7x$zAC^lw*uadVpS(Srm;4LHn-rxVU1yQvveS4Ew3hD395M?hE z_(S~YgdKL#29_QM8Q0aosjF!M&dht20J(r%>GJ*`>G#Vf<6XI5&+X3A-U#5UwzzNRse|@bJ*>gxI50xK-qS3CVj0mR$IxX)>oM z!yTo=tHT0{bJJ`vPc-I=qYUsW>EKfxb&q%n@b%aX?%PNL{?sz28yy^I-U-O==92%- zU-$pyFSfrJ279B!JBnx1una|3mdp9Z2=g|R6T{nD;rd2!qh7Wh2w^YdguRd`o1?P} z;GdDj-KD_%@d(YHw1gO}_0)jt)lDX6UY_+>N{66+SC=pEBi`JdK0#5KctzvEhsK6I zr}~xw^!lT^Js{Q@NgLbEo!lGgTK>Ap4Ee@_xiWi1tC$gL`#r_$l|t^xQ6+)|VlxCt zpvl)Wd*Ai$CNCJp9uuK)a4E8*thA-}#=kh$;?LI*-g3D<;r!mnqy0jB^n0aqul>|z zh4Eod0N!_R=RI;@Y#vI-YaD*xyy)XxwZp^n<26*k z-|6x0QRtt!0-g?ms3?+iiNS6wA=O$&PYj~iM*TsGN->Gdf|n*%`2~x`8SwD#Ji%zi z)&(`iCN3PNldiH8qx@{(NZo#}+{YKKTs%iKPAfP%`m`v~mM%{2V)1)uk~@kJsb+F;$3}Le9Gph8rb4ENiyr$sbGxQ zuYy2I9Q!N~`T!D(r=XyU$*&ES9d=QPeaRWGLagISgm1JyB}c3D9hg&r4;dY`6^&6@ zZ1^;2no$4yS3q|YP!uv8BKq5$K<8IS1HC|pR=I@q>Zk%bWpnnpmqWCTuwHvy5kNio zs{+l{Q4Z3qU5$6LHu?lqbf1{csd-FcGes}f*cdf;ap$euMjtm*xh1lq zUu9X|SOWM1-Wt&6yZVjPGy!O6?>iJMv|tC z!UF+W`R3Ltd&~qpzw)!r!SWysqbNkzKmTTx%Yp-5}! zRxC@@*)yiwt#Fq~@92=0+-^>k4nITi>6Ia7Kk3H3$IYX`6vfLLX8jGo#d`hJ$U|(1Oeg3DR_) zu2Dq1wgAzyZoNL3&1=zt?upbKZus=sUea7ai{~rrRcBA>)V&rP&-ilHnAJu9p-Sur z$)Nm*X&@%XCbH`)J$sgayfrZptvuox4Uk3O0fr|}x55OW{~LF$N67wxBtI|}cE5v# zPpyNLD<0H1j;#>j$J&k4sS;{!QUpKAK+SzVU{`;3K}tBor8-P&Z?padSuP*GE)x+K zi)f9y0p5>*-~dmktz0?OuB*rjzpv=wGPmmckoA6*PPrHVQ5(vvk^*s>u89L!Rq}50 zvkxRhMBNNAV)Q`UJi;EN0d0Hr1(xS153T&hEH7D3Iy3Xej&v%G3$aPV<1~OVlvc`q zw7HeZRSUHe^L=$8luaB2{t#o~>|8E(wiv?ey=w#@mp9EJ9MRw8lfOY#nY-K`V)VDQ z>)j)1Pg(T)wgf`ZfBg^xhsOC%wdx_^?4&u0q7L~FCqBv03!zazqK0DLpi z(Mi2{LazNDA9lQ+9nh}O0lbugk)2(6czD=qqTE>N!9E%UsZuE6$;_;c6aq|yDn1tN6Cwb0+5Wo#=sXVxzZeDSq(leBmH!*Ij z_EL%`Ek2UE8Y8GE$r(um+)>U-e7N;M&mCwjCy97n+~_a? zyu5;iiLXSr;;GgVKv)4nPLUcv191-6ZMDQgxK6U-nUOyy34V^@;ZtuA8#hG~wWq1_Vj0Tz*L2v81n;E%~_Pzhzl9EPI@*QOf3I*tE=D%A~K<&{l^;m-A zV$FU6l1P$rGMA35-&WbDgxN)(T+9D}?MQTm@3mUz+t*b7e#6ereI20{g*PrSJ$^uI{c zcpi99iS_@GR>eerNGpFUiY>*;Sn36j&Dr{D$AxC&%5N6{SkIMtg&Vx%IZv~x}Vi2W&&RvzxB;~doTV@#hS8>eDkU;)Di?iR=KQEmr+GKjLGO;l(rEfGaH@C` zIPUNk4p&mjfyKw^NJ6sG=pkALTvGtUV4bX-`!ke_FoU3?#lq)XE<8ov<}!!~epuGNZ6Ovv{}To`qTVLsOby}%0z(7k*wWd$E|L$LpfVKT&!O9)gNE4fn>qKoPHta^$5d zcQPw9-lE9%$nCrgv(pp2+I|{gw`tl4o|7bsHB%=&z3P`w7VQcCE2?lK|N1HdjBrbD zI#cU^zN+KJDe=}s;etTvl-;3;jtx}_XFgoB%U z6!mfYlaYJBp7WaFmNEeJXms8V8!BP!bj=ADsw^WHkAcDbbk?sJc(}qr1b_&x9&54C z8Sv)M(Gl8REdvIx8CumWxv>EP{J=##fw5*!Wm|{fgLS2pfGyK+l326P@dyN zwI6QJo2m5f^(VBNN)ijNEsORet2J|dPj)MQR;(@=Cr{pQRY#GL2%t*LUeS^ulw1L) zCS}lh8dM8b%2!{%i56j>4#05Tndn|!Q8k6XU^vdgHzNG@ZVpK^(_M)ve-HOT5ALh; z0jXsnV!G8JwBXDyYO>Vzd-<1)>`clQITj(E-VP`N0U6xnNkNaSAKtojtyH{!I_K%S zlsK`Psj9BiH`=x)=iJnn`r~O%wHCBk(|m(CcDfERg$x>8Wi4Y0AGYM57C+$EgqE+F zB&MU@{)e<}9|5YFe#tYhj9I2$Ndp=_23KWTbl063G;vR>4262ht$?6#K4p7m zC#`7(X%*?gi)btiD&xT7u?^%|(dXpRo9eOulu4a1l zNc-YsYwgE3Si0x_VyoN1(l@2^&ww^+1-xe@X(bA5fgx{0cpwN4-V1(P6bU*gBbMT?tca8-Uos#`JiT%N&=nKY zx3d}>Q&PZ~))?Mr^EDZ6)Zk`}2qO!e`hD-qU{v}usJUuSLTh%$3$@NCItcJbJA*%| z_v8uwU+leSR8(6QHEIkNsyco$w@)U zNs^!>K_o~4B9bLbdaKlXyKi@Y->>)M{di+Ix<~i*o;rJ<9p+kV&bjKNtHQ`Q7aL#s zpXMQGp(rYmD=I`{iO&m*Xz4$H70X0ze~i@Z47J77kaEJ;K2wHgQ*__eC?fVPrQtkDC>D*vc*6$5L|0xBs8nQApksQXcmn^L+Uy9{j&& z1E;Ae<@QO|hnOy6^?k zY2Pz)8n#PuRG1_K-qwEd`~GKu0KT)26dw71DOHzR3M`633=?Xr!y zCq7f`=Ec)c%r5J|UpW`>f|^6`gVG*n+u^2tqJ0#;0K z=xJNPwFkZO@^Z>+(_gJUv^_OFhdUb-n{4+O(`i$x`21GxlEvmd$9!WXAojz&1A~G$ z_vSLn^mTP}>3mcFPua$39vu6tFZ;jQUmoaV&%V1H?r-HsGF;m#`-_*90(n`ZB3v*P zcQKmjeo`#*hs#Ab`;MDWe+N^k-l~SqZ=c@J4X6H23`&UTCZ;D4Q3-y0VnS;CoW7uZ zHNUu~i6Pj6Lgmdt|0WH^MiKEVI!-x+6&NICC+D0+VtG-JO?wJV^9~4gPMaegQK)C^ zk6&m!_Pgz?Ir{0I=AB^v&Q#uF{ABwn{g4@WQ8zQ)NZRR7&U6m?QdQm_eC4TzuDeud*KxC- zV7jxuNBQ9A`z-rlbE~sCnMH5p5xtLj3nD>Bw<7-1BstXBdB$Q!jSugP)pyk{@ZU0T zP>ZmtKex};WY!ke0k!Hu4^locr)LeHQH^c~2^P&)@gYlzS`UojfcAGma3MCEAOs@`ZgW2y34lOb zdMtaN*b3=Xt2jM;Ah~<~OVfFEbR92^ZO7-YH$$_&jcC0rG#-1iq(5M-wegQoXfEFW z3ZgWqZs#6O5;&5|JqKtTRh% zQ%97i(s$~(Pw3_~e{x!1r-|s?KCjPpb!<9-ksnost)VAZ>P=r$KP2Smnv{sYG>;J+mWtGWOZ2K&R%a zn||6nBmq8hC&m?u={>4To_kh7D%+z>w`Ba(%h0SA{k3e<_snIhHeT)wzk=EmQ`PZM z|LV@B=5(NlApLa3iFa0CxQ@i8Tm@*|<&)PpIEDC&-l{Y<(V8)8Ls3%E-7)?`!l+h8 zpDCU;A4!0Nr0(c8&SS7!NWNk3OX}g?tWy_%rS5~wAR>Ymrz~1xkpP>tS1WeR#SR)r zr7qr@(jm`Yd3%fDQJkPgWgPsr(RgeM*@H_yua`6A+J{aC-J$>%c_BfsBYU^KQhqON z#UA6Wc!Qml0?uFLD5Ote3=+F*g^Nx*p%ylSbC<+`d`gPz8Q~tJ18*LX+bL-4|pF}=Tvk;`sV%2cW(G*>Gq%~t|3{a*ph9-6S1tlA(GTA!30<2%|p z&CCVZoW|!4H+j-1HCTwpoE2U)6ZvTCT@cT ztaJ!kj_?I%m^ONJO~=9!ZxDSr=HQte7HS+!!uH5q_b6M#RC*BrY)8Y$Z|{GTRbLG- zA}AwCeJ--cO>{-JR69gZKhWQ9g+i^7v(bY^VVrK~U4rn{r8n~eE)8HtHW1Bsrb*)Y zL}U!1&e7}NN77Y&-#VVYJmxA&C?(9ezxA?4@Q$Pehn(Ug^Hb)^iP0iaG?@+++rx#% zK7I|M>8%R8qtE!e)>_WxhFlO4S<#p2BE=BvD}w;-UsABDk^ib*)F(Epp^-yLK=#UQ z{RUaFSSSr@%K2mNkPd7N)S}^#KXm@)<9kYj8s8kF4v!)Qk`t35C3qBK%#J zGP9$i;H7`bM3-}GY^D4rSB_PNsvP9cg=a%W$0Ht-(s!DLOP$)9@TpHZef#wB=O*z@ zx92WVMCgRoWSr^FKiv6VR@5${5M(nU{f%LFV!*hB?x>B4eV)(Lio6Ns{aSGXmBu`k zY_0MiLF63lZaxENqw}*ck1oHTH2cMP)hf{@4hS$9-Fr=QAa#>!sWal|zC#9x067l> zGx^0&0>c{=VCC5M=xCb2@U8lsw++0fGt|-VZj^668-WX~QJm5xOHcj0Fd0AFsYZS9 zD-A_bohlJfcAe>riHeWs1pueDwsPEt@I!}hDBUziVJ zY?PN?kHEo=@0@a1-wIamB>A^eQcMUF_7|Pq@07s#xk7?J>-n2GDD?k=95&^cJ2y&m zc+aoSZ=AJqw7O+xhvU(m;qgzApL=ZMv~eRP+K@k{%GC-XDkfc0o^5ici4Y1ZJLtNvfg`sHFKh9iJGP?|>7ZL_^zjc#bHkp6ZS_bC(Zm9c=CV)mXW0)Dr z)#vY?e4dHf7QnMr8x_xfS)ph@nMW`W5%+R@Q|%|~?zHi{?mk7)UkwYXSWY$wQ&BCw zix6Lpsqc9DFZCXS*xfWvPEJMOOyUylr{{p#n>+DyeU3xIbs?glfbZogvwzRH;{1i9 zVxe%;iOclfW*=5(kzg|YquyKTzMvR(fB2PM;=4pq)jFUyb%JRU8>kJfY4CT-PD9?3 zeGV=Dt6FER!$dIcv82_Zx1t&t@PZ@${4z~o!DwO!IOYB01DPn>-zQzJjLwebOR znRE36*KdA~L!T@#PNa zV$O;`g^LQ3L!Y^AW^($qX8R;GGz?rnDzpV3W1!r;mTb759-Z`>&x&J2$zZqBxtbSs ztL@}EK21bgKocwE|H(^l(iOn*91|C*YtM+dRJTvu4zkzmt8vAZw*>x|pn|{Plj5~& z(Lh_y?F|LCvG(PMl*dBMIk|OGVr%}+!6I>*1mV040?%i38kH#zmM(Gx?7xLv_g{iU zOKYP5%a=-Ml5uI?xbZ!8thh)-1>tAyPVnh%Ial%JE=d3Zh3qw7r0KD=e$tP;sJESG zm`j^qAC;qy0AzXQ4>3?Kk@e-RW`B}+G&7MRL{a7tw4ZbTVLk^`87_R?YhgI-OiXvS zaDMK2sh7Q64<6fxZSb@4h?+v6~{q?Hg-XqSh7&tr@l7 zuG>>lQtL$u0%JrNbU~gBU_B7`@RiB_+eb{@+@>pvIAeudK}D{O;sJ&wMOO`W?_Is$ zs9)##df{`WD!+Wa=T4da)FeL&vh6XT(CCcfx;lV#x|XhA>+ur6XaM?bNg(p$Qxmpb z;EQBKP7`O)Dx4?uPZ<5YrAfkbV^Bxge5rQJh)Y&i<43UZ-ep`Z{iWF0zmxQiYt?>G zf#e|S>0i~5?;l>N7i-{=DBj_+oa@C&sS=b!kftOzv;DA{Q-i)Pp0}jRdPI|%)1Mm% z6Obs1<-R%74Y-*&M||erGPDGfzyTPo1cV&zceo>V=YNv`R#(ZM|4|j%7Un-bbv>ay zPb=T^^7ih;p+Nmkx5K~=#Zuj_{mVo;*SWvrEZp{!)e@}ehZ`X7&{1BX#zWKebGFh? z*+m{ydJMwj-uho$fTU~%4K!b?)oCG;0A5>Z@}Pf&x;BPQth~Ui^Bs%{#CA;$rzEiUXG_+mw{Qky|f1%|(fk#`{jyaZoC&@~qwq$iIpbp9A>B}9F}CFL*|$`$yi#`IL_hH5 z+z7VC@cl+05s5%OmqUcMung!;A@6~Otgz)Kt z=uX2((#8!qgH6qYv6?u{aPxG+Ah#nLUBoIWIBP7XU~Xo$!sc@i1}pNOIN_%!l|farS!o(jEs@yLYM}nK4>{UXgqJtQEJ}yzceLu zc@YIBXm4k5Vp`3v@ADXpqSfo9gAF4H!G5uo5hKeZa;=xR^Ub_GG))BaKj$GRHQ?m;s+E24v>Yf1ey4v=;c8FapU%RblEM1dcX~4s25dXn|&C=I4eu7IOuc$SZb#X=Q-H{0F z39uB5@uLN@5^C=-DM6zIH+mqkhB>XokxCGl{~P3@0Z;xKcHl4-M?HbkXQwX#DPIQ@ zQ1jnHrlJ$-(CWPMaQaTi)$e74Frq06NyJ47Sd26J=hSei3Jw%*cTv9HGYV@N8&t$T z5KhO4X%la=P!RU&B*EPKt3&cTlV)$WNd*yq_LgsjRlhvk=d(PqAoS|!>dKFPV!Z!d z=d=S@tygk7&`_`-f4n>Y9+#P$o}DE{yPn6IM>ihkzqExXi$m_(Ij#|z{|Qm_4hUlDvYYPYFPo%?msfKOH7 zfX#xfl%pNPrwE}i%Om05S0z*!6!~C0zIqtAu=Eeh40-;bK$Dln?c#YXF(11sFp7cp|fR3HXML z7wS@oaFc)~W{#PJ`x;jjlk#k4Y)i$oaLHe-ZxdHG*JQcqlYpf9czNZi7NjZC%>Fw32vU_vtjXYO>Nj%cZ=@v&!5akc=9+SURK!O_uu3>>z zu4PY>+T#P9HVb40wpt9&RNCS&1A!qC2jTalY;=mQYF^7S;OF^D6kyf#6}X&L8tAh> zAF5Hjr})FFs4H>L;)MeWDo9cRxEQTJ5F`>8#BUz2xQf0jRF`9N34QzBGd6$*#Z^Y5 z)qhIgSAhW$6#~JLGT2Js+kFJ>V<)P3`EAG_RqEb+VT9w~`i+deGEbt7EI6!>v|2{?()40Eho9e&o(w@s>48jfPYF+s1k zQ4rCQ?tBSUN00KNp64uW#+Ne9dWyQGpYzYgsiUzMVou=rd0pgCN(~$6!yiMT?l`-G z%GFQ@I&6fTlreG%x(}iaMp1jdXLZ70<)HKrP=>`kUIdsMm6T*KH&L1^DJ3<=eO{6S zXA%Nj2rZ40f@8nd&qacHP#jzH%+Jaky0>~toFQ#d)E`Io*_m8@U3xvQrW9-T+Ot&G z`)nOGK?~6h(y8BXY`GZoBco3_KDfYGhf#Gu_Hp+6taTt@eM_eq7o&+-`7xLXBzZwz zOYA3p)VFE>e>pcCS}sdA%%ASr+poT&Gxj}-|K?j3`jSRsi^i+VrH#+Z(z)=<(3or~ zG|@A(2q#-~2?Z)R&WGrhC})Mqwa+)`E(^CtW9)4G9z+J)a_B{A9lmGg_*BL}c7FC< zQv8FSWl3^!wiL)`L|#xZ+q9SqjR-n%XEp`eF|i2a+nQ?q9| zSC71|diUPc-?e1F1g6?jckKm~6stQ;pf?7tiwrm;lMn5v}g+r;3varZLn{*d%;* zy*y)t_dkq}Khz=>y|sDXIR2V&NhvStVfvt+nia;+bAC2fPt&djwTOTB<6N zN@#iQmZ~Z&)|3+7MLC38P`~q8k^swl5APjQN7D%!h0GUK_gr+*lDvBWh7uA;c2~(q zasgL8?Tg=hKka$2Guz_>?CKGBx~%!FKJW~=_&x+m`JFq?t3(fnTPe!eM{0h4&mSAL zwzggY_~>29e7OEx=HgUvGM%GM+;Uvs_W^^G2eG>p;X8%dVH_u-ZEm6U$;*& z#^npYu2&k+mksp-%}7LL&eGf2Fsixs=uU^7(a_#4!MC=tnO|#^t6$5)Y;%39mmz48 zk)@^NL7nFL9!!~qxz}w9ac~c@7I4pNRj$=M=U@%r^00~C?lV|04KR#mDc;<4oo#ek zI8~1u<8B_T()l!l7P{=Qe|dm(S-`?JVQ9lel?S56drgn(0bTv;I#vk>$YnQPn`XVu@&Ts)Rg)hP9r|y#m^4Ryg>B~e zbZ(uiJ>E9N9Ikn8#=7W|s7LXpRDr!gvg`1*;zmcm@aDN@RaFVqO0pK&k(zUm*yVJ# zA;jSqj=170NOo2lgTq5<*|nxno_KNO4&m{3#jL!iOV`nlJny->o@Q9upe>$y=pz{+ zqP;fj-2X~w5M?$}h!;1t9&tUzNQBs#kMnU6zLzs}>&J(VkK?`@OL_N8ow_tMVt1Ury0iw8Z%fDGD+&iR+$1g`WJFv9wCi z&Z_??h_t)zbDRH<0A@GR*lOh}_e~6WdbQcy^O!{O6$T2KNBvta8h*SSIbRlpET5CV zrHcea-0|fc4zn`6_T;CI=!tbLcr#;o@6|oA=eMrxixhnPs9j)GJ95$gJ{VA)xNzr2 zs%7s3LqAFXp)(g<_T5Ng#bdqMSK-;~>sy6|UdQe1Hi`)I^2Av?%p>PF)$A1E`JI11 zpQ7<@bL!X3xqcU(6v<-*PuFX<*fju%m9~jHj4Zxs2`)(i@%hZ020EG}=C~pvQa&de zk3f!8+v1YUejC>vd!tG5@$K4WS(P5t(4w6K&v>rDc!q$HNA8adOl}s#T|V3w`oi`6 zwiqcv*4!G|@JhQumNki*dxy03*A5;pU{pLa1}MEIOaYPmLawZX9zHMXaKrd;re<&B z5w*(M<5!Y=x1ks%K^Pw36DEcwnssy4q9>4}Rls#ZXP~fl0Xv3iB7Js@}lM#2zq^yRQMLlX7B@XhOP{oqt2=ZP90q1)Y>03 zYWDX5KevFY(--f!*b!sz9WH@4-`GdJcNd2(PYN6NsiA3TIyH%4I4uJsYr;jLNMzbl zDZ!m2jo^$a|Fo47Mq>^0*>yN<=NRVfFClub4;y-d-a;iupMVR6)gG!|u44+6LxTIr z3GsWm97nLp*JQRE$yY!$WCDI(Rd6A$HsFz?6@A@q7gtpcyWd`}nhJBK5Ed4mtlM2` zPIRaXjE$vJxa0lfX=++V1`^i?Vih#1nXg|nD6qP7_K45(&2Hu;7sI_nFFNkV(GvC! zz+I9IUG+J7BR4h`@i|Ve>@*BdpdA)$k zaX&@y;_iZ-0$cFGWgc9fY+)(+G?u0XuqE*eO%f1vxVY*TRbfdipUA_pu6C*S#xdMF z`Ovo}T2P2Yn)DY4_O5(9O~Wcqbft}aLsWHh=_wo>dq{9jDu!%C7~^`(V>09qNRu;C zbK8H8r>~}jhrcM75CVG~&?`4we6bQHv4jR(>6{onJa$6FRyW)#@Mi9#Yc#YQlI+`1 zb(Vu1O8Bed`hz#+=W!x8aS2weYZ0zqCI)3)$F~fYJiLqqa>VlIFY%x@N!nAoj9M`- z56_mLb!8N$BkVl-^^DAARad8cef`p+mt=S<&wM*yNY%$jhR#&hRw;o)_y81%2lXEMez+llBFgP&Ml699CQgJoLXC3OD@#{ zp9ESOvR3$*XHfpJE%r}BEfE?5OyLU)wwYFeiw3LB3&wD0I70rFsXJQ~af!R+=jK+g z(NIWd@YW^kyXn1>&5~lUDqL`@0%EDmqpyhCaea-j&~nR(Rel0U5^EuCJxKPJFFA?! zO%6W0H)jz}j-)YS=X7ArP*VD`)tOMge;Ppe$+A1)F(?V?1?%_DrMQ1(810Owb*2h&i$KoUR|a@!YI46@f|1t_9i zOG1R{7UYxPpFeZs?p@)a=g02*J+qSpsP2ZzsUjti6S@&TxqU1^;V#03^aou5WbdY6 znq&TU#%yote!X)Fg3`x0=w@Zh19VGIh}*@& zpkQQ%Z$|nFTn;cXTLBRX*{6_pmshRxvEtz?pH`^^X=%udf-NtB znO?s-GzZIGOCp|lltQO{#(NK&%8fyiu&XjqcmffQB9h?07Ql46atBR*~w&cZ4MiEL1?N}L{yU!?}DoH>M z#&f?<-E+V5-1PN=%X4#?qb9eRz$Jx3$%HXM1API#K@kNbVyrd?&tAo&aX8;E$8t|z z)DL9et8@k%d!Lhl>+l@Ji4<4F_(W~4=a3P|`NyWbf@+b0MW#C1Jh0U31RSL2s)Bw^ z-ON=)Bt1p1*`n9UObd6Z&K`!~QAerebeHC2yPvosVf|$w8T>i22yavJ!Oxb|#DvKM zwy4s(K||qy>|6P&Z0oUkW;(1G{V6_kEbTTEF}yLcZbE`O`ohDQWAGFBZ@;GhMiDq= zw0*1~K}#a$-h~R&LH=d&%3E5hG8CnnO=R}39F-uEL>2w^HVsASU9QU-Xik$-t2@75 zINCtH60c4F>~bz%g(m9eAjRe-(qI;&aH(^xBxSzF>Rj z3VXaJqv%t={Y9Tc|A&4@O~EZQUXm>Pb+B^-;i8^z(52hq1n&Yw)0gGEyQ=d`SLd#@ zGu-t5u^g(UAD2rAtWRSE4m#k@c)Z(`xbL*`E+%AneB_}|P3f^!-6Uigo*GGeQP))> zMWcF}&Cz20j*&G+P6(7=lg-DKC-dqU`(W0bE*n|HxCid8Q$I#xpQOC08%3zKMMa(i zc*p5%J;>4T(luX-4YsQ^b|f^HU?gc@B9NQ-a;}d#4x}J-TCn zvR&pbhSxKlDGq5`2W;8Dpv}Jkz5M*bLW}Q~b+7J(9O6?T4?z|%@E46S2}0S*AJgJc z@uyLtsRgoQnQM_!6-2c3VO!^1Hb0T!4q1!84_OnsMo{12zaQNSNE{Nm)k@FQTjp{G z?)4~Fslb~hEyoql#W&>c?{b{^{4SjU9+}L)*kh%e%+CVHs~v&RE$G;L3?gHg~izOOnbi)A&u&JdW3zMML)xGaI{FsGXFBe@}5ks7I$`U1&r zVz=GzdBN+=@z$qL(oOo%9D7Y7JaEEZ!JV)TEEE#f4Sc>}GEJQFx|ouw-o6p5`cXot z3a{)8kmM$iRH|=FW)Jo$Ra-m@Wd)PZ>!A~*Cop8;@2=$KP{hP7Oj-O~D5u5^nd`rY zJQUD1J2*MN(M=O!#G{V>Nk_5ze2^pP#yQl)kobDv#is=Li^;k><(0{wOMV)cpNz7& zXhc!+{y3nsuW^v}^(4bBNQ@pn93E7X&hI&bGVjmUS2H%eawvZN`wcx1N;8~io$61& zpZ{Rf7D7jH#3h^`J(Z+S!y=0R_{pGKYlHU$oYBvWAwTvXOHeADCv4oXI;*Z)2EGUO zwve3(2oS}|!EES5-J@4Y;lAD)z znJ;J7RSE_VQ2pHyM1=}u&#tV%>o=a?x?nogTW!Y=-iXpfPK2EM#{=%LP0K1OM(E^_ z5{XYH`45(6(`vE48*x9sIIyC1B0*$*T`|9JpAXZ5fAE3e!R3a z0jE?ZN`Hl>0L9~c>@(~H+k8dAoqH^`)l(;(3C(qMf&GqT_wHrhSv+k%Yd1mLyRX*n zhCq~9eT=)~WdAL`I=4O0;u3+FjUU>c8s7rLsw(J6x%zXy*bF#oJ!(Ct zp-`usFm9@bu5r{DgPSFRXUYNz8~2nZF&f526H!MBM00LbhL+Nyq-HqZ@dav%qX;WK z?eLddJ|S{e$B!D68xKwCJ`@^|`oMC3^dY#zp$C)=0EM;cStdU|+zvl%sB)Z&KCX&O zcxXVvgWI-KLJa~Ki-u#kgAv2N=(a8ZABMf!{QlOlfB?$ywzJlUr#Z_8yvxUKdf%d; zaAf-U{quyv1H<#D1;+_rG(IkyDS5LG_hl#+YkDnJx>n*nzy`)4V;`yGGJAI~2n%1@ z>&wG>m<=+y-Cgptl70CuG4)mGi=!`uGW(Awhj0s7v`1GgUc2z^+d{*;*7JsB$#X7Z zx5B9-l8H87i|Uvl-W4T>YTeY%wo6$RKH-EsuxP2zN`C(N=+4e$HQC3-(dG|f$S8!? z=;}8^fR=Ku9h;|6>?$)6mo*3Q*RI~7)0utCcsR>jz=;olY8{CyJ#`vHm* zv#}cvLE0%8YSlDg!Q03cXW$Fcxzq8@u?IJAh`v!#;>-8DhrDt%xZs-FXwc5ahvLF_ z*Im>Ju98N4yOw)ApVP?f3WxsM&6t+5i;9zFmuY;m?T2dT^@I~=-;H{}E-&?Tsj#40fP6#2iBn zIdFxEXqi1X5Fe3PZGB+#q4%Q_!cmVKha;vpuHO3g$SLkottjbJ%s~As=0sxy-AgdqJ1|0o;P~|7c*StXzKvVQV zGzX(=fDO&BG#Sk3uD#vP5@FbT13gW^naknc%!#sNN+|uhxkY)kRcIy05A!G`Zi8Td zN~z#6pgO|$(z^xcE5tl>m^&mKGk($w0$fbXuby|SA?WfXlRFCk6()W**aT8QzBBy7 zBTZX2y?vu9h{!bgU)Y2r;MZ^Xej3@8mhbxE5uJRV?)8+f*Ne;+g(i*uuU~J2E)N_F zj@>vo2rqgBiACki3Tgs5UX}Na@IQJ>&5pvIq^n=!A9}NNy`0SJb{h-D5}=p5xfH~w z&Fhs1@cdIKGKZp;9LxI4OWP#T$?*qb+M+Lm)R|zet$&?%690ZS>u`|lP*C*^UHOHA zuG!Eu`7j`RK@!{F%_!9C4=FT{_duThgY)09yTOh2 zCH^^!qm3C8o%fBz%{w?N6wXCcTF(#?hg6D8t zS9Hb%#wBcnJHdGY!?U=+wGBBB{4R;bJBx)Zx+_Nf;^MA8>q}t>NM=M-kSeRAok+{i z+Mbk}n0}&$7QZ=C`s3^Uq;tn=c2eD#ViO6J;A>@7@q~ajlxmWT&p0X;_;~EF87jNlCeyt3v ze}&3_q(7*t}-L~;szGKC!ePb*;gz{C~T%Y_9)hxS{q@tXU_7SH934C{Yq}t z-5Q#wJg|6K+{n)U#RYg)Ed5`zXQZ&_;dMUteZF%t<*(bZw4H?LL!jF3mV)-H5sl=g z(poMCvHm#&^#qaZ zZ*y7I9z`K`%9=Muq~9TZH&qIL&e-0wwYqX>vngA~r@&BIax?>;!uMZuWhftg(F4co ziZm=UBH)a9+R(l~ko=v-8t&fJV$xEJO~yZPq&=3`X%Rl-RUGL46@>qV4?W{3EyBie zrkUn(1v&`IsfAJ<1`_2mizlOYyCtOUAB#oI#zIshg;6K9;#4)8_})Q&;A{TX|9nnO zTR@q@GA^blyZSL4Lj=1r14{yG4r;)YSdoIfu2by!`eTbWr?)@T`N15s|JNKp2&rHqx z=ffoeMM>L0)3u!!HXZ7Vso=|R8`+hS&$vK{SM-Ve#{Gb2iRzY`xI@NC?Z1{0Yw7Ad z9p8a@?JOMg@TB0jVoa`hlqd<3-M(4hYj^ifv5ovp>n=*T>cjOw_D`@H>lXfNc-0Ct z4pQ_EGFu+F9J&3+Fk=LzS*}==C>0XUeNbmnG^H# z-QU!xBEbCKY%Ta|glH*A_VaL(ekXMidXj*1(J6RpXvs{Ck<~>l2Q!O(W~(eVXjZLvqs>^ic5sma+K!Z z1ETZn1ajnVxEx`3C&^{BIHP{)_qcM(t8Z^e?W0@N4~`@5o)?U{2IbBRM|#$33I2l>q{(LBPUKD`^SUiSmzHXEbkaqQD$3)$d5lF5q+W8dm98m zVuyQct2k!D=RhY|x7j(kL+k#(FS}7hZ#&Mz+OfRGmnz~dxsBS^HgYHlhP2Re2s^F%(!bV4iQ^Ai4)zOSp~&h|78DD<3hQnugM9gd-tAN^r^pQ(%V?%2!VY znf-+<%+5OZUMq0W51%KmVKq~3`!Y)3LuSqmm7O+^axPNXh`Y|? zu&apPFtN;|xVeS8+uuXihM^~Ha50YSKW>sGO#il>F1~X68gA(7xEmG)kxS7h*7MUR zm_^scG-q@sv$+H($y4{)C@5$m&}S{*!A&ch4P`@GsYVJt)^wia76uaM-+#W{_Q6OcD_PA-~rY0JjkQAkq5!z~=h zq5Qpp1W>+Ki(}3o-guCn7B~^UaO;Zr*_$Vy!azY{vL+1aBDo|Fm-aN-H{4?%Klv-n zN(EWgdy4!YK8PF%(T&3qCtGhv;vc89)7RJ4{`oX@bc=3>8KRb>`46n>tfiC7OYzX@P8Fy2ZPffy0FVAj33 z%n=)8_T@SuBJdl_6L2nA+xhIM`D?B7qfS{~LkKBN)RlsRfwj|w*VbfqoKX|7+V29# z%M>Kv0v;P<=9UOvzV60V`o-F-&%=%M{U0w6Es5wVC`g!=o-i$~TJ~(BfI0z#Ru;xK zzyGgf^>408R|uB(T@*5dBBu?K?BQQ%?vs9JplG$a`Xm$115y`462*icL5m$vRiznb zlbny^Du6&dqmtR_Q1uiHGQ`i4By2M-5j|M-=_C3D5WA6Ax5qv&KaIGG@6s-P?fm_jB5_ho(;zyD;2$(F-q4o=`|W2`=Vj+XS( zjf5xf$#KSC`Tp_b*RYHnJ|m{6iGn7g;@6Dw2uEDV87 zFp0(%xEcI6Y)Q6eyoaUFEi7!6+8Xr(?jIJ)>TTCW#~$H25#(t@ePQ53(5qNiTce>z z;l@V(Z@c+xL3@*q+17vLFRp>c6y1NgVBq`ba8K{Vm*67+f=V?LzcTWi#Wu|}r}I16 z2{ymJB=wNfERQb{_!V>pcSN8mAdvRDVQ**GI^FS9&B$nJ)Pt+&{kSkPVRYJ<}Q{M%BzHT zpWNa_H4dRiKT4I{MQ!qZqPBS5`(X2o8v|*m{W6>Ucq`?vL;d8VdR}xT;7M=`N&WR_ORZ;BZo|!JT33 zDQRj22Sc~svvEXV8+JHzf;G&ICX3|4``AgP25;O?S>IcHIm8YOq~S#h?pxQB#cAV= zy*JigcDYH;Q6%X33fsM> z^Xfyxfo{ltd6jy}zv7Eki?+(>GOXSSBS~hCAO+p~ zq|a`;+A1K$Aq(JBRDo8>}aRHvlmgG26GX~L$PB_7!47&oJ^hpt%|{GiVxjew|j`ry1J z5?z5CyMIQI0e5ET%TToCLq(aj-O2C!xQU+9zJBcSuNSg;#$Yahd!Z3ExJqZwqrS&~4*&)HCE+#PB{Iav zgScopdhwa0?KwIJqhqBvBT_pRw2WwDhXmW6lBTpsF!;I$YUANM-6 z@&7urd4XMa+X#1SCIC-lS9@_@a;?{e)`I>bx#j!f#PH|zQla72GJVHoA7iFZIVTf# zJ)t9;@tYYr^A^#h0(qs}Cb;Up@cxe%`{bSz?@Ag=accD-ETM_9#dIQx#;nfs9R~kg z0`5}U`PZcsiOle`{tEZcvtkBj+@p-3!a%shP2 zq1+IWEX;}4RM)$!SFH>US)w{Pp`Tp;tE~|zDa9nc@y@}Q8#^|t;Pil0`pk_5r)tV+DFSeSqR(Mw~-2aGWrc$;`slhk;K2&Iz7d$tB#n@E&x#u@9`ST=52R{KJ7q(a7q?YuN-=kBbp^(-U zsJ%A)5WfNd?VZL1X&$K1aD0Lix1QBOtbli~=Sm~t1D0)Ym}>#6hX;E*KpS;j zuHC|ZO>}q*H^#zVd=-EG{0>EZx!bS0g#Gfxolu9XhY*kO%H|A5semM4l}5U7cc61r zliTI)pZfD0=>=hI_|sXp zxbZnU#6(AH5m@yI^!OMB{L65vKr-wM@Ob^B#zo*UM%t_b4`$BQJ{`Hf zo`%mU5gAI^%8^9>J@BwQ7}r|V7Dr>yWFZM)1^f+ck(evM98+>gOe2sR4Xa3Z#ADQF zS{eBg8|xH)I7&${P)bMw zf-SH$?|p$i$(CJwJp$=;Fg`2sUbf;@WkycPQLJl$o^el;&-;A`FX{n4lp(i1*=gqK z0t?*f#TlUlWAeu}Fu+UsmEkCZ>>SUW9d#CFLGtN?u$ne^X{_<#mhpxP)m>LEP3cEH z)P)ssA$Z{LiI0W~@sa5vr-rOb=k~F;;r&2Ut#wc3ji1(_( zzE?si92rIX-btl`QSF>Bx4u;|1tG3q67Dg+;usv6yzzmJXXyCHk)x|l7gxVJ7=0%4 z{L#S;ro30+^o{hCO)D(yc2^XRT-l;qb6}Cdf1Ew(<_uh_y*3U-1Z6pYH}920-viyv zjdK?&F5n+Ue`Sa$qAv7bXYw_dWY7&`4#2GpUsxH$2~|z2U@-0r65%X$-p6X^B?cBN zC&IvydkTESyB7j^-qn?s_C|&;*w!(nk)9!tn?$aiIDH4P`YdPJ-X8xExBkxCcfY1V z9?<+Pg3m&R!0u=Tel&ClEIWfEo1FBdp-5w|L_UaJ3Ov}^@1}pm0G}}ejlr$!CT%I4 zY!G|<`tJ;_(g(W?J``5&3>z!fi?ar|g;7E97a0s(ekJFA;L_%!1y9pH%UwrfOT{*M zM)5Mc6xQVO)99JnI1p4NVQ`VYiK_agA9pO*|CK$S=lmvevT&EEoUWV1W4NJ>8td4% z^7L$(xq0~0Dx~ToJY3Ih%oX?@I$Bu~+F!qvfO8rLZ1U<)kKKo9umybC3vWRO1IUt< z{edq3|3Ci!z_cWRrxttsHTFowI{_*2Y{njQT#!zu07Y*1JK{U-Z(hEnE!BOecc$hQ zCB?Otn3$L=oVa7?*B=CqvvVw|8P}8R??32h09Y9YUOoTp7LUa3nG<49V4cC1{qyG` z4?N*f?oUX1=jP`(V-R>0;cc=P&TnbxRob%vBR3*3alTF?;O48BFKN0=BAaRaVDRqtUl+adlWhtb?R& zW5Lz91w!UPXlC^(p0iwC-UN)=s=oM=Mx>^O8e#XJi5Xc!v*-mh`+n!j1~HNl3NVe$&{5@-?dujsGgh^^$nixoS@ zDtQ7+_^#M{<4k~Y$=mRg#qQ=3O~!7MkK4PtnsIy=;LJ11{Ok=+svpJipe3j-M6?x^$fcK8|S7gnyd(Yw8QU-Mi){pL- zia@f5o}Cg0{R0*V!EZ0lCiy}8+~Z&wd(WG4ik2C%dcO}|C>(lhiTjbPQl!?;ruw8H zsctZ|{46dgxQFlAmY*6(KPmxE_6K+$XKyh+%?chQE znCI>H@Pv-dJ^ZJzv2vxP?3@MxL=&OZ23(IZ;DLLT`qZ_%_J@>vKHJSF#bx5$=D1NQ zgpvo_Q_1feh1!@ieb8ZOq!qjspE3J#{h_opbWI++t*5Sz^<1l;8vO9#i)R-nYtsQZ z`JN1X(o2vEJY70f$yNNIpde;u9EF~R4c8oWhW7X=snyW>?XQQ>E@UpY!bJX+CC%#9 z_pfJD<~?uYxb@KG8A`{h?iIIj(*CATl(dz3_M=slu$JGfNe)0S@QSdmFQ18t5R`*R`tdeeE|BZ^o)$Acu?iM(m5D^u-po;pTlRO zx@u5%^atDVI~31b0*&Ql_EuzP<8G|lz5^;$#)@O$D08b|H3)&_-Q8b1&&O2ZS}4!P zon7q`EH)up@Fb0`no(FV2%a5iSxm24r}{R6pnUQ&Aeq95(*zeQ-Xow1J=_>FmiSQ$ zz9s?2VwvnGk;X&kQ4-$eYs-fR%M?(b++m<_G+xGWvUH5xTO-LGNwzkQF8##?(2f>l z%LB@^lc+DyfMtp5+_aVVe8o*$0(ho~7e|f39Vmb$f`vSbVxo?8hvxaMK#fxP+$H6h z0Ls>K5AYIpt~)!Gor)RWp*1!LN^W2gWb?zOYM#!PA%-=8QET{$Q*6`$# zkX)}`w{rbI?Y(zA)o=Jee$H|1%CVDmjLIrIggQbt*<>bU&$7oM6_KrB?+`*m$sSon zDI!HyR*_LC)%SX7ynBz||G)3|^Lamd_ei~7_kF+a`?{}vJ+JyH#^Kkx_gVqL@kGuF zbE@Byn-L3-iT6d^U2IxH`0COvpdrlNvdDtTw5H?TB|3iB^Bi6r1A_bTsOTp z;dViqQe)EvM@~zzF+bD|X{oY&@NLg}-83Uo(skD0Fa1 z9b9r@o%BX@d#p1dXjmGWh4KkSADZqsMQCoo)+kM!XLV~lae;l{Wb+ZtR&j4Y2?||T zFcE3V7$xDZ7dbcRIlY}ffKjlI4K6K`d5RFF8DkgGqPht)v1;fjxA%%N z-drbb$cvnr`I3_+^AWWNel?P#xkkqaT$f(uuU929Q(^(yo=(CuR^_MY`XRt*K`2Fe zEXkbtC6Klx69o_nufsT7+}21x#v@|6HDQFYaqqd`;t%-)P6E>Xp0vtr^|b#j1eLDB z2+eKN&yn8FzklH!z_*qi55PnGME8U;Ms#*l6PMx%quvsyYI88~o{> zjn)Rt({n6D-9JyXbT?$|6-m(4-NEYgn7Zj64bWpTPrabVBOp@B%{e-f$Iz*y*-MB~ z|KkL#*}=S3-W`=nq*(PYzQ@Beb#92sFueG$qeoHB09x`>e(lhv zT!^Vy3X#2&ub>FrF0@RZR0p3^$_3q^$!g)+4otQvdB2^_%as@;gfy7L~;b3ax zaufWpN_#Et4>I6nEKfLT!SksM@voUr5_EU$*lBdW)}T4pY3qe*SQ3&mhWO+aj`>KD z0XXz^k-JdCZeU2Iy4cpC-pWQvyNCldi#OgB9=c|Dv*MHny7D^s83UbYPeTMJJ8Dgo zgOoQ|)JffoomOr4#4PJAQZQ*4;c=tnFts2>ur7P`AT3`%I$JykxjdM0sL8!T6Hw<> zH4awk#HNwoM7Bo|HM(C zx@Ud)h>Vwu7Uo9+U0U8pxIZ?%RFJ6odm34My)VH>>FO28JLR7`7v!I#tZ}V4o`Cpe z_EV&Rp75?1zBuzZHiHsjSPZxVOx5;NdmkFCwM2xqMYbb^kZ3Q!`v$~`2iKqy%%CF) z^-|BdXEYJ+a-Haai+4R1y;9}zra~|It+!NbuH9n;RU)QY(wY(IRDSAjpPj2kz`iuu zHW+A4`)QYnt*+fQDoUj^lrJIIB6QeZ2ey^_k8RZ_+@?}x9{H0}U@bT;U||jeuLn%^ zVfowsTz)(Ot7NVH2T_PK(nWFrcU*OHTZ!Sve=-2fFP(kiJrM{ihn>arovW!5Id}G` z0bV$zqUfdOIczSR7G1{iQ_Y&l^AHvN_g+R>+F%3L?&Ga z)?)zrCeV|c=yUPU(fK_^;6^YU`9K-xfvPVI^1I!dyVs^5mWB~;jFs1 z=aVOT^L>Jkw8pc}U(V(gwzF{4jKucQg4IdkO56nuf8aP1RJy^ezv1q+K*|}5HCZexonL(&P zTAtL|(Yc-8+sJP&%`v0rRVYn8=k8}0FXwFN5yWnLaA`q0l@5e}eqKqsR$pK0%Svmv zwfOOlw2tmLN%SnHYc0>g>UaVNeEsaQnUp{5@$TPjLKSzNsMC%H^@U&H2HaXc2m!qdtwh7mpEWCrp*D~TSppkDb z=MfYGF4{>4!gSlHI$|Z?e9?V$v%^{(cl|RG)P$0UIvzYySAbZdvu zY?Vmsq|el?BRj%0nc_1v*2k&Gl{$CE%7z3VHM)XHOt8~Wlt3y_B_ZF&N&0it5pYyn zo^WH@!C`r^FQ|UsNbk$8i2Bek!=p%Se;lcybZa^|5hGp!ZQdrJK6^C<@`;%bsX)6S zji*nZ5Wx|H)bC!E^(}A6rd?o1+S*BRYA{XPJS*glJs3bDAm~qR6mjMBQSA(nCqoc# zk5)hr1#h5DKPG_aWqTO9*-frD++9f_vb5`XN7#`Z|ycZ7a!@%^kVA(yCh2P-0`v`|a@%(&cCxJcVx|2Vs>hEh*}P_sK7U>m z$nO>39WD#P|E@Dck(EC}p^z{c5?M=T%=h>Z>BV5X_c3!c3*TxZ_@ zprFMsH^i#~{*zKv0|KI?MLazyj~X!+x<6uKQA8XzzS@Q_{i`RSAhiXmu{~EFO9f_9 z|CmQ^Hb03?ZIa()*Az$TKA;O;Mf4( z=OPravI!cOpZ2-#*Gb=Di@x^Njn;`w3anhxOJ;O_vr}HY^z3q^8X+td7ZAv{7Scga zNbf=>pLB{(i5w%Iu)_&onN-Hq0YhCkW3^#cf92JG#&x8Y1zb4E-sWP${+Me*c;T;Q z41&gQeROInDi~GR@1T|2-Y?^YW}4V>)EBM!NU0*ZK0IK(49PO!t#_9!;_p18#GA7E zExW2ZVMvf3bcao2H90>^1A~Z~nuF8UD9aH_+bUwDX>~Pv`*zCwD%tq7;aT7r;+h}_PL$Zc?cM#1ly^n2 zBAARJUc^w}4FVoAmdDM!$&~~xjhp!KBf>l>N8~hITbjw6D66GiIKApZ5l^NqAOlB za%Fhet2?uWh zV9jrBaC!%YFG0xEyAV?6(nE~6-_|Nvq{loItc8V*mAUTeK{THJKVCqpkKy?P6spV@ zQxnbKNtH6ls4bi~sgg@BRDgQ5q^2NHgV(V|6;Sfb^=KP4ppO?>Bh@>ikd1MFSAL== zn?x<58ofD>K(Yc!^G@v!t= zrlj$#;%@J**IhQsYJ{G_PzsyN-x9wMl6OBHc$!mMewVCfyhvBtNi(HvmcJXwXxnZQ zeyGjTMd|7S>NR&f%TA~cuLd|&$8h-H_V__$;VD$==!E9BhrHPlV7*Wt-3?+vUBuoN zqJ5)Px`cd6Jwkqh<183<;fBxvLy3x+HHkqC7(kJcqC4$<5UZ} zbS-_bkcFotd|*2@sD-0Y02%_$VV$&jtq0gWD~)pg{Q|J*+|<9!-&$I@xAJnS6!woPkkP z(5X)pNEP*{-oNI5j#X-Oba80~h-fY!CBFnBQddv^y!sNf8i?vkJezPuYS5gHZRp4R z+5g-EKB`C*xO^|%tRI(O*NZ-PDFtK^pCUhdk=2+V15<3uLi>&}fJ$F7)2E7*P=No% z_ObKfk5{OZUMe9{r~<5=*Eb}xvE^zC8upWsk>s0*GPZwXCM`hP>aNR&?}NPGzK+|c zk&F-lMu{#AHz62w>A`!Rc?{yPUk$KdA(UOvgOMqxcGIDCLJiq3WD^?f3jVp?B5KvZ zK-qfG(5CN$j~B-PCgZXE>PtM@wRG+8_au=v?RfOG6kL5vW&n`=j|JBdDNLZxbX%?e zN;-X&U&5~__W?4UTB_JHh0wxc$xQU0uN4qoS`4kM7HfHw(&JmAv8UlvXZF;}ho~(n z$Sny-zhaT3BW+c_-zwz|wY-v`4I9 z`8^C`Ie|e7ZL8bkC`ns+q}yKe;V*^-P^h4X7+(TQ4diW+9JnHw%;RelG^587opwOUUXE9!(E zkG>nbBW;Pl^L?&b;G2qs0(G0V2~P$lCV?nBMOY(4;NtiWHt^b zKmNExW1L+kzlrf0O5pK)zEg6P>7k8iWN7p0CEHRF!)KZIA(ia~_hEPGi_vTPoL6ZT zA#E(N@HRU;JD@GeegGpwdYMbRY0eV_&|$V8!m5Y~r+MGZG&3%^LXJ)r53zx-iKbPy zlmj=dvg*0a;)xn?%dTXbAE4iBnUca0ZX&c$MV^*`f-Sv8)v7o>e)k6SRG|g5x_P(P z4WXgDNopJ|^JDsOPf%KlQ1(Ptl*k1TRbf%WVXYceth;vgN!e4=c|ei|qz`xR=~O}s z2*yoC8SnS69P$CpPvXXjx#z`$(Cl%4S?d=CfQ*FW{on}NHL)-U5MxLTI^&^czp=I3 zdirr%ds5}AF`F9_2t&QBN@tid-g+aX1S6&$0Xx0PlvZu6_BV!pj4CqFeB4&ZQ|{&< zEik1J&&~bh|Fz<|rzYt!yE)X|9UYfABIJ3% z-NJ44$wVk@c{wk>OCVwK5eIJtE5d@i!!g{Dw#0o&Qv*g~D%Dfq$Lm3(f>(osk)rB@0FMDfTkcR-w81|M5Dd0 zw<4$2&6z%A{c zG8WO`;LWy96RV&l(pGP-TGeb}Am-J19uA$H+|8Z5Nu*njWIy2DOQp4j?Z7CNh&D<+R&y;`8SK zA(IN!_#}rVZ-wmE+sa!a=prZkdxXkp_5Y!qAPc`T{}85a=_}B%s6N%=09<_4aO zRG}ks={?cd8lc~R@^h|xE!of6R&g>@Qeq){YMfc}zb=!%)2mmn-l?jps9d=I?H$7* z*q`^3m$=SXRkiq!8?Ilz|4}>_^k^u``}alkcN2nY+1n1ZIuDmMMa9}piVKQkk$hn$9#lpY$Xu02nq664jP@DC%2WX5hbuHwj*pik+qc=Bmib@VXRl)k~ zMlT|Fd&qSjO5p#^bn177LUx58_%edG2I1pF9gPh*v^7Xq7rlsW9CfggwK3fXNSYqc zU7x83y7*{c}?XJHAao;1tUON;}R-q=SOnPIIiq?zz??V5;as= z{Tkvg1`s4!2wB0*B|VVhs9MBy`n)z`CwctWjh(sySoF;G$IcXj4SD2Fw)kl=Ab@jF zqw-JY&9L9<(pHLm2~sOTS3;VRlY|&QZ2xs=8%~<&rE|gt8IbE4e{A2(whRa`xR3o) z-`u)9#*nWKIs9`7V0(mVt}VGlCM2{mKPU z1UiuZZ#n?SIki<06q^7h|M4d*2U$Q}2Yu!5=EByEy!jAuJRa#sivKD5!+V~98(@Fyr#qFKg}YAuFr~1_mw& z%L4}riGwDL;xgBm;s=bfD@DVan-8>3h>GJ-21c1gu0V4Km!KVNuE1a=K4yuYBtw8! z<)AMBlCcIAZWmKicfEp6XTXrMAffs%M%8l^4V^f5#mav&0oE!)W-IZ<@cg2VOYDrqoOP%P;*FyJ% zd^yH|;~A8hK@d+IFE_KCN*@dQ;@d>ZEWHns=txhIPXZnyE0ogt66AuwsmGD+I0Nv& zC_}OQOOT4aF?|x$(H_kRKO|wV=ZXjeu5_khTm~ zo?L=FIq>p@D}No0TWv4Wy)^ipc$1{}Jcdr%3(##ntH}<^%6dK$ZGQuZRg3lH0T8fS zhkm9J7dS%@&{NQ<`2r!L^@o}*K$?HwTEwgT+XY)P`LyU$1W3V5&vG4qatZV+X<5$d zkpMyH&b}acceV%WLjbTc{mg)=NkfP{0v&lu1-zs7j0DYd&}l23vPte{)!cG{J5oqr_Sj$aXgjrGe!4(O-bID z1!Eje6*U$3UzKR?v065J`Esc>ozW*;KfRyj3ys1fJ+%M3vr`W9GsomkerdMwe9p%v zS=g1@>I1M0SEW5p0*V2S+{<>E(GVJl3${Sq_ac-q=0Zq@KS#Q)va*tvnt6XKB-N#L z+I>uZ(0SpBa`QMt>2%f&g1$axuU46|TlqENaDXYgOe4z==^|<*Rr3r&ON*fJSm-qA z8Boxk|FZ}*kH|+hCzg(jXV+<>>#cnaFtt7JWg&mEyqnMGKy(Q)vZ31N&{5O$Nxl)+ z-I?SY5d3;4boF7WCT!5#otdHa7*|(M%}g8ZLs(0y$cM@gpE!b=-G_H_aA*W~#C(wc z?e`>Rv+szJp*Ns68sh89BX)>CdkW|X54 z6~I3rX*H{O^eVi+4%2JAID>(^8F40TGcRtw{&?J|KOU2Nk$1vxt2>QW zIt33$*SipOPIrjdV?Mmt?bX`_#F;Sx))Wl4M$G$XpwPNN+)$JU|M8=z+(s+W;&O=} zXUAH7!@<{dM&AGkcuJM!*p_O4d7%)&+I-f2otS@$L5Z456_=bRNk+<*? z@%9OP&{BQCpgxj-B9KTmevH6CSY-*vjMHc5E&!G# zHt_@!_qewcu?6_>n-W*S-2*s53lPXd7KZ@q>Ru25a7jvi$*+&kA>&nt51Ns}cvKfJ z+IW!vYk_QV68o_W#8q<=InwAX$|MjSduA6U4*Uu{{DfZqYfxD{fbRb}Dy;G!dwEe7 zZ%!irV~wgm)_8USAbF6e?bdP!bs(J2Vfg(^FT|h?odAdM{k`yPIK7RaY za?gY7;K75<((*l>yU~C`pcjN&UM73M`_P^@8&Hw}Eu@#0AMob*=T*_V=lhKD3t&aH z_XOjRk_clfW3N?@^BB3fb&oAqvp(W_ZXc)r#O+dXS$jd zqstio+XpgP^Xn}nX%CBBtnDM=b}H=6>B>J{?vSH=-aj>+m9&)$7kB-bZpgO8PE0u^ zT?Me$){9~;8jv{fC&lyGHYHW&9-Fe5-g$>T{e!W#>6{F;R+h>E#b)x5JEJ`H_wk)fg-olk^Dl13y}ZpMGg?HU>f;lde1)B4rtX zhJ*z6{$gkFZXTI#ug%A~ev|uNcF#p4yuO`ajNhysgJe(PWXXyAW(Zx|=t3IOAM|X^ zgwlCPH7!7qN6goo;uDs|RGP@8D^HXj*?L&*9}jzElF$nCyEr)DV{x<;X+&N+|DsZ9 zvL!$5$dcCLhz#W5sD8_pACOXaX&s!My|;XjT#4~GiYr83U0qLJJ=5J>#XGLkG6J7w zPGJf~msvbuDkv!E=zO}iorHAqd$sShf>FvTj`mRB+2BzJTgQCYZ83w~Id@0}6pk2O z*?BI;`dDj0WHDa7xC=EdF&ASMVXKw8#p7!xZ zfVuM#>IK=Qoxs4T89UEv0HsXpL<)RZ(w;gzn%7Z`XD^NrQ&Hux3j@v12N0d`AyxX^ zMZ#Td{Bo6jO3K%0!P3<*f*uAN&v6fmRdgjKBpe1SPJD(oIFctHZo34{oAj@1Yf-)I zZNlOXtJ}wM5wCvy_~0PA^(I665W|~JlLL1i_jjE~>6r{#N%rSG;;IzGoF}Egt6`v! z;m+}fkUHoCIl|lfZo>nk+IzGx4o|$w^r`v~x;2YlWr*1XnoB|@q)meeBME)SDr#JQ zsiZI#IN&9@hO zi0jqkst+(078U_t-d9h3-5;T2Pi5?f4PuLZXy3%AwqQFIdqI~ZE$vWrgpKC-+Xyo{^Q%dVP(^EN4}O&^#_!u>AV}f z<(tJM^!OW#U*JS-(igs5x4qS!o4e=x@AN(%3CDie|S*KHXe5?B=3L$v*UBmJKC0~R8C!aTbJ-v z{KJP{_t~3~N&4{|fnRyvKMq5Q1;6wB-1VmSn;1`|j$DtiSh&aPt@CSFbRf1c*=Z6| z!6v&$pG4JgN|ljWO1e-@mLh*o{4I2=@Rc?066if(Azb_62zQX5PLtTjF+r0;+pjmf zjVm_IuE{0dw7&M-?tM1aPt538qR)%YR+OI6L8Ymwy+h}6cVWnY0_5KW96q>K?{nt$ znHR;Cl}n9J>jKw|o`epoqD1dK3*N7VTB5XD7r{iHu)a*A`37)=)#a{6=)9${J-&5r zx2k8JH=xk@t8XE;cmfF;CF0~LD78^p}>#zHqH}K;}6+p znzM*&wx!V3sq>5HLC!T&vE4+ayp56@UsK1I^wxA|abdg&J%?YDOGnx0y%>Fo#f54Y z#&H83+ked_^;sM#1Ht*hwlw?1_R=eqXx`jNCns%V1qBb9Vi7`TB1OIs0i||r|2jP- zzA0_b18y|0si=56J>k*4suEN5Vy6id+Qrs9xb>a3&wlsg@=Qu}ew9sxx_auPBNYcR zTvRy1k=E})ju_ST7CbTHFv(34OeCv!cJw6a0hhsSsC_xSK`+yiN}NZ7tTG*@VxZC` zqUgBcig9f=R3AZkp4@}QNxda77gN@*jRd~D=Xug;ulHq7^c50S1qJv1ff!LY0vg-Q z1f$D`g_iWP$A7q>fT9c~dj)+s$xbKK5ZAsH0ruF6ZRvB$OPRAysHk@J{u?h|Fh)(X z)P*pqG?Jn*k<|L@fi&1(ufmM>1m;;v*q7B!&CK`qsHhwDSJql@cqLuwc}XG7LqK`j zGti-VH&5UQ%~=X2XkLNh%5np>>oi%PW(RAXleZj?9zTdLHry$gGc z@|xb*d!zEMfphhOo|a?1&->ZF7U71Q)0b~nV-!%8&F?f5K&2@G&&IV7uR94QrDh*L zx?c#`Sn`XSo9{J{IKI<~lR*V91nkyi`9iS<9R5x?%2U?jL^opr?(UnL5>+dC;Ui_MMR&;c{|I=dTeXJYZkjtgu*`0d)U;I8ge zNxu&|itoe5DI)j@C`$eB-ghYRV>HMXY;z%x-}gT7^i+CV6m^_3ck1`EPd|5;Y_G9< zN;R<)i<@ZGX2cWkiSGD8@2`MBr6odt--9%??c0bGa~8Tq)C*td!%)kuG)L!CB-2hm zYqonRN`ZeEl_3CBc9QJ}_21tIKRA5*O`!)!I$oS#9a!}|yV|JXytEVvq z0<%nua%N*!iC6`csP;PpI5O4=WF6!+9Uzb*6<7AcHQWa45U*e%)Em~27Lsr~DU zAwW(7ALFhDHnrn%)-T#ZxZAcFZa+BF4~500swg$(OWrsNBj63Cr;gvCCG?F`PugNs z@iC6VHuG9Dj#8;_G0+@@UZh2PFMKU^2SOsZ~s=uzetj}V9{Q}|28L!HLhr1*PQly7iwMd15 z9!4Zm7%B0^MV>n_O~C2GKWaKlVpNX@g{7x!pl$p3Nid?+ZV7JNXZ6e9)~8%lX4gF0 zWWgsmRfIyfUTT8vx=La(c^7`j*`OyhbCRKX(^(j%RU~VQweQ%Gj!6&!jGHrW*jH=ji``F#YtDf>NOGb?2k8Ue6l6z=D^X0R_Z6MXk;^4{S z|3NyHQfD{)40z&h=w@|s2Pzjw5F$Z+!YzF-mVhP6JW+O|My}`KAJ_BUqwG+_gyXwz z819T4;#XzFvf+S=MX+lBF|w%a*;*5&>jwska%u)$xQtX96%g7}*kMx z1sS84^_qyDru(Tun7eID*plFXQoajW{F2qX>!GfW#}wrDEXK{7y!tMi}#MPqviRe2OY4;p=+lE__JYJ*dJ^ z>d@EAjFH(G)sq%czsN@L?5$(@4<497m!D(0x(QufegUS(Ca-Z201(R1(z5*ha5cD= z<@uQA=drYenwor*T{;ZH!bs8j;X5Jk8I&3sVXFm`;*}5%aTlYid?J(MeyL$^-5twY z-+b-Hn?t?FD9*f3DwN-p62#4t#W&X$9cOiZe!Z$gy@5eg_{qRPq3mLgu&lNvu6}jlMkJ zX2@Db$fqZKHfG#C;*iN1cYHR5+XuTJs+?V4-O~lE{|s&EF>Ej-_#eOLkpud0IRe4w zliD#ZaBUZ%R+e+(;iYFcZq}y`(nEHTzJ^A$Wzdo`1fYZ__FUFRU6ZZ0lzn-K+6EgR z!z#aBmKR~=h=jUuLYx>BXkuj{R--%Y^Iq4`v;OYloaQFkWYXQ&MtD6+ynm%Cx1WRo zv)OC{_a|)aVK$`f{xg^o#Z70)ISu^Q7G4Vo3Eh67dD*DzIcj;s6OiI&(ndE6GlM^w z1_N>di&WWZOh+vHQzew??V?yzqG!_e6IT#jQfo_&yO73zt~&BsszAA6Ec z&u{8UrJo7E`+n|u8%?bfDfbYn?}m^SPuiS8de%ectTJ;JWj)%f@_~1m_8m`NKfaw) z90P9V8;trjV zWqL4zjSw^i#X0ogakYWb&KIE;kmV5gKystL0cNBpIH|8lmJ}NmkbYlZDo%OJ zXJbJGPfn+}JnGK8d7~~2h-^1RWP1f8p;oZY_BkOq z*ukA~D)`fdFK32*W(Sl7Z#%W@5X7la;}arJ|6n^O3YafO2)~ivn1hr?_07RoU(lZq zht{f;2ZYW)-YXyGLW$38h9F`I07;tk%B^Sy@NuPUp(xQAi4;NFh+w_EC0Id~_}K*-( zQ@NI(2lm^L^BxUBJGf*V>Q8Q39o}bIYci6Tsw4aUcI#OxuO)sHi@<`r?4t6b4b?s0 zKJ6{x8@*vdB^5VI6NN(2?pIS%Fo^Wu=6?CxmGtgqP*j$*c7x$3zQpsmoikK!NvtsY zFg8A0Imt>m29+3er77KWhCTi-spwy9Ez))EP8Xno(tVd*gXBFnhx9cfR;opFJ03=; zg&vuCk-pBWi&=n@F#}i*)H~Y8)n{L!Hx|ibb$!AV#&%Ha*@B z)Riofk0CC;z4B||@F1=$$u^%D;W1Z{>My8{%(>+)i7-=o@#1|GTUV!iYA(%e1nE6m`gWrm!`b?dm{i5XqUzfA#&Ii%FMTaQx3Tjo_g&_BX zG<&`bH_qQ|ums42f`xk%p!3n(%40u*0(~U=+1e=Du~hJBB)b1%`@MNu+`ewShe?>` z4*ZaW9!B+mR+4iksA;M+Nh@yRI%x;?E!n?;^d<|>Hb!#N`111dM*HuL8i?h5=Z8gq zBU)na-toP|D+|O&W}B5sb)>JKx8=q5^OM}@zaGx~h}4z!VZg}fF_pa9YlpT4Hb_$9 zLkb>osGvmWyXPp@X*-6%Q?VEVEmKq^Qsw-sz)34%*TtZ9RYZZ=+#}4W+}vLkHB=w` zfb*19yWH~2_Tv?+^j7Wm%L+f734vDgAKXyeW-UsBuf?P(Em{=`8odhaB+n|veP~uG zUfU~ps0ViC)z0m|WGQ$FmKIz9<6=7USr)`4Yuoh#tnTlU^>G<@XR70Ls0SF5UGf39 z0rMraBTwMjYxPYEd5fm!z0<+W#lxO^Fcj4Ca5(+$# zNCQHRhL;+g2SRv#Oc)2k%Ux+fO>UX7GR)U!bx!7lU2B@J;>J+$f}sjV!Q_GhoSxzjD@Y4p4|Hu4I+wzP}>yIAjFP1*cgeXZU3s{#YsBZtZ=DVF%hajI zAAYt!0jtEb!!84+iu7#J1UUIca6*4Ibd|7CLjNS!xV?c;wX;8x8HVfnx`e`c~1yo z!$E3bi?6*szJ~oW*n~EiS0cqk`9rg>Te(yN?UJwGvgoSw2*n zmSvIo){s3Q;4?bkO!0H_d_LF}0Z|ueFckQBG;Frid8I!MHg_@NyM{*(_6F-FI80`v zy!wqBvY(!H`k3+HyBA?1r}+BZv%5PiJ`S>mQ5Vn?F0SN7-E{B2?D>M{LsJDFL$MPq zqn%S9>!i`GQjFx>)|y0=P0WFfb1hW(@BRbFKzA-*Y6zGmJX_Oo)NLOL{`{@w=H5^) z`Sb)Q)So#W@zMrc6^zMD)+FhDO^0_$kfs!l6?$2EtLWiTS zTTiudN4*&fwus)^-0jHb7OMVZbN#Gt9SrukdA9u1hTZ&`X=*|G@9zT3NG9v3ZNE?J zEV?`?Yp^<@bp84$kxgIsDg|fThA7WRQwD?_6oDMhf6f8!{Kxlck>L(snSH%mroLX& z`M`qQ2ScI5)4Ky7C16yA1h%^u^<{sqvb{3thtRBlnCtLe$LXGop0#W5w?l$FBV+Kc zIlH%0DJ4Y?)z#`ZZp5$^NWZxP6) zMt@b^?JY`F;_izI7L>T{eoiqdn-L~L!D`_*eb@l~D*ny%ykpFb_hY3L_;-K)h^yEG#_&-suD`wm3pQ*8 z`R~tye`rjF+rLZl+@F633*z{{VL@(8b8~ZgymYz}yUyHd5?XY6QEu_F*8dhXnnZm-~qk(;C=7w0UzfInwy*B59SE{*!%lj1XSlG8O~1vb%!@C0c8!*1$qvBdB=8{ zV!983>T+tk$QU&a9f?6wmzLLmp7TiUd|IM$S?HcexSvk=kq?rH7y@D=7 zRmxEDQS+{Kao1@T}VEI%J8HBDNd>x~Op<;e*7Jj>;q6gY*1fm$u%pjq$Uw{OlV zfX?^h3y;DVK9oFZv>RqEVVCupNz~Y{3wARCM;sEv(X0xA+ic}%rdbFdJ!_4kr*DY< zJ-IzdY|W;4c!;)3G(ruMT|od1h9p!`PmWjFd<3uTdRg3;A>_tN8Y9iOTY| zor8yhKV$XIDhDt@roQF)tnt2m`zXI4&8VaHCO*!PHMX;}lNWBJ{kbdgw^0zbt9mCr zR&t}f4$3$H21ejVgnc;u~%Da)T% z{?J|m>V(E$ybUNu5-3K}iHhsTcKjd$bcFn$KVk-8sDUDWP!fNB4*V+?_vz0cDNH~M zHOVW){qYDW3WFqny+MJu)&knNlzQaPzk>zQ{O^K(?b`qD(ErlVpV#Vt&@Bu5PJZjj Wd5c&r>3l}RDQ%d{Qm$%OAs~y literal 58147 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 From fe2f9d1f1ca62971e89ec04fdedd8e4760c06bd8 Mon Sep 17 00:00:00 2001 From: Farkites Date: Wed, 13 Mar 2024 17:39:53 +0000 Subject: [PATCH 34/48] Update plot-schema --- src/traces/scatter/attributes.js | 2 +- test/plot-schema.json | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/traces/scatter/attributes.js b/src/traces/scatter/attributes.js index a1e44aea459..52b2a13688f 100644 --- a/src/traces/scatter/attributes.js +++ b/src/traces/scatter/attributes.js @@ -692,7 +692,7 @@ module.exports = { editType: 'plot', description: [ 'Sets the layer on which this trace is displayed, relative to', - 'other traces on the same subplot. SVG traces with higher `zindex`', + 'other SVG traces on the same subplot. SVG traces with higher `zindex`', 'appear in front of those with lower `zindex`.' ].join(' ') } diff --git a/test/plot-schema.json b/test/plot-schema.json index 457f72db764..817765432b2 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -14843,7 +14843,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -17522,7 +17522,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -18076,7 +18076,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -19483,7 +19483,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -23960,7 +23960,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -25015,7 +25015,7 @@ "valType": "boolean" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -27432,7 +27432,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -29404,7 +29404,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -32175,7 +32175,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -36528,7 +36528,7 @@ "valType": "data_array" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -40539,7 +40539,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -47289,7 +47289,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -51522,7 +51522,7 @@ "valType": "subplotid" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -73476,7 +73476,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -75670,7 +75670,7 @@ "valType": "string" }, "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", "dflt": 0, "editType": "plot", "valType": "integer" From f9f78925ce2580c2014e46a4ae20055c6bc29b52 Mon Sep 17 00:00:00 2001 From: Farkites Date: Thu, 14 Mar 2024 08:32:57 +0000 Subject: [PATCH 35/48] Fix funnel_axis_with_other_traces baseline --- .../funnel_axis_with_other_traces.png | Bin 61883 -> 58594 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/funnel_axis_with_other_traces.png b/test/image/baselines/funnel_axis_with_other_traces.png index 96dc1677b0f1998e9f4e7b33aa6a57db5e94cb03..5b57abd3ede632860eef513a2f755bad7c722a48 100644 GIT binary patch literal 58594 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�)NnmE_-y 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%0A^z5G;2CK2+`oRtp!tCsy!J94 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

kp&~qs8vC(xD`7$6xmpos*emS)D9~?jtX(b3a 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%0DJ4Y?)z#`ZZp5$^NWZxP6) zMt@b^?JY`F;_izI7L>T{eoiqdn-L~L!D`_*eb@l~D*ny%ykpFb_hY3L_;-K)h^yEG#_&-suD`wm3pQ*8 z`R~tye`rjF+rLZl+@F633*z{{VL@(8b8~ZgymYz}yUyHd5?XY6QEu_F*8dhXnnZm-~qk(;C=7w0UzfInwy*B59SE{*!%lj1XSlG8O~1vb%!@C0c8!*1$qvBdB=8{ zV!983>T+tk$QU&a9f?6wmzLLmp7TiUd|IM$S?HcexSvk=kq?rH7y@D=7 zRmxEDQS+{Kao1@T}VEI%J8HBDNd>x~Op<;e*7Jj>;q6gY*1fm$u%pjq$Uw{OlV zfX?^h3y;DVK9oFZv>RqEVVCupNz~Y{3wARCM;sEv(X0xA+ic}%rdbFdJ!_4kr*DY< zJ-IzdY|W;4c!;)3G(ruMT|od1h9p!`PmWjFd<3uTdRg3;A>_tN8Y9iOTY| zor8yhKV$XIDhDt@roQF)tnt2m`zXI4&8VaHCO*!PHMX;}lNWBJ{kbdgw^0zbt9mCr zR&t}f4$3$H21ejVgnc;u~%Da)T% z{?J|m>V(E$ybUNu5-3K}iHhsTcKjd$bcFn$KVk-8sDUDWP!fNB4*V+?_vz0cDNH~M zHOVW){qYDW3WFqny+MJu)&knNlzQaPzk>zQ{O^K(?b`qD(ErlVpV#Vt&@Bu5PJZjj Wd5c&r>3l}RDQ%d{Qm$%OAs~y From 75cfb648f9e99c0939c80ccdaecdf5bc492059a1 Mon Sep 17 00:00:00 2001 From: Farkites Date: Thu, 14 Mar 2024 08:34:48 +0000 Subject: [PATCH 36/48] Remove zindex_histogram mock and baseline --- test/image/baselines/zindex-histogram.png | Bin 19102 -> 0 bytes test/image/mocks/zindex-histogram.json | 16 ---------------- 2 files changed, 16 deletions(-) delete mode 100644 test/image/baselines/zindex-histogram.png delete mode 100644 test/image/mocks/zindex-histogram.json diff --git a/test/image/baselines/zindex-histogram.png b/test/image/baselines/zindex-histogram.png deleted file mode 100644 index 3c9a4384e9ccdad2e76797ccd45c4f8d7d950b55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19102 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 AAOHXW diff --git a/test/image/mocks/zindex-histogram.json b/test/image/mocks/zindex-histogram.json deleted file mode 100644 index 100fbec7d98..00000000000 --- a/test/image/mocks/zindex-histogram.json +++ /dev/null @@ -1,16 +0,0 @@ -{ -"data": [ - { - "type": "scatter", - "name": "scatter", - "y": [-1,0,1,2], - "x": [-1,0,1,2], - "zindex": 1 - }, { - "type": "histogram", - "name": "histogram zindex=10", - "x": [0,0.5,1], - "zindex": 10 - } -] -} From 670b55bccff34c096f89bae43218ce89b4f45cf7 Mon Sep 17 00:00:00 2001 From: Farkites Date: Thu, 14 Mar 2024 08:39:21 +0000 Subject: [PATCH 37/48] Reduce width and height of zindex mocks --- test/image/mocks/zindex-contour.json | 5 ++++- test/image/mocks/zindex-heatmap.json | 5 ++++- test/image/mocks/zindex-scatter-image.json | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/test/image/mocks/zindex-contour.json b/test/image/mocks/zindex-contour.json index 156f36be31d..5088fd89d86 100644 --- a/test/image/mocks/zindex-contour.json +++ b/test/image/mocks/zindex-contour.json @@ -15,5 +15,8 @@ ], "zindex": 10 } -] +], + "layout": { + "width": 400, "height": 400 + } } diff --git a/test/image/mocks/zindex-heatmap.json b/test/image/mocks/zindex-heatmap.json index 2957438d9fa..d51a83ac985 100644 --- a/test/image/mocks/zindex-heatmap.json +++ b/test/image/mocks/zindex-heatmap.json @@ -18,5 +18,8 @@ "ygap": 5, "zindex": 10 } -] +], + "layout": { + "width": 400, "height": 400 + } } diff --git a/test/image/mocks/zindex-scatter-image.json b/test/image/mocks/zindex-scatter-image.json index 62f5b014279..ad846f9fc5b 100644 --- a/test/image/mocks/zindex-scatter-image.json +++ b/test/image/mocks/zindex-scatter-image.json @@ -18,6 +18,6 @@ } ], "layout": { - "width": 400, "height": 600 + "width": 400, "height": 400 } } From c061a920f50b44f959a4abefe47309aaab110ca4 Mon Sep 17 00:00:00 2001 From: Farkites Date: Thu, 14 Mar 2024 08:53:16 +0000 Subject: [PATCH 38/48] Update zindex baselines --- test/image/baselines/zindex-contour.png | Bin 32583 -> 19968 bytes test/image/baselines/zindex-heatmap.png | Bin 19062 -> 10216 bytes test/image/baselines/zindex-scatter-image.png | Bin 10971 -> 8821 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/zindex-contour.png b/test/image/baselines/zindex-contour.png index 7d33d7648a8707f4624de2fa81f153643330de56..889288c6dcf58d6a8d93004c17edbe141b65ae3d 100644 GIT binary patch literal 19968 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 literal 32583 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

L9I75V`~74eF&W@j>fJU9J-iX_tTFxRaaB-`ng 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 Z%gaXZ<0r!l-X}$*aZ~q3{`H55{{<`>h+qH! diff --git a/test/image/baselines/zindex-scatter-image.png b/test/image/baselines/zindex-scatter-image.png index 1c625ca9aec907fe68ad792153bcc0386fc2c18f..c2995298f75652cfecae9a3ad716112744ffd88c 100644 GIT binary patch literal 8821 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 Xe~b6%-CQOFe$01U;`4U>cIH0-MHo`U literal 10971 zcmeHNc_7ql_cs$+$0$XTF-f^CC=^*IacwcBWG7LsY?ZMOGu0 z5fPY;wS}XI2!tRa0(FsC4OR|KmtGPPL5kQ|95@!`HA9PjSm<>7!{@N856VRBZdJ=D zSp_x1-YV^#F~G@a$zQ)Cq1AA5XK=Y4;eejj9-r-&=ABwfduf08?n0^Gd8CEpq7rh*-P%Z`EEFtC{3a@@{_^x1;ZKQ6x+vkBn;{U% z$F3H_pU@E*IV1{?vPPlIgA~?)pLo2%Dj@~AwQ>ZxEKA`}B(hyd{|Biby87V^KLY0m zGWx48N;p6Aa6NsnRxU~g0ttvR7R}qtm#tDDd~SV_ddLce+SqQ3 z+BhQJ95rXs;wJ|9d;)Kf@z=zMQV$&mk8e2qS3Dj==Ni%TQafj=hWKwNL@b+;#-Gom zc!ZZi9n9tCHwJ|oNlI8> z#IKCE!|16)9Lt)I@WpmqL)g2k#Ecs&Oq@yYX!Ji>&7Q3y>Q|P_`~U-bKY)_uO$l;B zNMZF`8u@Q?y$Cn%{9*y@A-EV>&C1Yp?@WX#cfLyB*~C1YXhQafrz7 z^(Q_ycHrz+sE-ZmuMFlNYL8Ex@Lhzy&eR^_Sw4z727&a}m!R5>7vO?pq4=2_CH5Z_kr|wF~K96_QO% zN~TFq*D}bpl;-u&vRd8U+@mhitb+?U?sJ^=V$i_+C94<~Q`TC*3dWIZn>KwE%(}ab zDqRirx$duEVtly-#h%+qNJ;XUVO14`3Hm!!uQaDTO{)w>)2HiYZ8Q)yXK_*w-x*0- zZ*LjqN;IE6Xf*v4k2l_htfEEqZ{Z`F`}ZHH2q#J2lr3Y)dO?`FOmZ@dmgc7HPK9rILF668LLjG~kA6)V+$xu|REfh;E`- z8+2Wgu&zI-jvRf?n6m*!dK1age_Oa=4T!KyqJG9471PUjy-mxxydA0cEx}g^HHZ>C zJ_)UcgeCD^DAIwpfNNrsHLCIA&~PfCb&oNdx!qx_8nkmxP7(y85q2#kz+izU=Ewf! z=%p`GKy?r+vP3{kHVzHdN%&fVMLnc%@>egKXdr!We7&ZR^!;;N{~&0xmaymNuf#;a zntRlMyzrX<3@G&)K;DC@;JvT6V+#0Q{)z|50@Wz@l`>-P<14u zz9nl23STR%TdLXI>MNPObdm6%$6mm(JK{L61SxD+vfd0S$R@ptRv8z2Co9V?%qc=3 z$TD48TpwC$l0Q?v=;FxLbhJ(P_T!t3Pqr@Kl#e>!aN*t1@?1R}9r*s?eO#_3RvcJj zpbv7J)Mt;2^@$nBncf?A&!}Y$u+PWtr3HMhvp(8*Pv85=87H@@5ZasI8ZT`mtcfBA zu?g%hz%0Cl4V4WPD|SrKERVi8UmskWikGocBn&4GtB9&6JD}$4CcQ}_L$gJkwNRZ+ z&ZtD?#7H@Uu_2^|`2hC>|4tvVr~+IJE2<9n{_?UWl6Ac)PAHWsq@`YwU|h27ENvY( zdT!_dfO9L<{G6D2M-jgZ>NpfN07xY=*AR@c|0U$i+9vt}OYA3zxOlh6CmRmR8_iaa zb}A2X8qdhDBN)5=iyFp!AWQG7$mz#RyhtbHg4tlGW~=`c`@F&u>)l~e=|AH-;CSKboRi!wKRf-vvpHo%KLsx z;yqgh&pY)xBY&%1#&3%~v=>`5Ju?uCnYgF5ueW`sNH_O1>doNmhGC)B&K~C)dJb!_ zjG<*o-WNP#==nx4_ATEVHp==TGH@)lz&?Q9nIFEYEX31I3puRhyqGqZ(lYK za{IM51$!@~>L>#;W^`oi;MHXIWB^XA>`d2#iV#}O+ewGv=b{#< zg0l`2#3QK2eLEmZ{T2$#(O^wsxix{If%K`dl@`leJMCAwo{*S3ulex5#)bYJ<3&LY z8A$EJU<_-%Koiw$t_#EVNy?LloBT0Qfa?q3vS$K#%d7waZ&91P=%Czg&y{CfWazT0 zT>bu7`G>eE>~KqL>7ug}KuSfOvGd906O>P%Zq<34G@dxgGZoWV5k0 zbJRRZVN?oWm=nM-+-~IF@4T*xAas7=FJVpYKIyR;2`k)zjOG}v&hxVnRS#8wrZApt za0VjZ7mEA{>bOG%-F<)`8)gKc)V?F%en<;QuwU=717_{;t<>@A$k>hFDp3{IoMZ7V zL%3w~?058(w0i9Ezbrf2I(x^3FTZjor-YDL@AdTcGi8nEo?#~M7ZzNEn^sS@im4}8 zS)dS_|D=K%cyofH*DbPu$0($t&3N}t3`C7yr_<567`LbAPj%gvwnl{B$4~E2(^zRT zvlA>#^;4NSd~GIT$9dMkJ3;V>fRSIwS13AOY&-S7`0AlIcg!R)Duf~4Y$QGHsDlm2 zr#5Kph`i#;VF_zQbPL{CO${Ct_tL+<9B!nZ9rfuzG(0ox34ZJsr`qGFL~4Wzp(LJF zL|>jNK^HlfAheWv4xr}W*oyl_EGDniU#I^XN~@q=#Li@E+jnrC(ao{XOh|4h_OS<( z;ZU8sRa1D6^DSEg*fuLFjHsr%vE=xLT+CqfM1HY*Re>{U(usaew>`?5GZ5B6v*F$i zYqwb(j17&F%F+*Yh@E-j>{jMy6O~NUtizVPrh3otoNH@?)(W^Li-Sj3_6ykk6k8&{ z$vvWPv94S7?jVOTi8Y$~oKD&6wuydZ-`(Y^QZK=BcZXn_YUS}ekR^WUBOT-iS3~Y} zx$5SqE+^-F<&f&lqzMy7^d}01-4__?7~lKaE93NebR;V`H;PC4$#N_;siQ`6h))KJ18W)c!j%^FP8 zs+}%NIPHFHamo;>KZFg78R8CRYLPi3Rx8i2&XD_i!iQeGI$Hc$^C3|{tffwwvXYHV znz>%gyO=&)%;~{Zv-B=-!{ItlalgjJVK~l!cCJZdkjYI>;m;0aNIxZx0(#dc41^IWAlr|{0tuAW%OkjNMtmoc$MR>?=fza zBYZ)V=gu{5sKk1y=Ck#4K#x}X8F(2`IDgAvkC@+KA)?Hs19%=Th3X9KuDggIdwX3I zISft*e^afPU$sw^IHV<4*%xIlgsX2DyvO^2O8T3f(Qd6uS^vEq_`;hJ-~C`6w9M+e z9MbXA`@Xm5f^~$ZYv0@3eX+44-!du>{P z#!F{pee%7(jO0^eqrHxB?iw1E*m2-5gYKr~DM~dPG-@F0Cy;*`|5iw+w3y$fQF+2} znA~5Ubx5C{0M)tiS+aR<7^WB(;Sji`7b=2!%PRa@Qsxk~o*X8za3K;`)&Dxtqcr+; zMnw?4bF=%klQZU|rpbkSXBf3{Ty{lp|9jvm(tDD-x(0nW?=u}E9PG>*S{YBM?)o26 z66hq&L{hl4g}W2R8YXlb^ci9Qm&Yo>nULnwOAdjSohsQiSLO5`VH2=3(2IHJXY}Fm zO5Dn*Dix+bK#({(m+RzB_N3_5;374x}4u`n6XJ+-ew8Uj(8P?7_UWJ}N-lSb>P zK)f&L-A%{qy&M{T57o(WjY^>l`MFA3AH;(87g^)>L(pB@MEjWOo#Qp1l9^X%%DN9D zp5zpp36?qveQ)gFR_yZlBR0(JpP?Rr5Tt`E8NH9cXd9G(FB9)cM5WZz87o_6#kjodO3onp-YJ+UgSa_6zb^S z!v`a6mpmvqr<4}v#GHwtO?hR?8cmlbqSw^2mRVEOn^uV1#~*p@7u41v7OR``g#s{f zS+$c4_7#&^-$!?N{6Ai6)$WR$3G}w3fI68P|IQ{?L_{h>co$$WmXYlRn#P4x2czN_ zw8^08P8*GUvz1|ZKuCyI+u+1f2QJ=_-Q!Cw&tW|@)UViiAuR>3XSkZO@==>A)WwpZ z95*6Q{AFR?=l*u+`IXO29k`L~xK_T};Qoobsb1W^?sltlwyL^K$DXTblNLHLqu2Ed!a7WpyGf&v(D$L;G()Zu1m+;J}^%?8`y6luh%mc9tCK_Qu66ze$?pU122{oUD~<)~p&x zX*U?XhG|&uyzAwbYO5q*y%V265xdwqZC37ms?4W8QIG4|JYCi6K=&7i^JV(85(V82)aMx6u4P>a<8*}BrV+8khefBoNunhwtIrwPdF+SY1 z6N!YKE{|bNVrb#rCJUD%UT0|1SC}1W?fB1Em5uGEGmPTJbhv)uAUU<-ls|z}&E?>} z6J68(24*}uni{n2D8I)E6+&JbU$_9ro|vcnPyDMe*Xa%|q_pvHuf|{`nVHQr`+%Jz zzN0X+8F`^NZa>pZH2YQ4qxjYHqpE@^Q?>HYHv5mGiWH7zjDR~tBy$?H3!2RMpN~dQ zXXk`DLzV_6Ofy43pxR^?waETX6;~vPAy%e|QH<)*8%xCX#+=8|%<(1fpAESC-XAl) zJhOoSW=U;=`(1=ZK&)zGj7xY#=K8?HO!`3Pf4OBV%43ZjsJxSb;JzZ{= zQU{tu3oYpQ^XG9WU!6~gcdDbFpFr=P-99ZpeFIl9@2kpnG30!>sKJahNAPtC;xKo*N!pL?$2v`~d)Y3;hR{Gw;QRU^W21L%ZW73SVBJoAPu{gm^ZBCf;r9R|}Z zdu`xQ6QG>GAdaXeBoBLKOLC<0$}hxvf`Co~mr)#3*qgyk6@Os+-e)8&5c0MlS#G!C zf(tCa>p~#(pbuV|;GRl87?Y*t#esV(Z*Jr9n0;qU>_F^0g4nn1GzGE$=@1HKs9fE> z6%gAFfo$Izpb9u(wjq((uz{(yfLIzHpO#Vq2OJDRl5Sr;8!jn_JZy_X+1m6a0S?)K zum7sW8bItPP<-U8&m06C+5z7m;{MR?4`=uhYCn+S2k!p=NE357NRUA1Y-3sXF>q;B O#KzLW;*t4@U;h{6Hb%Mt From 27f51eccd739a3fb50710adfbfa7f17d076fc423 Mon Sep 17 00:00:00 2001 From: Farkites Date: Thu, 21 Mar 2024 11:06:16 +0000 Subject: [PATCH 39/48] Add Jasmine tests for zindex --- test/jasmine/tests/cartesian_interact_test.js | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/test/jasmine/tests/cartesian_interact_test.js b/test/jasmine/tests/cartesian_interact_test.js index 5688c193bb4..84279b36a52 100644 --- a/test/jasmine/tests/cartesian_interact_test.js +++ b/test/jasmine/tests/cartesian_interact_test.js @@ -2547,3 +2547,123 @@ describe('Cartesian plots with css transforms', function() { }); }); }); + +describe('Cartesian taces with zindex', function() { + var gd; + + beforeEach(function() { + gd = createGraphDiv(); + }); + + afterEach(destroyGraphDiv); + + var data0 = [ + {x: [1, 2], y: [1, 1], type: 'scatter', zindex: 10}, + {x: [1, 2], y: [1, 2], type: 'scatter'}, + {x: [1, 2], y: [1, 3], type: 'scatter', zindex: 5} + ]; + + var data1 = [ + {x: [1, 2], y: [1, 1], type: 'scatter'}, + {x: [1, 2], y: [1, 2], type: 'scatter', zindex: -5}, + {x: [1, 2], y: [1, 3], type: 'scatter', zindex: 10}, + ]; + + function fig(data) { + return { + data: data, + layout: { + width: 400, height: 400 + } + }; + } + + function assertZIndices(data, expectedData) { + for(var i = 0; i < data.length; i++) { + var zindex = expectedData[i].zindex ? expectedData[i].zindex : 0; + expect(data[i].zindex).toEqual(zindex); + } + } + + function assertZIndicesSorted(data) { + var prevZIndex; + expect(data.length).toBeGreaterThan(0); + for(var i = 0; i < data.length; i++) { + var currentZIndex = data[i].__data__.zindex; + if(prevZIndex !== undefined) { + expect(currentZIndex).toBeGreaterThanOrEqual(prevZIndex); + } + prevZIndex = currentZIndex; + } + } + + it('should be able to update zindex', function(done) { + Plotly.newPlot(gd, fig(data0)) + .then(function() { + var data = gd._fullData; + assertZIndices(data, data0); + }) + .then(function() { + return Plotly.react(gd, fig(data1)); + }) + .then(function() { + var data = gd._fullData; + assertZIndices(data, data1); + }) + .then(done, done.fail); + }); + + it('should display traces in ascending order', function(done) { + Plotly.newPlot(gd, fig(data0)) + .then(function() { + var tracesData = d3SelectAll('g[class^="scatterlayer"]'); + assertZIndicesSorted(tracesData[0]); + }) + .then(function() { + return Plotly.react(gd, fig(data1)); + }) + .then(function() { + var tracesData = d3SelectAll('g[class^="scatterlayer"]'); + assertZIndicesSorted(tracesData[0]); + }) + .then(done, done.fail); + }); + + it('should display traces in ascending zindex order after restyle', function(done) { + Plotly.newPlot(gd, fig(data0)) + .then(function() { + var tracesData = d3SelectAll('g[class^="scatterlayer"]'); + var data = gd._fullData; + assertZIndices(data, data0); + assertZIndicesSorted(tracesData[0]); + }) + .then(function() { + return Plotly.restyle(gd, 'type', 'bar'); + }) + .then(function() { + var tracesData = d3SelectAll('g[class^="barlayer"]'); + var data = gd._fullData; + assertZIndices(data, data0); + assertZIndicesSorted(tracesData[0]); + }) + .then(function() { + return Plotly.react(gd, fig(data1)); + }) + .then(function() { + var tracesData = d3SelectAll('g[class^="scatterlayer"]'); + var data = gd._fullData; + assertZIndices(data, data1); + assertZIndicesSorted(tracesData[0]); + }) + .then(function() { + return Plotly.restyle(gd, {type: 'bar'}); + }) + .then(function() { + var tracesData = d3SelectAll('g[class^="barlayer"]'); + var data = gd._fullData; + assertZIndices(data, data1); + assertZIndicesSorted(tracesData[0]); + }) + .then(done, done.fail); + }); +}); From b76e894751441b2177c89eda94dd122db259b4fd Mon Sep 17 00:00:00 2001 From: Farkites Date: Fri, 22 Mar 2024 10:55:37 +0000 Subject: [PATCH 40/48] Add jasmine test for clearing and adding zindex traces --- test/jasmine/tests/cartesian_interact_test.js | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/test/jasmine/tests/cartesian_interact_test.js b/test/jasmine/tests/cartesian_interact_test.js index 84279b36a52..62cf111c491 100644 --- a/test/jasmine/tests/cartesian_interact_test.js +++ b/test/jasmine/tests/cartesian_interact_test.js @@ -2666,4 +2666,36 @@ describe('Cartesian taces with zindex', function() { }) .then(done, done.fail); }); + + it('should be able to clear traces', function(done) { + Plotly.newPlot(gd, fig(data0)) + .then(function() { + var tracesData = d3SelectAll('g[class^="scatterlayer"]')[0]; + expect(tracesData.length).toBe(3) + }) + .then(function() { + return Plotly.react(gd, fig([data0[0]])); + }) + .then(function() { + var tracesData = d3SelectAll('g[class^="scatterlayer"]')[0]; + expect(tracesData.length).toBe(1) + }) + .then(done, done.fail); + }); + + it('should be able to add traces', function(done) { + Plotly.newPlot(gd, fig([data0[0]])) + .then(function() { + var tracesData = d3SelectAll('g[class^="scatterlayer"]')[0]; + expect(tracesData.length).toBe(1) + }) + .then(function() { + return Plotly.react(gd, fig(data0)); + }) + .then(function() { + var tracesData = d3SelectAll('g[class^="scatterlayer"]')[0]; + expect(tracesData.length).toBe(3) + }) + .then(done, done.fail); + }); }); From c2c268c73d397a0927429d91747d5b76da00f447 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 25 Mar 2024 14:32:49 +0000 Subject: [PATCH 41/48] Add select tests for zindex traces --- test/jasmine/tests/cartesian_interact_test.js | 20 ++-- test/jasmine/tests/select_test.js | 95 ++++++++++++++++++- 2 files changed, 104 insertions(+), 11 deletions(-) diff --git a/test/jasmine/tests/cartesian_interact_test.js b/test/jasmine/tests/cartesian_interact_test.js index 62cf111c491..e998699998e 100644 --- a/test/jasmine/tests/cartesian_interact_test.js +++ b/test/jasmine/tests/cartesian_interact_test.js @@ -2558,15 +2558,15 @@ describe('Cartesian taces with zindex', function() { afterEach(destroyGraphDiv); var data0 = [ - {x: [1, 2], y: [1, 1], type: 'scatter', zindex: 10}, - {x: [1, 2], y: [1, 2], type: 'scatter'}, - {x: [1, 2], y: [1, 3], type: 'scatter', zindex: 5} + {x: [1, 2], y: [1, 1], type: 'scatter', marker: {size: 10}, zindex: 10}, + {x: [1, 2], y: [1, 2], type: 'scatter', marker: {size: 30}}, + {x: [1, 2], y: [1, 3], type: 'scatter', marker: {size: 20}, zindex: 5} ]; var data1 = [ - {x: [1, 2], y: [1, 1], type: 'scatter'}, - {x: [1, 2], y: [1, 2], type: 'scatter', zindex: -5}, - {x: [1, 2], y: [1, 3], type: 'scatter', zindex: 10}, + {x: [1, 2], y: [1, 1], type: 'scatter', marker: {size: 10}}, + {x: [1, 2], y: [1, 2], type: 'scatter', marker: {size: 30}, zindex: -5}, + {x: [1, 2], y: [1, 3], type: 'scatter', marker: {size: 20}, zindex: 10}, ]; function fig(data) { @@ -2671,14 +2671,14 @@ describe('Cartesian taces with zindex', function() { Plotly.newPlot(gd, fig(data0)) .then(function() { var tracesData = d3SelectAll('g[class^="scatterlayer"]')[0]; - expect(tracesData.length).toBe(3) + expect(tracesData.length).toBe(3); }) .then(function() { return Plotly.react(gd, fig([data0[0]])); }) .then(function() { var tracesData = d3SelectAll('g[class^="scatterlayer"]')[0]; - expect(tracesData.length).toBe(1) + expect(tracesData.length).toBe(1); }) .then(done, done.fail); }); @@ -2687,14 +2687,14 @@ describe('Cartesian taces with zindex', function() { Plotly.newPlot(gd, fig([data0[0]])) .then(function() { var tracesData = d3SelectAll('g[class^="scatterlayer"]')[0]; - expect(tracesData.length).toBe(1) + expect(tracesData.length).toBe(1); }) .then(function() { return Plotly.react(gd, fig(data0)); }) .then(function() { var tracesData = d3SelectAll('g[class^="scatterlayer"]')[0]; - expect(tracesData.length).toBe(3) + expect(tracesData.length).toBe(3); }) .then(done, done.fail); }); diff --git a/test/jasmine/tests/select_test.js b/test/jasmine/tests/select_test.js index c685eaf32fd..b68491d4187 100644 --- a/test/jasmine/tests/select_test.js +++ b/test/jasmine/tests/select_test.js @@ -144,7 +144,22 @@ var BOXEVENTS = [1, 2, 1]; // assumes 5 points in the lasso path var LASSOEVENTS = [4, 2, 1]; -describe('Click-to-select', function() { +var mockZindex = { + data: [ + {x: [1, 2], y: [1, 1], type: 'scatter', zindex: 10, marker: {size: 50}}, + {x: [1, 2], y: [1, 2], type: 'scatter', marker: {size: 50}}, + {x: [1, 2], y: [1, 3], type: 'scatter', zindex: 5, marker: {size: 50}} + ], + layout: { + width: 400, + height: 400, + clickmode: 'event+select', + dragmode: 'select', + hovermode: 'closest' + } +}; + +fdescribe('Click-to-select', function() { var mock14Pts = { 1: { x: 134, y: 116 }, 7: { x: 270, y: 160 }, @@ -264,6 +279,84 @@ describe('Click-to-select', function() { .then(done, done.fail); }); + it('selects a single data point when being clicked on trace with zindex', function(done) { + _newPlot(gd, mockZindex.data, mockZindex.layout) + .then(function() { + return _immediateClickPt({ x: 270, y: 150 }); + }) + .then(function() { + assertSelectedPoints([], [], [1]); + return _clickPt({ x: 270, y: 200 }); + }) + .then(function() { + assertSelectedPoints([], [1], []); + return _clickPt({ x: 270, y: 250 }); + }) + .then(done, done.fail); + }); + + it('should only select top most zindex trace if overlapping position on single click', function(done) { + _newPlot(gd, mockZindex.data, mockZindex.layout) + .then(function() { + return _immediateClickPt({ x: 130, y: 250 }); + }) + .then(function() { + assertSelectedPoints([], [1], []); + }) + .then(done, done.fail); + }); + + it('should lasso select all overlapping points regardless of zindex', function(done) { + mockZindex.layout.dragmode = 'lasso'; + _newPlot(gd, mockZindex.data, mockZindex.layout) + .then(function() { + drag([[200, 200], [200, 300], [100, 300], [100, 200], [200, 200]]); + }) + .then(function() { + expect(gd.data[0].selectedpoints).toEqual([0]); + expect(gd.data[1].selectedpoints).toEqual([0]); + expect(gd.data[2].selectedpoints).toEqual([0]); + }) + .then(function() { + return doubleClick(200, 200); // Clear selection + }) + .then(function() { + drag([[200, 100], [200, 300], [300, 300], [300, 100], [200, 100]]); + }) + .then(function() { + expect(gd.data[0].selectedpoints).toEqual([1]); + expect(gd.data[1].selectedpoints).toEqual([1]); + expect(gd.data[2].selectedpoints).toEqual([1]); + }) + .then(done, done.fail); + }); + + fit('should box select all overlapping points regardless of zindex', function(done) { + mockZindex.layout.dragmode = 'select'; + _newPlot(gd, mockZindex.data, mockZindex.layout) + .then(function() { + drag([[200, 200], [100, 300]]); + }) + .then(function() { + expect(gd.data[0].selectedpoints).toEqual([0]); + expect(gd.data[1].selectedpoints).toEqual([0]); + expect(gd.data[2].selectedpoints).toEqual([0]); + }) + .then(function() { + return doubleClick(200, 200); // Clear selection + }) + .then(function() { + drag([[200, 100], [300, 300]]); + }) + .then(function() { + expect(gd.data[0].selectedpoints).toEqual([1]); + expect(gd.data[1].selectedpoints).toEqual([1]); + expect(gd.data[2].selectedpoints).toEqual([1]); + }) + .then(done, done.fail); + }); + + it('cleanly clears and starts selections although add/subtract mode on', function(done) { plotMock14() .then(function() { From 4a1901cc774f70967b76c6a4b5569ba1b278c1d7 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 25 Mar 2024 14:53:56 +0000 Subject: [PATCH 42/48] Change naming of layers with zindex --- src/plots/cartesian/index.js | 2 +- test/image/mocks/zindex-scatter-image.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plots/cartesian/index.js b/src/plots/cartesian/index.js index 9260c954eee..60ba574b3e3 100644 --- a/src/plots/cartesian/index.js +++ b/src/plots/cartesian/index.js @@ -221,7 +221,7 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback var categories = Registry.modules[name].categories; if(categories.svg) { - var className = (_module.layerName || name + 'layer') + (zindex ? '-' + z : ''); + var className = (_module.layerName || name + 'layer') + (zindex ? Number(z) + 1 : ''); var plotMethod = _module.plot; // plot all visible traces of this type on this subplot at once diff --git a/test/image/mocks/zindex-scatter-image.json b/test/image/mocks/zindex-scatter-image.json index ad846f9fc5b..b27f80c5cfc 100644 --- a/test/image/mocks/zindex-scatter-image.json +++ b/test/image/mocks/zindex-scatter-image.json @@ -4,7 +4,8 @@ "type": "scatter", "y": ["E", "F", "G", "H"], "x": ["A", "B", "C", "D"] - }, { + }, + { "type": "image", "zmax": [1, 1, 1], "x0": "B", From 7e2acfbd4c4ff12a6432096002817376a4dbcc99 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 25 Mar 2024 14:55:06 +0000 Subject: [PATCH 43/48] Remove focus in tests --- test/jasmine/tests/select_test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/jasmine/tests/select_test.js b/test/jasmine/tests/select_test.js index b68491d4187..e92a0734796 100644 --- a/test/jasmine/tests/select_test.js +++ b/test/jasmine/tests/select_test.js @@ -159,7 +159,7 @@ var mockZindex = { } }; -fdescribe('Click-to-select', function() { +describe('Click-to-select', function() { var mock14Pts = { 1: { x: 134, y: 116 }, 7: { x: 270, y: 160 }, @@ -331,7 +331,7 @@ fdescribe('Click-to-select', function() { .then(done, done.fail); }); - fit('should box select all overlapping points regardless of zindex', function(done) { + it('should box select all overlapping points regardless of zindex', function(done) { mockZindex.layout.dragmode = 'select'; _newPlot(gd, mockZindex.data, mockZindex.layout) .then(function() { From 1208283050d6a5acdcf27aa92ffb0e0b8c982135 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 25 Mar 2024 15:38:57 +0000 Subject: [PATCH 44/48] Add zindex tests for bar traces --- test/jasmine/tests/cartesian_interact_test.js | 68 ++++++++++++------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/test/jasmine/tests/cartesian_interact_test.js b/test/jasmine/tests/cartesian_interact_test.js index e998699998e..e89fe79a406 100644 --- a/test/jasmine/tests/cartesian_interact_test.js +++ b/test/jasmine/tests/cartesian_interact_test.js @@ -2569,6 +2569,11 @@ describe('Cartesian taces with zindex', function() { {x: [1, 2], y: [1, 3], type: 'scatter', marker: {size: 20}, zindex: 10}, ]; + var barData = [ + {x: [1, 2], y: [2, 4], type: 'bar'}, + {x: [1, 2], y: [4, 2], type: 'bar', zindex: -10} + ]; + function fig(data) { return { data: data, @@ -2597,7 +2602,7 @@ describe('Cartesian taces with zindex', function() { } } - it('should be able to update zindex', function(done) { + it('should be able to update and remove layers for scatter traces in respect to zindex', function(done) { Plotly.newPlot(gd, fig(data0)) .then(function() { var data = gd._fullData; @@ -2610,6 +2615,28 @@ describe('Cartesian taces with zindex', function() { var data = gd._fullData; assertZIndices(data, data1); }) + .then(function() { + return Plotly.react(gd, fig(barData)); + }) + .then(function() { + var data = gd._fullData; + assertZIndices(data, barData); + var scatterTraces = d3SelectAll('g[class^="scatterlayer"]')[0]; + expect(scatterTraces.length).toBe(0); + var barTraces = d3SelectAll('g[class^="barlayer"]')[0]; + expect(barTraces.length).toBe(2); + }) + .then(function() { + return Plotly.react(gd, fig(barData.concat(data0))); + }) + .then(function() { + var data = gd._fullData; + assertZIndices(data, barData.concat(data0)); + var scatterTraces = d3SelectAll('g[class^="scatterlayer"]')[0]; + expect(scatterTraces.length).toBe(3); + var barTraces = d3SelectAll('g[class^="barlayer"]')[0]; + expect(barTraces.length).toBe(2); + }) .then(done, done.fail); }); @@ -2638,10 +2665,10 @@ describe('Cartesian taces with zindex', function() { assertZIndicesSorted(tracesData[0]); }) .then(function() { - return Plotly.restyle(gd, 'type', 'bar'); + return Plotly.restyle(gd, 'marker.size', 20); }) .then(function() { - var tracesData = d3SelectAll('g[class^="barlayer"]'); + var tracesData = d3SelectAll('g[class^="scatterlayer"]'); var data = gd._fullData; assertZIndices(data, data0); assertZIndicesSorted(tracesData[0]); @@ -2656,10 +2683,10 @@ describe('Cartesian taces with zindex', function() { assertZIndicesSorted(tracesData[0]); }) .then(function() { - return Plotly.restyle(gd, {type: 'bar'}); + return Plotly.restyle(gd, 'marker.size', 20); }) .then(function() { - var tracesData = d3SelectAll('g[class^="barlayer"]'); + var tracesData = d3SelectAll('g[class^="scatterlayer"]'); var data = gd._fullData; assertZIndices(data, data1); assertZIndicesSorted(tracesData[0]); @@ -2667,34 +2694,27 @@ describe('Cartesian taces with zindex', function() { .then(done, done.fail); }); - it('should be able to clear traces', function(done) { - Plotly.newPlot(gd, fig(data0)) - .then(function() { - var tracesData = d3SelectAll('g[class^="scatterlayer"]')[0]; - expect(tracesData.length).toBe(3); - }) + it('should display bar traces in ascending order', function(done) { + Plotly.newPlot(gd, fig(barData)) .then(function() { - return Plotly.react(gd, fig([data0[0]])); + var data = gd._fullData; + assertZIndices(data, barData); + var tracesData = d3SelectAll('g[class^="barlayer"]'); + assertZIndicesSorted(tracesData[0]); }) .then(function() { - var tracesData = d3SelectAll('g[class^="scatterlayer"]')[0]; - expect(tracesData.length).toBe(1); + return Plotly.restyle(gd, 'barmode', 'overlay'); }) - .then(done, done.fail); - }); - - it('should be able to add traces', function(done) { - Plotly.newPlot(gd, fig([data0[0]])) .then(function() { - var tracesData = d3SelectAll('g[class^="scatterlayer"]')[0]; - expect(tracesData.length).toBe(1); + var tracesData = d3SelectAll('g[class^="barlayer"]'); + assertZIndicesSorted(tracesData[0]); }) .then(function() { - return Plotly.react(gd, fig(data0)); + return Plotly.restyle(gd, 'barmode', 'stack'); }) .then(function() { - var tracesData = d3SelectAll('g[class^="scatterlayer"]')[0]; - expect(tracesData.length).toBe(3); + var tracesData = d3SelectAll('g[class^="barlayer"]'); + assertZIndicesSorted(tracesData[0]); }) .then(done, done.fail); }); From a9493d40e8f7ad4878fe5b266720d56865657a60 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 25 Mar 2024 17:21:50 +0000 Subject: [PATCH 45/48] Fix index of layer names for negative zindex --- src/plots/cartesian/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/index.js b/src/plots/cartesian/index.js index 60ba574b3e3..dbac7b74d28 100644 --- a/src/plots/cartesian/index.js +++ b/src/plots/cartesian/index.js @@ -221,7 +221,7 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback var categories = Registry.modules[name].categories; if(categories.svg) { - var className = (_module.layerName || name + 'layer') + (zindex ? Number(z) + 1 : ''); + var className = (_module.layerName || name + 'layer') + (z ? Number(z) + 1 : ''); var plotMethod = _module.plot; // plot all visible traces of this type on this subplot at once From eabedd8de49e30038332b688c318572f3bcbded0 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 25 Mar 2024 17:30:37 +0000 Subject: [PATCH 46/48] Add overlaying bar traces to zindex_basic mock --- test/image/mocks/zindex_basic.json | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/test/image/mocks/zindex_basic.json b/test/image/mocks/zindex_basic.json index c6d57e5da85..8bdc482f9bf 100644 --- a/test/image/mocks/zindex_basic.json +++ b/test/image/mocks/zindex_basic.json @@ -41,6 +41,20 @@ "name": "purple", "type": "bar", "zindex": 6 + }, + { + "x": [2, 3, 4, 5, 6, 7], + "y": [5, 4, 10, 10, 6, 9], + "name": "brown", + "type": "bar", + "zindex": -10 + }, + { + "x": [2, 3, 4, 5, 6, 7], + "y": [5, 3, 8, 8, 6, 9], + "name": "pink", + "type": "bar", + "zindex": -5 } ], "layout": { @@ -48,6 +62,7 @@ "title": { "text": "zindex stacking" } - } + }, + "barmode": "overlay" } } From 2391afdb3de1400239cb7d48d505f51af564e855 Mon Sep 17 00:00:00 2001 From: Farkites Date: Mon, 25 Mar 2024 17:47:01 +0000 Subject: [PATCH 47/48] Extend zindex test to waterfall and funnel traces --- test/image/baselines/zindex_basic.png | Bin 50031 -> 51513 bytes test/jasmine/tests/cartesian_interact_test.js | 53 ++++++++++-------- 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/test/image/baselines/zindex_basic.png b/test/image/baselines/zindex_basic.png index 5a892c219644ea51431bce9aec3e7fc85368feeb..94cef28d9eb8650340e3e2cad87efe6727ee897f 100644 GIT binary patch literal 51513 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%0Dx&vWK=iF??h`X>yg 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 literal 50031 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 Date: Tue, 9 Apr 2024 13:20:44 -0400 Subject: [PATCH 48/48] rename zindex to zorder --- draftlogs/6918_add.md | 2 +- src/plots/cartesian/index.js | 22 ++--- src/plots/get_data.js | 8 +- src/traces/bar/attributes.js | 2 +- src/traces/bar/defaults.js | 2 +- src/traces/box/attributes.js | 2 +- src/traces/box/defaults.js | 2 +- src/traces/candlestick/attributes.js | 2 +- src/traces/candlestick/defaults.js | 2 +- src/traces/carpet/attributes.js | 4 +- src/traces/carpet/defaults.js | 2 +- src/traces/contour/attributes.js | 2 +- src/traces/contour/defaults.js | 2 +- src/traces/contourcarpet/attributes.js | 2 +- src/traces/contourcarpet/defaults.js | 2 +- src/traces/funnel/attributes.js | 2 +- src/traces/funnel/defaults.js | 2 +- src/traces/heatmap/attributes.js | 2 +- src/traces/heatmap/defaults.js | 2 +- src/traces/histogram/attributes.js | 2 +- src/traces/histogram/defaults.js | 2 +- src/traces/image/attributes.js | 4 +- src/traces/image/defaults.js | 2 +- src/traces/ohlc/attributes.js | 2 +- src/traces/ohlc/defaults.js | 2 +- src/traces/scatter/attributes.js | 6 +- src/traces/scatter/defaults.js | 2 +- src/traces/scattercarpet/attributes.js | 2 +- src/traces/scattercarpet/defaults.js | 2 +- src/traces/violin/attributes.js | 2 +- src/traces/violin/defaults.js | 2 +- src/traces/waterfall/attributes.js | 2 +- src/traces/waterfall/defaults.js | 2 +- .../zindex_funnel_carpet_waterfall.png | Bin 41536 -> 0 bytes test/image/baselines/zindex_violin_box.png | Bin 22678 -> 0 bytes ...ndex-contour.png => zz-zorder-contour.png} | Bin ...ndex-heatmap.png => zz-zorder-heatmap.png} | Bin ...-image.png => zz-zorder-scatter-image.png} | Bin .../{zindex_basic.png => zz-zorder_basic.png} | Bin 51513 -> 51582 bytes .../zz-zorder_funnel_carpet_waterfall.png | Bin 0 -> 41339 bytes test/image/baselines/zz-zorder_violin_box.png | Bin 0 -> 22635 bytes .../mocks/funnel_axis_with_other_traces.json | 4 +- ...ex-contour.json => zz-zorder-contour.json} | 4 +- ...ex-heatmap.json => zz-zorder-heatmap.json} | 2 +- ...mage.json => zz-zorder-scatter-image.json} | 2 +- ...zindex_basic.json => zz-zorder_basic.json} | 14 +-- ...=> zz-zorder_funnel_carpet_waterfall.json} | 22 ++--- ...lin_box.json => zz-zorder_violin_box.json} | 6 +- test/jasmine/tests/cartesian_interact_test.js | 24 ++--- test/jasmine/tests/select_test.js | 26 ++--- test/plot-schema.json | 92 +++++++++--------- 51 files changed, 148 insertions(+), 148 deletions(-) delete mode 100644 test/image/baselines/zindex_funnel_carpet_waterfall.png delete mode 100644 test/image/baselines/zindex_violin_box.png rename test/image/baselines/{zindex-contour.png => zz-zorder-contour.png} (100%) rename test/image/baselines/{zindex-heatmap.png => zz-zorder-heatmap.png} (100%) rename test/image/baselines/{zindex-scatter-image.png => zz-zorder-scatter-image.png} (100%) rename test/image/baselines/{zindex_basic.png => zz-zorder_basic.png} (89%) create mode 100644 test/image/baselines/zz-zorder_funnel_carpet_waterfall.png create mode 100644 test/image/baselines/zz-zorder_violin_box.png rename test/image/mocks/{zindex-contour.json => zz-zorder-contour.json} (88%) rename test/image/mocks/{zindex-heatmap.json => zz-zorder-heatmap.json} (95%) rename test/image/mocks/{zindex-scatter-image.json => zz-zorder-scatter-image.json} (95%) rename test/image/mocks/{zindex_basic.json => zz-zorder_basic.json} (88%) rename test/image/mocks/{zindex_funnel_carpet_waterfall.json => zz-zorder_funnel_carpet_waterfall.json} (80%) rename test/image/mocks/{zindex_violin_box.json => zz-zorder_violin_box.json} (83%) diff --git a/draftlogs/6918_add.md b/draftlogs/6918_add.md index fd8face7fa7..2af28d6f804 100644 --- a/draftlogs/6918_add.md +++ b/draftlogs/6918_add.md @@ -1 +1 @@ -- Add a new attribute `zindex` to SVG based Cartesian traces (not to WebGL traces). Traces with higher `zindex` values are drawn in front of traces with lower `zindex` values. This feature was anonymously sponsored: thank you to our sponsor! \ No newline at end of file +- Add a new attribute `zorder` to SVG based Cartesian traces (not to WebGL traces). Traces with higher `zorder` values are drawn in front of traces with lower `zorder` values. This feature was anonymously sponsored: thank you to our sponsor! \ No newline at end of file diff --git a/src/plots/cartesian/index.js b/src/plots/cartesian/index.js index dbac7b74d28..ea58db52bad 100644 --- a/src/plots/cartesian/index.js +++ b/src/plots/cartesian/index.js @@ -195,25 +195,25 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback var modules = fullLayout._modules; var _module, cdModuleAndOthers, cdModule; - // Separate traces by zindex and plot each zindex group separately + // Separate traces by zorder and plot each zorder group separately // TODO: Performance - var traceZindexGroups = {}; + var traceZorderGroups = {}; for(var t = 0; t < cdSubplot.length; t++) { var trace = cdSubplot[t][0].trace; - var zi = trace.zindex || 0; - if(!traceZindexGroups[zi]) traceZindexGroups[zi] = []; - traceZindexGroups[zi].push(cdSubplot[t]); + var zi = trace.zorder || 0; + if(!traceZorderGroups[zi]) traceZorderGroups[zi] = []; + traceZorderGroups[zi].push(cdSubplot[t]); } var layerData = []; var zoomScaleQueryParts = []; - // Plot each zindex group in ascending order - var zindices = Object.keys(traceZindexGroups) + // Plot each zorder group in ascending order + var zindices = Object.keys(traceZorderGroups) .map(Number) .sort(Lib.sorterAsc); for(var z = 0; z < zindices.length; z++) { - var zindex = zindices[z]; + var zorder = zindices[z]; // For each "module" (trace type) for(var i = 0; i < modules.length; i++) { _module = modules[i]; @@ -225,7 +225,7 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback var plotMethod = _module.plot; // plot all visible traces of this type on this subplot at once - cdModuleAndOthers = getModuleCalcData(cdSubplot, plotMethod, zindex); + cdModuleAndOthers = getModuleCalcData(cdSubplot, plotMethod, zorder); cdModule = cdModuleAndOthers[0]; // don't need to search the found traces again - in fact we need to NOT // so that if two modules share the same plotter we don't double-plot @@ -234,7 +234,7 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback if(cdModule.length) { layerData.push({ i: traceLayerClasses.indexOf(className), - zindex: z, + zorder: z, className: className, plotMethod: plotMethod, cdModule: cdModule @@ -248,7 +248,7 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback } } // Sort the layers primarily by z, then by i - layerData.sort(function(a, b) { return (a.zindex || 0) - (b.zindex || 0) || a.i - b.i; }); + layerData.sort(function(a, b) { return (a.zorder || 0) - (b.zorder || 0) || a.i - b.i; }); var layers = plotinfo.plot.selectAll('g.mlayer') .data(layerData, function(d) { return d.className; }); diff --git a/src/plots/get_data.js b/src/plots/get_data.js index 905f3b9997e..6096580e5a1 100644 --- a/src/plots/get_data.js +++ b/src/plots/get_data.js @@ -39,7 +39,7 @@ exports.getSubplotCalcData = function(calcData, type, subplotId) { * @param {array} calcdata: as in gd.calcdata * @param {object|string|fn} arg1: * the plotting module, or its name, or its plot method - * @param {int} arg2: (optional) zindex to filter on + * @param {int} arg2: (optional) zorder to filter on * @return {array[array]} [foundCalcdata, remainingCalcdata] */ exports.getModuleCalcData = function(calcdata, arg1, arg2) { @@ -57,12 +57,12 @@ exports.getModuleCalcData = function(calcdata, arg1, arg2) { if(!plotMethod) { return [moduleCalcData, calcdata]; } - var zindex = arg2; + var zorder = arg2; for(var i = 0; i < calcdata.length; i++) { var cd = calcdata[i]; var trace = cd[0].trace; - var filterByZ = (trace.zindex !== undefined); + var filterByZ = (trace.zorder !== undefined); // N.B. // - 'legendonly' traces do not make it past here // - skip over 'visible' traces that got trimmed completely during calc transforms @@ -72,7 +72,7 @@ exports.getModuleCalcData = function(calcdata, arg1, arg2) { // would suggest), but by 'module plot method' so that if some traces // share the same module plot method (e.g. bar and histogram), we // only call it one! - if(trace._module && trace._module.plot === plotMethod && (!filterByZ || trace.zindex === zindex)) { + if(trace._module && trace._module.plot === plotMethod && (!filterByZ || trace.zorder === zorder)) { moduleCalcData.push(cd); } else { remainingCalcData.push(cd); diff --git a/src/traces/bar/attributes.js b/src/traces/bar/attributes.js index 6332e392574..c5eead1b3d2 100644 --- a/src/traces/bar/attributes.js +++ b/src/traces/bar/attributes.js @@ -226,7 +226,7 @@ module.exports = { textfont: scatterAttrs.unselected.textfont, editType: 'style' }, - zindex: scatterAttrs.zindex, + zorder: scatterAttrs.zorder, _deprecated: { bardir: { diff --git a/src/traces/bar/defaults.js b/src/traces/bar/defaults.js index fa3559c4ac9..b969e30b1ee 100644 --- a/src/traces/bar/defaults.js +++ b/src/traces/bar/defaults.js @@ -29,7 +29,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { coerce('xhoverformat'); coerce('yhoverformat'); - coerce('zindex'); + coerce('zorder'); coerce('orientation', (traceOut.x && !traceOut.y) ? 'h' : 'v'); coerce('base'); diff --git a/src/traces/box/attributes.js b/src/traces/box/attributes.js index bee1699b049..6acfb11b7db 100644 --- a/src/traces/box/attributes.js +++ b/src/traces/box/attributes.js @@ -452,5 +452,5 @@ module.exports = { 'or sample points or both?' ].join(' ') }, - zindex: scatterAttrs.zindex + zorder: scatterAttrs.zorder }; diff --git a/src/traces/box/defaults.js b/src/traces/box/defaults.js index a9665b3ae33..0e9a5a71591 100644 --- a/src/traces/box/defaults.js +++ b/src/traces/box/defaults.js @@ -67,7 +67,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { if(notched) coerce('notchwidth'); handlePointsDefaults(traceIn, traceOut, coerce, {prefix: 'box'}); - coerce('zindex'); + coerce('zorder'); } function handleSampleDefaults(traceIn, traceOut, coerce, layout) { diff --git a/src/traces/candlestick/attributes.js b/src/traces/candlestick/attributes.js index 2cdec540b76..4cfde82c30c 100644 --- a/src/traces/candlestick/attributes.js +++ b/src/traces/candlestick/attributes.js @@ -53,5 +53,5 @@ module.exports = { whiskerwidth: extendFlat({}, boxAttrs.whiskerwidth, { dflt: 0 }), hoverlabel: OHLCattrs.hoverlabel, - zindex: boxAttrs.zindex + zorder: boxAttrs.zorder }; diff --git a/src/traces/candlestick/defaults.js b/src/traces/candlestick/defaults.js index 47649a64fa8..e8e44b4ed5b 100644 --- a/src/traces/candlestick/defaults.js +++ b/src/traces/candlestick/defaults.js @@ -31,7 +31,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('whiskerwidth'); layout._requestRangeslider[traceOut.xaxis] = true; - coerce('zindex'); + coerce('zorder'); }; function handleDirection(traceIn, traceOut, coerce, direction) { diff --git a/src/traces/carpet/attributes.js b/src/traces/carpet/attributes.js index 22fb3323400..e6ff6442a33 100644 --- a/src/traces/carpet/attributes.js +++ b/src/traces/carpet/attributes.js @@ -9,7 +9,7 @@ var carpetFont = fontAttrs({ description: 'The default font used for axis & tick labels on this carpet' }); -var zindex = require('../scatter/attributes').zindex; +var zorder = require('../scatter/attributes').zorder; // TODO: inherit from global font carpetFont.family.dflt = '"Open Sans", verdana, arial, sans-serif'; @@ -116,5 +116,5 @@ module.exports = { ].join(' ') }, transforms: undefined, - zindex: zindex + zorder: zorder }; diff --git a/src/traces/carpet/defaults.js b/src/traces/carpet/defaults.js index 394e2b247db..4f3f634f39d 100644 --- a/src/traces/carpet/defaults.js +++ b/src/traces/carpet/defaults.js @@ -45,5 +45,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, dfltColor, fullLayou if(traceOut._cheater) { coerce('cheaterslope'); } - coerce('zindex'); + coerce('zorder'); }; diff --git a/src/traces/contour/attributes.js b/src/traces/contour/attributes.js index 6f408adce97..3562a98c641 100644 --- a/src/traces/contour/attributes.js +++ b/src/traces/contour/attributes.js @@ -266,7 +266,7 @@ module.exports = extendFlat({ }), editType: 'plot' }, - zindex: scatterAttrs.zindex + zorder: scatterAttrs.zorder }, colorScaleAttrs('', { cLetter: 'z', diff --git a/src/traces/contour/defaults.js b/src/traces/contour/defaults.js index 62f05c25588..0d45eca75e6 100644 --- a/src/traces/contour/defaults.js +++ b/src/traces/contour/defaults.js @@ -51,5 +51,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout ) { handleHeatmapLabelDefaults(coerce, layout); } - coerce('zindex'); + coerce('zorder'); }; diff --git a/src/traces/contourcarpet/attributes.js b/src/traces/contourcarpet/attributes.js index 0fed2a3e00a..d938f5554d7 100644 --- a/src/traces/contourcarpet/attributes.js +++ b/src/traces/contourcarpet/attributes.js @@ -70,7 +70,7 @@ module.exports = extendFlat({ editType: 'plot' }, - zindex: contourAttrs.zindex, + zorder: contourAttrs.zorder, transforms: undefined }, diff --git a/src/traces/contourcarpet/defaults.js b/src/traces/contourcarpet/defaults.js index 8981db7d27f..a6548befe21 100644 --- a/src/traces/contourcarpet/defaults.js +++ b/src/traces/contourcarpet/defaults.js @@ -55,5 +55,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout traceOut._defaultColor = defaultColor; traceOut._length = null; } - coerce('zindex'); + coerce('zorder'); }; diff --git a/src/traces/funnel/attributes.js b/src/traces/funnel/attributes.js index 7c59018f0b4..86a52007b13 100644 --- a/src/traces/funnel/attributes.js +++ b/src/traces/funnel/attributes.js @@ -110,7 +110,7 @@ module.exports = { offsetgroup: barAttrs.offsetgroup, alignmentgroup: barAttrs.alignmentgroup, - zindex: barAttrs.zindex + zorder: barAttrs.zorder }; function funnelMarker() { diff --git a/src/traces/funnel/defaults.js b/src/traces/funnel/defaults.js index 27b66fbcc2f..b8bd941f68e 100644 --- a/src/traces/funnel/defaults.js +++ b/src/traces/funnel/defaults.js @@ -61,7 +61,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { coerce('connector.line.dash'); } } - coerce('zindex'); + coerce('zorder'); } function defaultFillColor(markerColor) { diff --git a/src/traces/heatmap/attributes.js b/src/traces/heatmap/attributes.js index cbc00ff3692..4802521a090 100644 --- a/src/traces/heatmap/attributes.js +++ b/src/traces/heatmap/attributes.js @@ -133,7 +133,7 @@ module.exports = extendFlat({ }), showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false}), - zindex: scatterAttrs.zindex + zorder: scatterAttrs.zorder }, { transforms: undefined }, diff --git a/src/traces/heatmap/defaults.js b/src/traces/heatmap/defaults.js index 33abee3e1f3..7387b005623 100644 --- a/src/traces/heatmap/defaults.js +++ b/src/traces/heatmap/defaults.js @@ -36,5 +36,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('connectgaps', Lib.isArray1D(traceOut.z) && (traceOut.zsmooth !== false)); colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'}); - coerce('zindex'); + coerce('zorder'); }; diff --git a/src/traces/histogram/attributes.js b/src/traces/histogram/attributes.js index 087225d762b..f442de30fbb 100644 --- a/src/traces/histogram/attributes.js +++ b/src/traces/histogram/attributes.js @@ -250,5 +250,5 @@ module.exports = { bardir: barAttrs._deprecated.bardir }, - zindex: barAttrs.zindex + zorder: barAttrs.zorder }; diff --git a/src/traces/histogram/defaults.js b/src/traces/histogram/defaults.js index b2295d17f2a..e381b0d7841 100644 --- a/src/traces/histogram/defaults.js +++ b/src/traces/histogram/defaults.js @@ -75,5 +75,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'}); errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'}); - coerce('zindex'); + coerce('zorder'); }; diff --git a/src/traces/image/attributes.js b/src/traces/image/attributes.js index 3ce37c92ea9..8b33b5ebec1 100644 --- a/src/traces/image/attributes.js +++ b/src/traces/image/attributes.js @@ -1,7 +1,7 @@ 'use strict'; var baseAttrs = require('../../plots/attributes'); -var zindex = require('../scatter/attributes').zindex; +var zorder = require('../scatter/attributes').zorder; var hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs; var extendFlat = require('../../lib/extend').extendFlat; var colormodel = require('./constants').colormodel; @@ -134,6 +134,6 @@ module.exports = extendFlat({ keys: ['z', 'color', 'colormodel'] }), - zindex: zindex, + zorder: zorder, transforms: undefined }); diff --git a/src/traces/image/defaults.js b/src/traces/image/defaults.js index dc5542bce91..24131a669be 100644 --- a/src/traces/image/defaults.js +++ b/src/traces/image/defaults.js @@ -46,5 +46,5 @@ module.exports = function supplyDefaults(traceIn, traceOut) { traceOut._length = null; - coerce('zindex'); + coerce('zorder'); }; diff --git a/src/traces/ohlc/attributes.js b/src/traces/ohlc/attributes.js index 594f8694e69..e5305791d4f 100644 --- a/src/traces/ohlc/attributes.js +++ b/src/traces/ohlc/attributes.js @@ -134,5 +134,5 @@ module.exports = { } }), - zindex: scatterAttrs.zindex + zorder: scatterAttrs.zorder }; diff --git a/src/traces/ohlc/defaults.js b/src/traces/ohlc/defaults.js index 5847ed2a27b..2557ecea8ee 100644 --- a/src/traces/ohlc/defaults.js +++ b/src/traces/ohlc/defaults.js @@ -32,7 +32,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout layout._requestRangeslider[traceOut.xaxis] = true; - coerce('zindex'); + coerce('zorder'); }; function handleDirection(traceIn, traceOut, coerce, direction) { diff --git a/src/traces/scatter/attributes.js b/src/traces/scatter/attributes.js index 52b2a13688f..84844d8fc60 100644 --- a/src/traces/scatter/attributes.js +++ b/src/traces/scatter/attributes.js @@ -686,14 +686,14 @@ module.exports = { arrayOk: true, description: 'Sets the text font.' }), - zindex: { + zorder: { valType: 'integer', dflt: 0, editType: 'plot', description: [ 'Sets the layer on which this trace is displayed, relative to', - 'other SVG traces on the same subplot. SVG traces with higher `zindex`', - 'appear in front of those with lower `zindex`.' + 'other SVG traces on the same subplot. SVG traces with higher `zorder`', + 'appear in front of those with lower `zorder`.' ].join(' ') } }; diff --git a/src/traces/scatter/defaults.js b/src/traces/scatter/defaults.js index 039514ba803..de63b81e49e 100644 --- a/src/traces/scatter/defaults.js +++ b/src/traces/scatter/defaults.js @@ -30,7 +30,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('xhoverformat'); coerce('yhoverformat'); - coerce('zindex'); + coerce('zorder'); var stackGroupOpts = handleStackDefaults(traceIn, traceOut, layout, coerce); if( diff --git a/src/traces/scattercarpet/attributes.js b/src/traces/scattercarpet/attributes.js index a0d1edded84..33cad08035b 100644 --- a/src/traces/scattercarpet/attributes.js +++ b/src/traces/scattercarpet/attributes.js @@ -119,5 +119,5 @@ module.exports = { }), hoveron: scatterAttrs.hoveron, hovertemplate: hovertemplateAttrs(), - zindex: scatterAttrs.zindex + zorder: scatterAttrs.zorder }; diff --git a/src/traces/scattercarpet/defaults.js b/src/traces/scattercarpet/defaults.js index 8dae7c826a8..f1234ea192f 100644 --- a/src/traces/scattercarpet/defaults.js +++ b/src/traces/scattercarpet/defaults.js @@ -75,6 +75,6 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout var hoverOn = coerce('hoveron', dfltHoverOn.join('+') || 'points'); if(hoverOn !== 'fills') coerce('hovertemplate'); - coerce('zindex'); + coerce('zorder'); Lib.coerceSelectionMarkerOpacity(traceOut, coerce); }; diff --git a/src/traces/violin/attributes.js b/src/traces/violin/attributes.js index a121f6d4813..ca1eecd2500 100644 --- a/src/traces/violin/attributes.js +++ b/src/traces/violin/attributes.js @@ -255,5 +255,5 @@ module.exports = { 'or sample points or the kernel density estimate or any combination of them?' ].join(' ') }, - zindex: boxAttrs.zindex + zorder: boxAttrs.zorder }; diff --git a/src/traces/violin/defaults.js b/src/traces/violin/defaults.js index 61b1d5b405c..fd60511bf9b 100644 --- a/src/traces/violin/defaults.js +++ b/src/traces/violin/defaults.js @@ -50,5 +50,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout if(!meanLineVisible) traceOut.meanline = {visible: false}; coerce('quartilemethod'); - coerce('zindex'); + coerce('zorder'); }; diff --git a/src/traces/waterfall/attributes.js b/src/traces/waterfall/attributes.js index 1a8b473d38a..afd5e9f29ad 100644 --- a/src/traces/waterfall/attributes.js +++ b/src/traces/waterfall/attributes.js @@ -152,5 +152,5 @@ module.exports = { offsetgroup: barAttrs.offsetgroup, alignmentgroup: barAttrs.alignmentgroup, - zindex: barAttrs.zindex + zorder: barAttrs.zorder }; diff --git a/src/traces/waterfall/defaults.js b/src/traces/waterfall/defaults.js index 6494a74142c..067d8aded90 100644 --- a/src/traces/waterfall/defaults.js +++ b/src/traces/waterfall/defaults.js @@ -76,7 +76,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { coerce('connector.line.dash'); } } - coerce('zindex'); + coerce('zorder'); } function crossTraceDefaults(fullData, fullLayout) { diff --git a/test/image/baselines/zindex_funnel_carpet_waterfall.png b/test/image/baselines/zindex_funnel_carpet_waterfall.png deleted file mode 100644 index 3d985ef88a04b35f334fe0028fa4ffa0ba1b1cae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41536 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 diff --git a/test/image/baselines/zindex-contour.png b/test/image/baselines/zz-zorder-contour.png similarity index 100% rename from test/image/baselines/zindex-contour.png rename to test/image/baselines/zz-zorder-contour.png diff --git a/test/image/baselines/zindex-heatmap.png b/test/image/baselines/zz-zorder-heatmap.png similarity index 100% rename from test/image/baselines/zindex-heatmap.png rename to test/image/baselines/zz-zorder-heatmap.png diff --git a/test/image/baselines/zindex-scatter-image.png b/test/image/baselines/zz-zorder-scatter-image.png similarity index 100% rename from test/image/baselines/zindex-scatter-image.png rename to test/image/baselines/zz-zorder-scatter-image.png diff --git a/test/image/baselines/zindex_basic.png b/test/image/baselines/zz-zorder_basic.png similarity index 89% rename from test/image/baselines/zindex_basic.png rename to test/image/baselines/zz-zorder_basic.png index 94cef28d9eb8650340e3e2cad87efe6727ee897f..7bc63f50483303d56e5c9ef3e8d247596d6b535a 100644 GIT binary patch delta 4670 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 delta 4603 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 literal 0 HcmV?d00001 diff --git a/test/image/baselines/zz-zorder_violin_box.png b/test/image/baselines/zz-zorder_violin_box.png new file mode 100644 index 0000000000000000000000000000000000000000..d709d192f312ebc266b2f70d87e98541e523310d GIT binary patch literal 22635 zcmeHvXH=72v?d^G0FfpjARR?PM35pS6sbzH(VIw<8tI`|K|w%Niu9r)1PDcX01bll zDj+Qw1q4Egkbs0XCw_JAUGrHZ7_1s}y#b=BK&tCcL8G{d$REz0qqRn*iFQV8|?T8}kP zqwhWS=*ib)iF_n~V?b3;^AT73VLdykx({`0banX>kIWsuMkI9FO3_|0J<@iWg);ew z#@p~C4H@otvXSY-i_HYjRXLxX+avyK8+fVk;J{&fxT znNf-|N_GKmdg`AmQ=q$f{=6RfPLOm8G?zE({PBM-OM$g#_%(<>?n;1{sZel z?o5AtpXa8r-?;!DmP)}eyu-(Azvw?*3!fTQ5`I&!bvPjKR07G~F8%I43TiDx4E^Q$$4MKMev&TWV!G-~tKW*-Vyp z8SRLoVNusGL`tcncXl`WyKfmlPp4Y?zIdLT+*w+San=v*zx?g7{sZHK{dO*xlyI}C zQOT35&(3s;hi>aE4i?1VB)oM(Auy)2wfgToi(^P$v^n*q=qrDO0T!nRve1ZQWerOr z<1WaiS)BDj!<)~|q$Px;&(dwLd@dTKRgU896Sdi}L&qtxJzzX=cO-Je;?JTi0vYZ9dRow0*-)-6f*_I^>H6LdsMzyn-P< zSvuY&HmBoQAx)<2yyA=FC?&@4$y0lKs zgfl`09XP1L&cWm!j1JuW@v$2gvXP;00H@gwa3xa7paA3sfp%uK9ld_s`Qp-il zU(GGjpG}l~$cNHzw?!0b!-eCsh3s?ART-wpb1=b+NT*-a24(Z1e5n@Pu_I-~>{6>+ z3)79YnZcXm4*aD^soky6gWBz$Cn0sEj{Vu5;4!b-+7`$WSC+3GLQigItH9%a%0}V^ zP#Ui6TQLHtRY$u#wWu*F^_Xkms;wPY;NN>Qgm1mpWoq(5Z28lHrLYyrpmgu0U$

V8=D!T)L!EA$TxnynYU~iiiq(jq&CgdX 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 literal 0 HcmV?d00001 diff --git a/test/image/mocks/funnel_axis_with_other_traces.json b/test/image/mocks/funnel_axis_with_other_traces.json index 2ea00e2ec77..f1819c681a4 100644 --- a/test/image/mocks/funnel_axis_with_other_traces.json +++ b/test/image/mocks/funnel_axis_with_other_traces.json @@ -22,7 +22,7 @@ "x": [ 1, 1, 1, 2, 2, 3 ], - "zindex": -10 + "zorder": -10 }, { "type": "funnel", @@ -42,7 +42,7 @@ ], "xaxis": "x2", "yaxis": "y2", - "zindex": 10 + "zorder": 10 }, { "type": "bar", diff --git a/test/image/mocks/zindex-contour.json b/test/image/mocks/zz-zorder-contour.json similarity index 88% rename from test/image/mocks/zindex-contour.json rename to test/image/mocks/zz-zorder-contour.json index 5088fd89d86..b629db1270b 100644 --- a/test/image/mocks/zindex-contour.json +++ b/test/image/mocks/zz-zorder-contour.json @@ -5,7 +5,7 @@ "name": "scatter", "y": [-1,0,1,2,3], "x": [-1,0,1,2,3], - "zindex": 1 + "zorder": 1 }, { "type": "contour", "z": [ @@ -13,7 +13,7 @@ [2, 0, 0], [3, 0, 3] ], - "zindex": 10 + "zorder": 10 } ], "layout": { diff --git a/test/image/mocks/zindex-heatmap.json b/test/image/mocks/zz-zorder-heatmap.json similarity index 95% rename from test/image/mocks/zindex-heatmap.json rename to test/image/mocks/zz-zorder-heatmap.json index d51a83ac985..87e4ec32d58 100644 --- a/test/image/mocks/zindex-heatmap.json +++ b/test/image/mocks/zz-zorder-heatmap.json @@ -16,7 +16,7 @@ "showscale": false, "xgap": 5, "ygap": 5, - "zindex": 10 + "zorder": 10 } ], "layout": { diff --git a/test/image/mocks/zindex-scatter-image.json b/test/image/mocks/zz-zorder-scatter-image.json similarity index 95% rename from test/image/mocks/zindex-scatter-image.json rename to test/image/mocks/zz-zorder-scatter-image.json index b27f80c5cfc..3e1deb02a15 100644 --- a/test/image/mocks/zindex-scatter-image.json +++ b/test/image/mocks/zz-zorder-scatter-image.json @@ -15,7 +15,7 @@ [[0, 1, 0], [0, null, 1], [1, 0, 0], [0, 0, 0]], [[1, 0, 0], [1, 0, 0], [0, 0, 1], [0, 0, 0]] ], - "zindex":10 + "zorder":10 } ], "layout": { diff --git a/test/image/mocks/zindex_basic.json b/test/image/mocks/zz-zorder_basic.json similarity index 88% rename from test/image/mocks/zindex_basic.json rename to test/image/mocks/zz-zorder_basic.json index 8bdc482f9bf..bd46aefef80 100644 --- a/test/image/mocks/zindex_basic.json +++ b/test/image/mocks/zz-zorder_basic.json @@ -7,7 +7,7 @@ "type": "scatter", "marker": {"size": 20}, "line": {"width": 6}, - "zindex": 5 + "zorder": 5 }, { "x": [2, 3, 4, 5, 6], @@ -16,7 +16,7 @@ "type": "scatter", "marker": {"size": 20}, "line": {"width": 6}, - "zindex": 4 + "zorder": 4 }, { "x": [3, 4, 5, 6, 7], @@ -33,34 +33,34 @@ "type": "scatter", "marker": {"size": 20}, "line": {"width": 6}, - "zindex": 300 + "zorder": 300 }, { "x": [2, 3, 4, 5, 6, 7], "y": [4, 2, 6, 1, 6, 9], "name": "purple", "type": "bar", - "zindex": 6 + "zorder": 6 }, { "x": [2, 3, 4, 5, 6, 7], "y": [5, 4, 10, 10, 6, 9], "name": "brown", "type": "bar", - "zindex": -10 + "zorder": -10 }, { "x": [2, 3, 4, 5, 6, 7], "y": [5, 3, 8, 8, 6, 9], "name": "pink", "type": "bar", - "zindex": -5 + "zorder": -5 } ], "layout": { "xaxis": { "title": { - "text": "zindex stacking" + "text": "zorder stacking" } }, "barmode": "overlay" diff --git a/test/image/mocks/zindex_funnel_carpet_waterfall.json b/test/image/mocks/zz-zorder_funnel_carpet_waterfall.json similarity index 80% rename from test/image/mocks/zindex_funnel_carpet_waterfall.json rename to test/image/mocks/zz-zorder_funnel_carpet_waterfall.json index 6a25f2824b2..0ad58bb8a00 100644 --- a/test/image/mocks/zindex_funnel_carpet_waterfall.json +++ b/test/image/mocks/zz-zorder_funnel_carpet_waterfall.json @@ -3,18 +3,18 @@ { "x": [-3, -2, 4], "y": [2, 8, 2], - "name": "scatter zindex=2", + "name": "scatter zorder=2", "type": "scatter", "marker": {"size": 20}, "line": {"width": 6}, - "zindex": 2 + "zorder": 2 }, { "x": [-3, -2, 2, 3], "y": [2, 5, -3, -1], - "name": "waterfall zindex=3", + "name": "waterfall zorder=3", "type": "waterfall", - "zindex": 3 + "zorder": 3 }, { "width": 0.7, @@ -22,8 +22,8 @@ "x": [7, 5, 7], "opacity": 1, "type": "funnel", - "name": "funnel zindex=4", - "zindex": 4 + "name": "funnel zorder=4", + "zorder": 4 }, { "type": "scattercarpet", @@ -41,8 +41,8 @@ "angleref": "previous" }, "carpet": "c0", - "name": "scattercarpet zindex=3", - "zindex": 3 + "name": "scattercarpet zorder=3", + "zorder": 3 }, { "type": "carpet", @@ -58,15 +58,15 @@ "minorgridcount": 9 }, "color": "red", - "zindex": 10, + "zorder": 10, "carpet": "c0", - "name": "carpet zindex=10" + "name": "carpet zorder=10" } ], "layout": { "xaxis": { "title": { - "text": "zindex stacking" + "text": "zorder stacking" } } } diff --git a/test/image/mocks/zindex_violin_box.json b/test/image/mocks/zz-zorder_violin_box.json similarity index 83% rename from test/image/mocks/zindex_violin_box.json rename to test/image/mocks/zz-zorder_violin_box.json index 9996a8e1fa0..b3cf51e11cf 100644 --- a/test/image/mocks/zindex_violin_box.json +++ b/test/image/mocks/zz-zorder_violin_box.json @@ -11,20 +11,20 @@ }, { "type": "box", - "name": "box no zindex", + "name": "box no zorder", "y": [-1, 1] }, { "type": "box", "name": "box below", "y": [-1, 1], - "zindex": -100 + "zorder": -100 } ], "layout": { "xaxis": { "title": { - "text": "zindex stacking" + "text": "zorder stacking" } } } diff --git a/test/jasmine/tests/cartesian_interact_test.js b/test/jasmine/tests/cartesian_interact_test.js index a05f87f3009..1f9524e7a6f 100644 --- a/test/jasmine/tests/cartesian_interact_test.js +++ b/test/jasmine/tests/cartesian_interact_test.js @@ -2548,7 +2548,7 @@ describe('Cartesian plots with css transforms', function() { }); }); -describe('Cartesian taces with zindex', function() { +describe('Cartesian taces with zorder', function() { var gd; beforeEach(function() { @@ -2558,20 +2558,20 @@ describe('Cartesian taces with zindex', function() { afterEach(destroyGraphDiv); var data0 = [ - {x: [1, 2], y: [1, 1], type: 'scatter', marker: {size: 10}, zindex: 10}, + {x: [1, 2], y: [1, 1], type: 'scatter', marker: {size: 10}, zorder: 10}, {x: [1, 2], y: [1, 2], type: 'scatter', marker: {size: 30}}, - {x: [1, 2], y: [1, 3], type: 'scatter', marker: {size: 20}, zindex: 5} + {x: [1, 2], y: [1, 3], type: 'scatter', marker: {size: 20}, zorder: 5} ]; var data1 = [ {x: [1, 2], y: [1, 1], type: 'scatter', marker: {size: 10}}, - {x: [1, 2], y: [1, 2], type: 'scatter', marker: {size: 30}, zindex: -5}, - {x: [1, 2], y: [1, 3], type: 'scatter', marker: {size: 20}, zindex: 10}, + {x: [1, 2], y: [1, 2], type: 'scatter', marker: {size: 30}, zorder: -5}, + {x: [1, 2], y: [1, 3], type: 'scatter', marker: {size: 20}, zorder: 10}, ]; var barData = [ {x: [1, 2], y: [2, 4], type: 'bar'}, - {x: [1, 2], y: [4, 2], type: 'bar', zindex: -10} + {x: [1, 2], y: [4, 2], type: 'bar', zorder: -10} ]; function fig(data) { @@ -2585,8 +2585,8 @@ describe('Cartesian taces with zindex', function() { function assertZIndices(data, expectedData) { for(var i = 0; i < data.length; i++) { - var zindex = expectedData[i].zindex ? expectedData[i].zindex : 0; - expect(data[i].zindex).toEqual(zindex); + var zorder = expectedData[i].zorder ? expectedData[i].zorder : 0; + expect(data[i].zorder).toEqual(zorder); } } @@ -2594,7 +2594,7 @@ describe('Cartesian taces with zindex', function() { var prevZIndex; expect(data.length).toBeGreaterThan(0); for(var i = 0; i < data.length; i++) { - var currentZIndex = data[i].__data__.zindex; + var currentZIndex = data[i].__data__.zorder; if(prevZIndex !== undefined) { expect(currentZIndex).toBeGreaterThanOrEqual(prevZIndex); } @@ -2602,7 +2602,7 @@ describe('Cartesian taces with zindex', function() { } } - it('should be able to update and remove layers for scatter traces in respect to zindex', function(done) { + it('should be able to update and remove layers for scatter traces in respect to zorder', function(done) { Plotly.newPlot(gd, fig(data0)) .then(function() { var data = gd._fullData; @@ -2656,7 +2656,7 @@ describe('Cartesian taces with zindex', function() { .then(done, done.fail); }); - it('should display traces in ascending zindex order after restyle', function(done) { + it('should display traces in ascending zorder order after restyle', function(done) { Plotly.newPlot(gd, fig(data0)) .then(function() { var tracesData = d3SelectAll('g[class^="scatterlayer"]'); @@ -2698,7 +2698,7 @@ describe('Cartesian taces with zindex', function() { it('should display ' + traceType + ' traces in ascending order', function(done) { var _Data = [ {x: [1, 2], y: [2, 4], type: traceType}, - {x: [1, 2], y: [4, 2], type: traceType, zindex: -10} + {x: [1, 2], y: [4, 2], type: traceType, zorder: -10} ]; var _Class = 'g[class^="' + traceType + 'layer"]'; Plotly.newPlot(gd, fig(_Data)) diff --git a/test/jasmine/tests/select_test.js b/test/jasmine/tests/select_test.js index e92a0734796..d8984a719c6 100644 --- a/test/jasmine/tests/select_test.js +++ b/test/jasmine/tests/select_test.js @@ -144,11 +144,11 @@ var BOXEVENTS = [1, 2, 1]; // assumes 5 points in the lasso path var LASSOEVENTS = [4, 2, 1]; -var mockZindex = { +var mockZorder = { data: [ - {x: [1, 2], y: [1, 1], type: 'scatter', zindex: 10, marker: {size: 50}}, + {x: [1, 2], y: [1, 1], type: 'scatter', zorder: 10, marker: {size: 50}}, {x: [1, 2], y: [1, 2], type: 'scatter', marker: {size: 50}}, - {x: [1, 2], y: [1, 3], type: 'scatter', zindex: 5, marker: {size: 50}} + {x: [1, 2], y: [1, 3], type: 'scatter', zorder: 5, marker: {size: 50}} ], layout: { width: 400, @@ -279,8 +279,8 @@ describe('Click-to-select', function() { .then(done, done.fail); }); - it('selects a single data point when being clicked on trace with zindex', function(done) { - _newPlot(gd, mockZindex.data, mockZindex.layout) + it('selects a single data point when being clicked on trace with zorder', function(done) { + _newPlot(gd, mockZorder.data, mockZorder.layout) .then(function() { return _immediateClickPt({ x: 270, y: 150 }); }) @@ -295,8 +295,8 @@ describe('Click-to-select', function() { .then(done, done.fail); }); - it('should only select top most zindex trace if overlapping position on single click', function(done) { - _newPlot(gd, mockZindex.data, mockZindex.layout) + it('should only select top most zorder trace if overlapping position on single click', function(done) { + _newPlot(gd, mockZorder.data, mockZorder.layout) .then(function() { return _immediateClickPt({ x: 130, y: 250 }); }) @@ -306,9 +306,9 @@ describe('Click-to-select', function() { .then(done, done.fail); }); - it('should lasso select all overlapping points regardless of zindex', function(done) { - mockZindex.layout.dragmode = 'lasso'; - _newPlot(gd, mockZindex.data, mockZindex.layout) + it('should lasso select all overlapping points regardless of zorder', function(done) { + mockZorder.layout.dragmode = 'lasso'; + _newPlot(gd, mockZorder.data, mockZorder.layout) .then(function() { drag([[200, 200], [200, 300], [100, 300], [100, 200], [200, 200]]); }) @@ -331,9 +331,9 @@ describe('Click-to-select', function() { .then(done, done.fail); }); - it('should box select all overlapping points regardless of zindex', function(done) { - mockZindex.layout.dragmode = 'select'; - _newPlot(gd, mockZindex.data, mockZindex.layout) + it('should box select all overlapping points regardless of zorder', function(done) { + mockZorder.layout.dragmode = 'select'; + _newPlot(gd, mockZorder.data, mockZorder.layout) .then(function() { drag([[200, 200], [100, 300]]); }) diff --git a/test/plot-schema.json b/test/plot-schema.json index 817765432b2..a0e3a7d1282 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -14842,8 +14842,8 @@ "editType": "none", "valType": "string" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -17521,8 +17521,8 @@ "editType": "none", "valType": "string" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -18075,8 +18075,8 @@ "editType": "none", "valType": "string" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -19482,8 +19482,8 @@ "editType": "none", "valType": "string" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -23959,12 +23959,6 @@ "editType": "none", "valType": "string" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" - }, "zmax": { "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", "dflt": null, @@ -23990,6 +23984,12 @@ }, "valType": "number" }, + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + }, "zsrc": { "description": "Sets the source reference on Chart Studio Cloud for `z`.", "editType": "none", @@ -25014,12 +25014,6 @@ "impliedEdits": {}, "valType": "boolean" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" - }, "zmax": { "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", "dflt": null, @@ -25045,6 +25039,12 @@ }, "valType": "number" }, + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + }, "zsrc": { "description": "Sets the source reference on Chart Studio Cloud for `z`.", "editType": "none", @@ -27431,8 +27431,8 @@ "editType": "none", "valType": "string" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -29403,12 +29403,6 @@ "editType": "none", "valType": "string" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" - }, "zmax": { "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", "dflt": null, @@ -29434,6 +29428,12 @@ }, "valType": "number" }, + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + }, "zsmooth": { "description": "Picks a smoothing algorithm use to smooth `z` data.", "dflt": false, @@ -32174,8 +32174,8 @@ "editType": "none", "valType": "string" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -36527,12 +36527,6 @@ "editType": "calc", "valType": "data_array" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" - }, "zmax": { "description": "Array defining the higher bound for each color component. Note that the default value will depend on the colormodel. For the `rgb` colormodel, it is [255, 255, 255]. For the `rgba` colormodel, it is [255, 255, 255, 1]. For the `rgba256` colormodel, it is [255, 255, 255, 255]. For the `hsl` colormodel, it is [360, 100, 100]. For the `hsla` colormodel, it is [360, 100, 100, 1].", "editType": "calc", @@ -36579,6 +36573,12 @@ ], "valType": "info_array" }, + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + }, "zsmooth": { "description": "Picks a smoothing algorithm used to smooth `z` data. This only applies for image traces that use the `source` attribute.", "dflt": false, @@ -40538,8 +40538,8 @@ "editType": "none", "valType": "string" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -47288,8 +47288,8 @@ "editType": "none", "valType": "string" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -51521,8 +51521,8 @@ "editType": "calc+clearAxisTypes", "valType": "subplotid" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -73475,8 +73475,8 @@ "editType": "none", "valType": "string" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", "dflt": 0, "editType": "plot", "valType": "integer" @@ -75669,8 +75669,8 @@ "editType": "none", "valType": "string" }, - "zindex": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zindex` appear in front of those with lower `zindex`.", + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", "dflt": 0, "editType": "plot", "valType": "integer"