From e982570ccd63b063b92582235563fcb5a10cc4b0 Mon Sep 17 00:00:00 2001 From: Santiago Date: Mon, 31 Oct 2022 21:24:49 +0000 Subject: [PATCH 01/49] Added first working version of sync axes --- src/plots/cartesian/axes.js | 30 +- src/plots/cartesian/layout_attributes.js | 2 +- src/plots/cartesian/tick_value_defaults.js | 2 + test/image/mocks/new_tickmode_sync.json | 42 + test/image/mocks/roll_mock.json | 1621 ++++++++++++++++++++ 5 files changed, 1694 insertions(+), 3 deletions(-) create mode 100644 test/image/mocks/new_tickmode_sync.json create mode 100644 test/image/mocks/roll_mock.json diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 4a5bed02b15..d216dbb7a8a 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -657,8 +657,34 @@ function isClose(a, b) { axes.prepTicks = function(ax, opts) { var rng = Lib.simpleMap(ax.range, ax.r2l, undefined, undefined, opts); - // calculate max number of (auto) ticks to display based on plot size - if(ax.tickmode === 'auto' || !ax.dtick) { + // sync ticks with the overlaying defined axis + if(ax.tickmode === 'sync') { + var baseAxis = ax._mainAxis; + + var minValBaseAxis = Math.min(baseAxis.range[0], baseAxis.range[1]); + var maxValBaseAxis = Math.max(baseAxis.range[0], baseAxis.range[1]); + + var rangeDeltaBaseAxis = Math.abs(maxValBaseAxis - minValBaseAxis); + + var dtickRatio = rangeDeltaBaseAxis / baseAxis.dtick; + + var minValAxis = Math.min(ax.range[0], ax.range[1]); + var maxValAxis = Math.max(ax.range[0], ax.range[1]); + + var rangeDeltaAxis = Math.abs(maxValAxis - minValAxis); + + ax.dtick = rangeDeltaAxis / dtickRatio; + + if(baseAxis._vals.length > 0) { + var firstTickPosition = baseAxis.l2p(baseAxis._vals[0].x); + + var firstTickPercentage = firstTickPosition / baseAxis._length; + + var offsetVal = rangeDeltaAxis * (1 - firstTickPercentage); + + ax.tick0 = offsetVal + minValAxis; + } + } else if(ax.tickmode === 'auto' || !ax.dtick) { // calculate max number of (auto) ticks to display based on plot size var nt = ax.nticks; var minPx; diff --git a/src/plots/cartesian/layout_attributes.js b/src/plots/cartesian/layout_attributes.js index a693fb4cb76..f9f3b934d16 100644 --- a/src/plots/cartesian/layout_attributes.js +++ b/src/plots/cartesian/layout_attributes.js @@ -14,7 +14,7 @@ var DAY_OF_WEEK = constants.WEEKDAY_PATTERN; var tickmode = { valType: 'enumerated', - values: ['auto', 'linear', 'array'], + values: ['auto', 'linear', 'array', 'sync'], editType: 'ticks', impliedEdits: {tick0: undefined, dtick: undefined}, description: [ diff --git a/src/plots/cartesian/tick_value_defaults.js b/src/plots/cartesian/tick_value_defaults.js index e6ffb8f6a5d..479d033c887 100644 --- a/src/plots/cartesian/tick_value_defaults.js +++ b/src/plots/cartesian/tick_value_defaults.js @@ -28,6 +28,8 @@ module.exports = function handleTickValueDefaults(containerIn, containerOut, coe if(tickmode === 'auto') { coerce(prefix + 'nticks'); + } else if(tickmode === 'sync') { + coerce('overlaying'); } else if(tickmode === 'linear') { // dtick is usually a positive number, but there are some // special strings available for log or date axes diff --git a/test/image/mocks/new_tickmode_sync.json b/test/image/mocks/new_tickmode_sync.json new file mode 100644 index 00000000000..290c0fb7981 --- /dev/null +++ b/test/image/mocks/new_tickmode_sync.json @@ -0,0 +1,42 @@ +{ + "data": [ + { + "name": "Apples", + "type": "bar", + "x": ["Jan", "Feb", "Mar", "Apr", "May"], + "y": [232, 2506, 470, 1864, -190] + }, + { + "name": "Oranges", + "type": "line", + "x": ["Jan", "Feb", "Mar", "Apr", "May"], + "y": [-0.8, 0.09, 0.01, 0.13, 0.42], + "yaxis": "y2" + } + ], + "layout": { + "margin": { + "t": 40, "r": 70, "b": 40, "l": 70 + }, + "width": 700, + "legend": { + "orientation": "h", + "x": 0.6, + "y": 1.1 + }, + "yaxis": { + "title": "Apples", + "side": "left", + "range": [0, 2506] + }, + "yaxis2": { + "title": "Oranges", + "side": "right", + "range": [0, 0.42], + "overlaying": "y", + "tickmode": "sync", + "zeroline": false + } + } + } + \ No newline at end of file diff --git a/test/image/mocks/roll_mock.json b/test/image/mocks/roll_mock.json new file mode 100644 index 00000000000..bceb8a6f8a0 --- /dev/null +++ b/test/image/mocks/roll_mock.json @@ -0,0 +1,1621 @@ +{ + "data": [ + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "solid", + "shape": "spline", + "color": "#FF0000" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + ], + "y": [ + 7329.2314, + 7370.159, + 7418.1772, + 7423.114, + 7400.379, + 7368.819, + 7355.531, + 7338.7295, + 7328.453, + 7289.163, + 7273.9224, + 7267.61, + 7286.2393 + ], + "name": "B - 3", + "yaxis": "y2", + "legendgroup": "B - 3" + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "solid", + "shape": "spline", + "color": "#008CFF" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + ], + "y": [ + 7329.453, + 7370.3438, + 7418.268, + 7423.7246, + 7400.6587, + 7369.186, + 7355.7446, + 7338.8003, + 7328.5127, + 7289.2207, + 7273.879, + 7267.8364, + 7286.3647 + ], + "name": "A - 3", + "yaxis": "y2", + "legendgroup": "A - 3" + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "solid", + "shape": "spline", + "color": "#00E500" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + ], + "y": [ + 7329.1943, + 7370.121, + 7418.1143, + 7422.937, + 7400.1943, + 7368.6416, + 7355.457, + 7338.6655, + 7328.3965, + 7289.115, + 7273.6577, + 7267.5703, + 7286.2065 + ], + "name": "B - 4", + "yaxis": "y2", + "legendgroup": "B - 4" + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "solid", + "shape": "spline", + "color": "#FFA500" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + ], + "y": [ + 7329.4253, + 7370.311, + 7418.2207, + 7423.594, + 7400.5195, + 7369.057, + 7355.675, + 7338.752, + 7328.4697, + 7289.187, + 7273.6816, + 7267.807, + 7286.3403 + ], + "name": "A - 4", + "yaxis": "y2", + "legendgroup": "A - 4" + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "dot", + "shape": "spline", + "color": "#737373" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + ], + "y": [ + 255, + 260, + 255, + 240, + 225, + 220, + 215, + 215, + 217, + 220, + 225, + 232, + 240 + ], + "name": "vCar", + "yaxis": "y", + "legendgroup": "B - 3", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "dot", + "shape": "spline", + "color": "#737373" + }, + "hovertemplate": "", + "x": [ + [ + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + ], + "y": [ + 255, + 260, + 255, + 240, + 225, + 220, + 215, + 215, + 217, + 220, + 225, + 232, + 240 + ], + "name": "A - 3", + "yaxis": "y", + "legendgroup": "A - 3", + "hoverinfo": "none", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "dot", + "shape": "spline", + "color": "#737373" + }, + "hovertemplate": "", + "x": [ + [ + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + ], + "y": [ + 255, + 260, + 255, + 240, + 225, + 220, + 215, + 215, + 217, + 220, + 225, + 232, + 240 + ], + "name": "B - 4", + "yaxis": "y", + "legendgroup": "B - 4", + "hoverinfo": "none", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "dot", + "shape": "spline", + "color": "#737373" + }, + "hovertemplate": "", + "x": [ + [ + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High", + "High" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + ], + "y": [ + 255, + 260, + 255, + 240, + 225, + 220, + 215, + 215, + 217, + 220, + 225, + 232, + 240 + ], + "name": "A - 4", + "yaxis": "y", + "legendgroup": "A - 4", + "hoverinfo": "none", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "solid", + "shape": "spline", + "color": "#FF0000" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "y": [ + 7399.038, + 7399.7876, + 7424.6357, + 7372.926, + 7333.9478, + 7305.11, + 7321.1978, + 7333.012, + 7297.39, + 7261.06, + 7183.9854, + 7170.872, + 7154.927, + 7159.685, + 7164.351, + 7189.4263, + 7226.21, + 7248.6665 + ], + "name": "B - 3", + "yaxis": "y2", + "legendgroup": "B - 3", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "solid", + "shape": "spline", + "color": "#008CFF" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "y": [ + 7399.3438, + 7399.956, + 7424.694, + 7373.0015, + 7333.9214, + 7305.262, + 7321.17, + 7333.199, + 7297.318, + 7260.9863, + 7183.9565, + 7170.8364, + 7155.2705, + 7159.8203, + 7164.152, + 7189.498, + 7226.2725, + 7248.7397 + ], + "name": "A - 3", + "yaxis": "y2", + "legendgroup": "A - 3", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "solid", + "shape": "spline", + "color": "#00E500" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "y": [ + 7398.8027, + 7399.7617, + 7424.589, + 7372.8657, + 7333.8833, + 7305.035, + 7321.121, + 7332.934, + 7297.3887, + 7260.9907, + 7183.9653, + 7170.825, + 7154.8164, + 7159.641, + 7164.187, + 7189.389, + 7226.175, + 7248.6304 + ], + "name": "B - 4", + "yaxis": "y2", + "legendgroup": "B - 4", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "solid", + "shape": "spline", + "color": "#FFA500" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "y": [ + 7399.168, + 7399.9365, + 7424.659, + 7372.956, + 7333.8735, + 7305.206, + 7321.1123, + 7333.1406, + 7297.269, + 7260.9346, + 7183.9336, + 7170.8013, + 7155.188, + 7159.7876, + 7164.0176, + 7189.47, + 7226.246, + 7248.713 + ], + "name": "A - 4", + "yaxis": "y2", + "legendgroup": "A - 4", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "dot", + "shape": "spline", + "color": "#737373" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "y": [ + 290, + 292, + 282, + 245, + 205, + 190, + 175, + 160, + 150, + 140, + 140, + 145, + 155, + 165, + 175, + 187, + 200, + 215 + ], + "name": "vCar", + "yaxis": "y", + "legendgroup": "B - 3", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "dot", + "shape": "spline", + "color": "#737373" + }, + "hovertemplate": "", + "x": [ + [ + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "y": [ + 290, + 292, + 282, + 245, + 205, + 190, + 175, + 160, + 150, + 140, + 140, + 145, + 155, + 165, + 175, + 187, + 200, + 215 + ], + "name": "A - 3", + "yaxis": "y", + "legendgroup": "A - 3", + "hoverinfo": "none", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "dot", + "shape": "spline", + "color": "#737373" + }, + "hovertemplate": "", + "x": [ + [ + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "y": [ + 290, + 292, + 282, + 245, + 205, + 190, + 175, + 160, + 150, + 140, + 140, + 145, + 155, + 165, + 175, + 187, + 200, + 215 + ], + "name": "B - 4", + "yaxis": "y", + "legendgroup": "B - 4", + "hoverinfo": "none", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "dot", + "shape": "spline", + "color": "#737373" + }, + "hovertemplate": "", + "x": [ + [ + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium", + "Medium" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "y": [ + 290, + 292, + 282, + 245, + 205, + 190, + 175, + 160, + 150, + 140, + 140, + 145, + 155, + 165, + 175, + 187, + 200, + 215 + ], + "name": "A - 4", + "yaxis": "y", + "legendgroup": "A - 4", + "hoverinfo": "none", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "solid", + "shape": "spline", + "color": "#FF0000" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "y": [ + 7408.1074, + 7421.896, + 7411.078, + 7362.891, + 7329.4346, + 7260.8394, + 7168.693, + 7144.0864, + 7057.076, + 6959.603, + 6949.5127, + 6966.433 + ], + "name": "B - 3", + "yaxis": "y2", + "legendgroup": "B - 3", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "solid", + "shape": "spline", + "color": "#008CFF" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "y": [ + 7408.281, + 7422.081, + 7410.434, + 7362.949, + 7329.124, + 7260.852, + 7168.6826, + 7143.5386, + 7056.9175, + 6959.552, + 6949.5825, + 6966.547 + ], + "name": "A - 3", + "yaxis": "y2", + "legendgroup": "A - 3", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "solid", + "shape": "spline", + "color": "#00E500" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "y": [ + 7408.0825, + 7421.87, + 7410.7026, + 7362.8223, + 7329.1553, + 7260.794, + 7168.657, + 7143.9097, + 7057.0557, + 6959.592, + 6949.4985, + 6966.4136 + ], + "name": "B - 4", + "yaxis": "y2", + "legendgroup": "B - 4", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "solid", + "shape": "spline", + "color": "#FFA500" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "y": [ + 7408.262, + 7422.0615, + 7410.152, + 7362.8975, + 7328.914, + 7260.818, + 7168.6562, + 7143.409, + 7056.902, + 6959.543, + 6949.572, + 6966.532 + ], + "name": "A - 4", + "yaxis": "y2", + "legendgroup": "A - 4", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "dot", + "shape": "spline", + "color": "#737373" + }, + "hovertemplate": "%{y:.2f} ", + "x": [ + [ + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "y": [ + 295, + 300, + 275, + 240, + 195, + 155, + 120, + 100, + 80, + 75, + 90, + 115 + ], + "name": "vCar", + "yaxis": "y", + "legendgroup": "B - 3", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "dot", + "shape": "spline", + "color": "#737373" + }, + "hovertemplate": "", + "x": [ + [ + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "y": [ + 295, + 300, + 275, + 240, + 195, + 155, + 120, + 100, + 80, + 75, + 90, + 115 + ], + "name": "A - 3", + "yaxis": "y", + "legendgroup": "A - 3", + "hoverinfo": "none", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "dot", + "shape": "spline", + "color": "#737373" + }, + "hovertemplate": "", + "x": [ + [ + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "y": [ + 295, + 300, + 275, + 240, + 195, + 155, + 120, + 100, + 80, + 75, + 90, + 115 + ], + "name": "B - 4", + "yaxis": "y", + "legendgroup": "B - 4", + "hoverinfo": "none", + "showlegend": false + }, + { + "type": "scatter", + "mode": "lines", + "line": { + "dash": "dot", + "shape": "spline", + "color": "#737373" + }, + "hovertemplate": "", + "x": [ + [ + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low", + "Low" + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "y": [ + 295, + 300, + 275, + 240, + 195, + 155, + 120, + 100, + 80, + 75, + 90, + 115 + ], + "name": "A - 4", + "yaxis": "y", + "legendgroup": "A - 4", + "hoverinfo": "none", + "showlegend": false + } + ], + "layout": { + "autosize": true, + "margin": { + "t": 40 + }, + "legend": { + "x": 0.5, + "y": "auto", + "xanchor": "center", + "yanchor": "top", + "orientation": "h", + "bgcolor": "transparent", + "font": { + "size": 10 + } + }, + "hovermode": "x unified", + "title": { + "text": "Multicategory Mock with Tickmode 'sync'" + }, + "xaxis": { + "visible": false, + "range": [ + 0, + 42 + ], + "autorange": true, + "type": "multicategory" + }, + "yaxis": { + + "range": [ + 62.5, + 312.5 + ], + "anchor": "x", + "side": "right", + "type": "linear" + }, + "yaxis2": { + "range": [ + 6150, + 7451.09375 + ], + "type": "linear", + "side": "left", + "tickmode": "sync", + "overlaying": "y" + }, + "showlegend": true + } + } + \ No newline at end of file From b68537eadea5e83ff19cbce84f7b77b2d1a8e179 Mon Sep 17 00:00:00 2001 From: Santiago Date: Tue, 1 Nov 2022 18:56:38 +0000 Subject: [PATCH 02/49] Null verification to the overlaying axis --- src/plots/cartesian/axes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index d216dbb7a8a..69e56f07be8 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -675,7 +675,7 @@ axes.prepTicks = function(ax, opts) { ax.dtick = rangeDeltaAxis / dtickRatio; - if(baseAxis._vals.length > 0) { + if(baseAxis && baseAxis._vals.length > 0) { var firstTickPosition = baseAxis.l2p(baseAxis._vals[0].x); var firstTickPercentage = firstTickPosition / baseAxis._length; From debd59b7e42899b6bddc256dd7473b0a9f3f0e53 Mon Sep 17 00:00:00 2001 From: Victor Bezak Date: Tue, 1 Nov 2022 14:21:36 -0500 Subject: [PATCH 03/49] added comments for readability --- src/plots/cartesian/axes.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 69e56f07be8..40f6079472b 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -661,28 +661,29 @@ axes.prepTicks = function(ax, opts) { if(ax.tickmode === 'sync') { var baseAxis = ax._mainAxis; + // get range min and max to find range delta of axis 1 var minValBaseAxis = Math.min(baseAxis.range[0], baseAxis.range[1]); var maxValBaseAxis = Math.max(baseAxis.range[0], baseAxis.range[1]); - var rangeDeltaBaseAxis = Math.abs(maxValBaseAxis - minValBaseAxis); - var dtickRatio = rangeDeltaBaseAxis / baseAxis.dtick; - + // get range min and max to find range delta of axis 2 var minValAxis = Math.min(ax.range[0], ax.range[1]); var maxValAxis = Math.max(ax.range[0], ax.range[1]); + var rangeDeltaCurrentAxis = Math.abs(maxValAxis - minValAxis); - var rangeDeltaAxis = Math.abs(maxValAxis - minValAxis); - - ax.dtick = rangeDeltaAxis / dtickRatio; + // set second axis' dtick value to be based off of same ratio as the first axis + var dtickRatio = rangeDeltaBaseAxis / baseAxis.dtick; + ax.dtick = rangeDeltaCurrentAxis / dtickRatio; + // validate that the axis has values before we try to use them for tick0 calculation if(baseAxis && baseAxis._vals.length > 0) { + // get position of first axis' starting tick var firstTickPosition = baseAxis.l2p(baseAxis._vals[0].x); - var firstTickPercentage = firstTickPosition / baseAxis._length; - var offsetVal = rangeDeltaAxis * (1 - firstTickPercentage); - - ax.tick0 = offsetVal + minValAxis; + // set current axis to have same starting tick position + var currentAxisOffsetVal = rangeDeltaCurrentAxis * (1 - firstTickPercentage); + ax.tick0 = currentAxisOffsetVal + minValAxis; } } else if(ax.tickmode === 'auto' || !ax.dtick) { // calculate max number of (auto) ticks to display based on plot size var nt = ax.nticks; From c3fcb6d71fec23e9a792233806d79ad927b415c4 Mon Sep 17 00:00:00 2001 From: Victor Bezak Date: Tue, 1 Nov 2022 14:22:28 -0500 Subject: [PATCH 04/49] npm run schema --- test/plot-schema.json | 150 ++++++++++++++++++++++++++++-------------- 1 file changed, 100 insertions(+), 50 deletions(-) diff --git a/test/plot-schema.json b/test/plot-schema.json index dbe239cd99d..fbd87feac69 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -1462,7 +1462,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -3963,7 +3964,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -4562,7 +4564,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -5681,7 +5684,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -6243,7 +6247,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -6805,7 +6810,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -8430,7 +8436,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -8828,7 +8835,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -9232,7 +9240,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -10260,7 +10269,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "ticks": { @@ -10987,7 +10997,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -11511,7 +11522,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "ticks": { @@ -11984,7 +11996,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -13048,7 +13061,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -14569,7 +14583,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -18774,7 +18789,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -19773,7 +19789,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -20801,7 +20818,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -21847,7 +21865,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -23234,7 +23253,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -24192,7 +24212,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -25499,7 +25520,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -27215,7 +27237,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -28385,7 +28408,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -29926,7 +29950,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -31110,7 +31135,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -32252,7 +32278,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -33907,7 +33934,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -35309,7 +35337,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -36220,7 +36249,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -37442,7 +37472,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -39430,7 +39461,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -40393,7 +40425,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -43917,7 +43950,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -46119,7 +46153,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -46708,7 +46743,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -48156,7 +48192,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -49997,7 +50034,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -51984,7 +52022,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -53890,7 +53929,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -55065,7 +55105,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -56909,7 +56950,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -58730,7 +58772,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -60577,7 +60620,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -62378,7 +62422,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -63777,7 +63822,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -65242,7 +65288,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -66115,7 +66162,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -68475,7 +68523,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { @@ -70788,7 +70837,8 @@ "values": [ "auto", "linear", - "array" + "array", + "sync" ] }, "tickprefix": { From 6a4a5ba76cc1ea4a35c3f08948540f4d2e3914cc Mon Sep 17 00:00:00 2001 From: Filipe Santiago Date: Mon, 14 Nov 2022 16:50:50 +0000 Subject: [PATCH 05/49] Removed math.abs() from prepTicks sync --- src/plots/cartesian/axes.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 40f6079472b..45ab4eb318a 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -664,12 +664,12 @@ axes.prepTicks = function(ax, opts) { // get range min and max to find range delta of axis 1 var minValBaseAxis = Math.min(baseAxis.range[0], baseAxis.range[1]); var maxValBaseAxis = Math.max(baseAxis.range[0], baseAxis.range[1]); - var rangeDeltaBaseAxis = Math.abs(maxValBaseAxis - minValBaseAxis); + var rangeDeltaBaseAxis = maxValBaseAxis - minValBaseAxis; // get range min and max to find range delta of axis 2 var minValAxis = Math.min(ax.range[0], ax.range[1]); var maxValAxis = Math.max(ax.range[0], ax.range[1]); - var rangeDeltaCurrentAxis = Math.abs(maxValAxis - minValAxis); + var rangeDeltaCurrentAxis = maxValAxis - minValAxis; // set second axis' dtick value to be based off of same ratio as the first axis var dtickRatio = rangeDeltaBaseAxis / baseAxis.dtick; From 76debab726d92d26e889fab5f48014a1f1540e2b Mon Sep 17 00:00:00 2001 From: Filipe Santiago Date: Mon, 14 Nov 2022 16:54:28 +0000 Subject: [PATCH 06/49] Rename new tickmode sync mock to z-new_tickmode_sync --- test/image/mocks/roll_mock.json | 1621 ----------------- ...ode_sync.json => z-new_tickmode_sync.json} | 0 2 files changed, 1621 deletions(-) delete mode 100644 test/image/mocks/roll_mock.json rename test/image/mocks/{new_tickmode_sync.json => z-new_tickmode_sync.json} (100%) diff --git a/test/image/mocks/roll_mock.json b/test/image/mocks/roll_mock.json deleted file mode 100644 index bceb8a6f8a0..00000000000 --- a/test/image/mocks/roll_mock.json +++ /dev/null @@ -1,1621 +0,0 @@ -{ - "data": [ - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "solid", - "shape": "spline", - "color": "#FF0000" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - ], - "y": [ - 7329.2314, - 7370.159, - 7418.1772, - 7423.114, - 7400.379, - 7368.819, - 7355.531, - 7338.7295, - 7328.453, - 7289.163, - 7273.9224, - 7267.61, - 7286.2393 - ], - "name": "B - 3", - "yaxis": "y2", - "legendgroup": "B - 3" - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "solid", - "shape": "spline", - "color": "#008CFF" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - ], - "y": [ - 7329.453, - 7370.3438, - 7418.268, - 7423.7246, - 7400.6587, - 7369.186, - 7355.7446, - 7338.8003, - 7328.5127, - 7289.2207, - 7273.879, - 7267.8364, - 7286.3647 - ], - "name": "A - 3", - "yaxis": "y2", - "legendgroup": "A - 3" - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "solid", - "shape": "spline", - "color": "#00E500" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - ], - "y": [ - 7329.1943, - 7370.121, - 7418.1143, - 7422.937, - 7400.1943, - 7368.6416, - 7355.457, - 7338.6655, - 7328.3965, - 7289.115, - 7273.6577, - 7267.5703, - 7286.2065 - ], - "name": "B - 4", - "yaxis": "y2", - "legendgroup": "B - 4" - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "solid", - "shape": "spline", - "color": "#FFA500" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - ], - "y": [ - 7329.4253, - 7370.311, - 7418.2207, - 7423.594, - 7400.5195, - 7369.057, - 7355.675, - 7338.752, - 7328.4697, - 7289.187, - 7273.6816, - 7267.807, - 7286.3403 - ], - "name": "A - 4", - "yaxis": "y2", - "legendgroup": "A - 4" - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "dot", - "shape": "spline", - "color": "#737373" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - ], - "y": [ - 255, - 260, - 255, - 240, - 225, - 220, - 215, - 215, - 217, - 220, - 225, - 232, - 240 - ], - "name": "vCar", - "yaxis": "y", - "legendgroup": "B - 3", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "dot", - "shape": "spline", - "color": "#737373" - }, - "hovertemplate": "", - "x": [ - [ - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - ], - "y": [ - 255, - 260, - 255, - 240, - 225, - 220, - 215, - 215, - 217, - 220, - 225, - 232, - 240 - ], - "name": "A - 3", - "yaxis": "y", - "legendgroup": "A - 3", - "hoverinfo": "none", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "dot", - "shape": "spline", - "color": "#737373" - }, - "hovertemplate": "", - "x": [ - [ - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - ], - "y": [ - 255, - 260, - 255, - 240, - 225, - 220, - 215, - 215, - 217, - 220, - 225, - 232, - 240 - ], - "name": "B - 4", - "yaxis": "y", - "legendgroup": "B - 4", - "hoverinfo": "none", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "dot", - "shape": "spline", - "color": "#737373" - }, - "hovertemplate": "", - "x": [ - [ - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High", - "High" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - ], - "y": [ - 255, - 260, - 255, - 240, - 225, - 220, - 215, - 215, - 217, - 220, - 225, - 232, - 240 - ], - "name": "A - 4", - "yaxis": "y", - "legendgroup": "A - 4", - "hoverinfo": "none", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "solid", - "shape": "spline", - "color": "#FF0000" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ] - ], - "y": [ - 7399.038, - 7399.7876, - 7424.6357, - 7372.926, - 7333.9478, - 7305.11, - 7321.1978, - 7333.012, - 7297.39, - 7261.06, - 7183.9854, - 7170.872, - 7154.927, - 7159.685, - 7164.351, - 7189.4263, - 7226.21, - 7248.6665 - ], - "name": "B - 3", - "yaxis": "y2", - "legendgroup": "B - 3", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "solid", - "shape": "spline", - "color": "#008CFF" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ] - ], - "y": [ - 7399.3438, - 7399.956, - 7424.694, - 7373.0015, - 7333.9214, - 7305.262, - 7321.17, - 7333.199, - 7297.318, - 7260.9863, - 7183.9565, - 7170.8364, - 7155.2705, - 7159.8203, - 7164.152, - 7189.498, - 7226.2725, - 7248.7397 - ], - "name": "A - 3", - "yaxis": "y2", - "legendgroup": "A - 3", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "solid", - "shape": "spline", - "color": "#00E500" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ] - ], - "y": [ - 7398.8027, - 7399.7617, - 7424.589, - 7372.8657, - 7333.8833, - 7305.035, - 7321.121, - 7332.934, - 7297.3887, - 7260.9907, - 7183.9653, - 7170.825, - 7154.8164, - 7159.641, - 7164.187, - 7189.389, - 7226.175, - 7248.6304 - ], - "name": "B - 4", - "yaxis": "y2", - "legendgroup": "B - 4", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "solid", - "shape": "spline", - "color": "#FFA500" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ] - ], - "y": [ - 7399.168, - 7399.9365, - 7424.659, - 7372.956, - 7333.8735, - 7305.206, - 7321.1123, - 7333.1406, - 7297.269, - 7260.9346, - 7183.9336, - 7170.8013, - 7155.188, - 7159.7876, - 7164.0176, - 7189.47, - 7226.246, - 7248.713 - ], - "name": "A - 4", - "yaxis": "y2", - "legendgroup": "A - 4", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "dot", - "shape": "spline", - "color": "#737373" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ] - ], - "y": [ - 290, - 292, - 282, - 245, - 205, - 190, - 175, - 160, - 150, - 140, - 140, - 145, - 155, - 165, - 175, - 187, - 200, - 215 - ], - "name": "vCar", - "yaxis": "y", - "legendgroup": "B - 3", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "dot", - "shape": "spline", - "color": "#737373" - }, - "hovertemplate": "", - "x": [ - [ - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ] - ], - "y": [ - 290, - 292, - 282, - 245, - 205, - 190, - 175, - 160, - 150, - 140, - 140, - 145, - 155, - 165, - 175, - 187, - 200, - 215 - ], - "name": "A - 3", - "yaxis": "y", - "legendgroup": "A - 3", - "hoverinfo": "none", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "dot", - "shape": "spline", - "color": "#737373" - }, - "hovertemplate": "", - "x": [ - [ - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ] - ], - "y": [ - 290, - 292, - 282, - 245, - 205, - 190, - 175, - 160, - 150, - 140, - 140, - 145, - 155, - 165, - 175, - 187, - 200, - 215 - ], - "name": "B - 4", - "yaxis": "y", - "legendgroup": "B - 4", - "hoverinfo": "none", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "dot", - "shape": "spline", - "color": "#737373" - }, - "hovertemplate": "", - "x": [ - [ - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium", - "Medium" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ] - ], - "y": [ - 290, - 292, - 282, - 245, - 205, - 190, - 175, - 160, - 150, - 140, - 140, - 145, - 155, - 165, - 175, - 187, - 200, - 215 - ], - "name": "A - 4", - "yaxis": "y", - "legendgroup": "A - 4", - "hoverinfo": "none", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "solid", - "shape": "spline", - "color": "#FF0000" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ] - ], - "y": [ - 7408.1074, - 7421.896, - 7411.078, - 7362.891, - 7329.4346, - 7260.8394, - 7168.693, - 7144.0864, - 7057.076, - 6959.603, - 6949.5127, - 6966.433 - ], - "name": "B - 3", - "yaxis": "y2", - "legendgroup": "B - 3", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "solid", - "shape": "spline", - "color": "#008CFF" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ] - ], - "y": [ - 7408.281, - 7422.081, - 7410.434, - 7362.949, - 7329.124, - 7260.852, - 7168.6826, - 7143.5386, - 7056.9175, - 6959.552, - 6949.5825, - 6966.547 - ], - "name": "A - 3", - "yaxis": "y2", - "legendgroup": "A - 3", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "solid", - "shape": "spline", - "color": "#00E500" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ] - ], - "y": [ - 7408.0825, - 7421.87, - 7410.7026, - 7362.8223, - 7329.1553, - 7260.794, - 7168.657, - 7143.9097, - 7057.0557, - 6959.592, - 6949.4985, - 6966.4136 - ], - "name": "B - 4", - "yaxis": "y2", - "legendgroup": "B - 4", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "solid", - "shape": "spline", - "color": "#FFA500" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ] - ], - "y": [ - 7408.262, - 7422.0615, - 7410.152, - 7362.8975, - 7328.914, - 7260.818, - 7168.6562, - 7143.409, - 7056.902, - 6959.543, - 6949.572, - 6966.532 - ], - "name": "A - 4", - "yaxis": "y2", - "legendgroup": "A - 4", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "dot", - "shape": "spline", - "color": "#737373" - }, - "hovertemplate": "%{y:.2f} ", - "x": [ - [ - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ] - ], - "y": [ - 295, - 300, - 275, - 240, - 195, - 155, - 120, - 100, - 80, - 75, - 90, - 115 - ], - "name": "vCar", - "yaxis": "y", - "legendgroup": "B - 3", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "dot", - "shape": "spline", - "color": "#737373" - }, - "hovertemplate": "", - "x": [ - [ - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ] - ], - "y": [ - 295, - 300, - 275, - 240, - 195, - 155, - 120, - 100, - 80, - 75, - 90, - 115 - ], - "name": "A - 3", - "yaxis": "y", - "legendgroup": "A - 3", - "hoverinfo": "none", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "dot", - "shape": "spline", - "color": "#737373" - }, - "hovertemplate": "", - "x": [ - [ - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ] - ], - "y": [ - 295, - 300, - 275, - 240, - 195, - 155, - 120, - 100, - 80, - 75, - 90, - 115 - ], - "name": "B - 4", - "yaxis": "y", - "legendgroup": "B - 4", - "hoverinfo": "none", - "showlegend": false - }, - { - "type": "scatter", - "mode": "lines", - "line": { - "dash": "dot", - "shape": "spline", - "color": "#737373" - }, - "hovertemplate": "", - "x": [ - [ - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low", - "Low" - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ] - ], - "y": [ - 295, - 300, - 275, - 240, - 195, - 155, - 120, - 100, - 80, - 75, - 90, - 115 - ], - "name": "A - 4", - "yaxis": "y", - "legendgroup": "A - 4", - "hoverinfo": "none", - "showlegend": false - } - ], - "layout": { - "autosize": true, - "margin": { - "t": 40 - }, - "legend": { - "x": 0.5, - "y": "auto", - "xanchor": "center", - "yanchor": "top", - "orientation": "h", - "bgcolor": "transparent", - "font": { - "size": 10 - } - }, - "hovermode": "x unified", - "title": { - "text": "Multicategory Mock with Tickmode 'sync'" - }, - "xaxis": { - "visible": false, - "range": [ - 0, - 42 - ], - "autorange": true, - "type": "multicategory" - }, - "yaxis": { - - "range": [ - 62.5, - 312.5 - ], - "anchor": "x", - "side": "right", - "type": "linear" - }, - "yaxis2": { - "range": [ - 6150, - 7451.09375 - ], - "type": "linear", - "side": "left", - "tickmode": "sync", - "overlaying": "y" - }, - "showlegend": true - } - } - \ No newline at end of file diff --git a/test/image/mocks/new_tickmode_sync.json b/test/image/mocks/z-new_tickmode_sync.json similarity index 100% rename from test/image/mocks/new_tickmode_sync.json rename to test/image/mocks/z-new_tickmode_sync.json From 4ab851ecb8b7554fe57548c967b7a16c514c5502 Mon Sep 17 00:00:00 2001 From: Filipe Santiago Date: Mon, 14 Nov 2022 19:59:38 +0000 Subject: [PATCH 07/49] Add baseline image for new tickmode sync mock --- test/image/baselines/z-new_tickmode_sync.png | Bin 0 -> 37255 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/image/baselines/z-new_tickmode_sync.png diff --git a/test/image/baselines/z-new_tickmode_sync.png b/test/image/baselines/z-new_tickmode_sync.png new file mode 100644 index 0000000000000000000000000000000000000000..bebf25f31f62ba067763417316d66e4a214149f6 GIT binary patch literal 37255 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 Date: Mon, 14 Nov 2022 20:20:08 +0000 Subject: [PATCH 08/49] Fix mock-validation tests for z-new_tickmode_sync mock --- test/image/mocks/z-new_tickmode_sync.json | 116 ++++++++++++++-------- 1 file changed, 76 insertions(+), 40 deletions(-) diff --git a/test/image/mocks/z-new_tickmode_sync.json b/test/image/mocks/z-new_tickmode_sync.json index 290c0fb7981..fabfe8ed134 100644 --- a/test/image/mocks/z-new_tickmode_sync.json +++ b/test/image/mocks/z-new_tickmode_sync.json @@ -1,42 +1,78 @@ { - "data": [ - { - "name": "Apples", - "type": "bar", - "x": ["Jan", "Feb", "Mar", "Apr", "May"], - "y": [232, 2506, 470, 1864, -190] - }, - { - "name": "Oranges", - "type": "line", - "x": ["Jan", "Feb", "Mar", "Apr", "May"], - "y": [-0.8, 0.09, 0.01, 0.13, 0.42], - "yaxis": "y2" - } - ], - "layout": { - "margin": { - "t": 40, "r": 70, "b": 40, "l": 70 - }, - "width": 700, - "legend": { - "orientation": "h", - "x": 0.6, - "y": 1.1 - }, - "yaxis": { - "title": "Apples", - "side": "left", - "range": [0, 2506] - }, - "yaxis2": { - "title": "Oranges", - "side": "right", - "range": [0, 0.42], - "overlaying": "y", - "tickmode": "sync", - "zeroline": false + "data": [ + { + "name": "Apples", + "type": "bar", + "x": [ + "Jan", + "Feb", + "Mar", + "Apr", + "May" + ], + "y": [ + 232, + 2506, + 470, + 1864, + -190 + ] + }, + { + "name": "Oranges", + "type": "scatter", + "x": [ + "Jan", + "Feb", + "Mar", + "Apr", + "May" + ], + "y": [ + -0.8, + 0.09, + 0.01, + 0.13, + 0.42 + ], + "yaxis": "y2" } - } - } - \ No newline at end of file + ], + "layout": { + "margin": { + "t": 40, + "r": 70, + "b": 40, + "l": 70 + }, + "width": 700, + "legend": { + "orientation": "h", + "x": 0.6, + "y": 1.1 + }, + "yaxis": { + "title": { + "text": "Apples" + }, + "side": "left", + "range": [ + 0, + 2506 + ] + }, + "yaxis2": { + "title": { + "text": "Oranges" + }, + "side": "right", + "range": [ + 0, + 0.42 + ], + "overlaying": "y", + "tickmode": "sync", + "zeroline": false + } + } +} From e62be46b849270c290918b4cf05d89adf635eb58 Mon Sep 17 00:00:00 2001 From: Santiago Date: Sat, 26 Nov 2022 21:59:49 +0000 Subject: [PATCH 09/49] Remove unused tickmode sync mode to some plot types --- src/components/colorbar/attributes.js | 14 +- src/plots/cartesian/layout_attributes.js | 4 +- src/plots/gl3d/layout/axis_attributes.js | 14 +- src/plots/polar/layout_attributes.js | 14 +- src/plots/ternary/layout_attributes.js | 14 +- src/traces/indicator/attributes.js | 14 +- test/plot-schema.json | 238 ++++++++++++++++++++++- 7 files changed, 302 insertions(+), 10 deletions(-) diff --git a/src/components/colorbar/attributes.js b/src/components/colorbar/attributes.js index 0c1563bbacc..3ecbc6b28a1 100644 --- a/src/components/colorbar/attributes.js +++ b/src/components/colorbar/attributes.js @@ -129,7 +129,19 @@ module.exports = overrideAll({ description: 'Sets the color of padded area.' }, // tick and title properties named and function exactly as in axes - tickmode: axesAttrs.tickmode, + tickmode: extendFlat({}, axesAttrs.tickmode, { + dflt: ['auto', 'linear', 'array'], + description: [ + 'Sets the tick mode for this axis.', + 'If *auto*, the number of ticks is set via `nticks`.', + 'If *linear*, the placement of the ticks is determined by', + 'a starting position `tick0` and a tick step `dtick`', + '(*linear* is the default value if `tick0` and `dtick` are provided).', + 'If *array*, the placement of the ticks is set via `tickvals`', + 'and the tick text is `ticktext`.', + '(*array* is the default value if `tickvals` is provided).' + ].join(' ') + }), nticks: axesAttrs.nticks, tick0: axesAttrs.tick0, dtick: axesAttrs.dtick, diff --git a/src/plots/cartesian/layout_attributes.js b/src/plots/cartesian/layout_attributes.js index f9f3b934d16..2a80ffffc4c 100644 --- a/src/plots/cartesian/layout_attributes.js +++ b/src/plots/cartesian/layout_attributes.js @@ -25,7 +25,9 @@ var tickmode = { '(*linear* is the default value if `tick0` and `dtick` are provided).', 'If *array*, the placement of the ticks is set via `tickvals`', 'and the tick text is `ticktext`.', - '(*array* is the default value if `tickvals` is provided).' + '(*array* is the default value if `tickvals` is provided).', + 'If *sync*, the number of ticks will sync with the overlayed axis', + 'set by `overlaying` property.' ].join(' ') }; diff --git a/src/plots/gl3d/layout/axis_attributes.js b/src/plots/gl3d/layout/axis_attributes.js index 64520c93dad..4069ba9c7da 100644 --- a/src/plots/gl3d/layout/axis_attributes.js +++ b/src/plots/gl3d/layout/axis_attributes.js @@ -74,7 +74,19 @@ module.exports = overrideAll({ anim: false }), // ticks - tickmode: axesAttrs.tickmode, + tickmode: extendFlat({}, axesAttrs.tickmode, { + dflt: ['auto', 'linear', 'array'], + description: [ + 'Sets the tick mode for this axis.', + 'If *auto*, the number of ticks is set via `nticks`.', + 'If *linear*, the placement of the ticks is determined by', + 'a starting position `tick0` and a tick step `dtick`', + '(*linear* is the default value if `tick0` and `dtick` are provided).', + 'If *array*, the placement of the ticks is set via `tickvals`', + 'and the tick text is `ticktext`.', + '(*array* is the default value if `tickvals` is provided).' + ].join(' ') + }), nticks: axesAttrs.nticks, tick0: axesAttrs.tick0, dtick: axesAttrs.dtick, diff --git a/src/plots/polar/layout_attributes.js b/src/plots/polar/layout_attributes.js index 09c93888c97..eaba2412749 100644 --- a/src/plots/polar/layout_attributes.js +++ b/src/plots/polar/layout_attributes.js @@ -23,7 +23,19 @@ var axisLineGridAttr = overrideAll({ }, 'plot', 'from-root'); var axisTickAttrs = overrideAll({ - tickmode: axesAttrs.tickmode, + tickmode: extendFlat({}, axesAttrs.tickmode, { + dflt: ['auto', 'linear', 'array'], + description: [ + 'Sets the tick mode for this axis.', + 'If *auto*, the number of ticks is set via `nticks`.', + 'If *linear*, the placement of the ticks is determined by', + 'a starting position `tick0` and a tick step `dtick`', + '(*linear* is the default value if `tick0` and `dtick` are provided).', + 'If *array*, the placement of the ticks is set via `tickvals`', + 'and the tick text is `ticktext`.', + '(*array* is the default value if `tickvals` is provided).' + ].join(' ') + }), nticks: axesAttrs.nticks, tick0: axesAttrs.tick0, dtick: axesAttrs.dtick, diff --git a/src/plots/ternary/layout_attributes.js b/src/plots/ternary/layout_attributes.js index 84d4cd5d936..481371bd7eb 100644 --- a/src/plots/ternary/layout_attributes.js +++ b/src/plots/ternary/layout_attributes.js @@ -15,7 +15,19 @@ var ternaryAxesAttrs = { }, color: axesAttrs.color, // ticks - tickmode: axesAttrs.tickmode, + tickmode: extendFlat({}, axesAttrs.tickmode, { + dflt: ['auto', 'linear', 'array'], + description: [ + 'Sets the tick mode for this axis.', + 'If *auto*, the number of ticks is set via `nticks`.', + 'If *linear*, the placement of the ticks is determined by', + 'a starting position `tick0` and a tick step `dtick`', + '(*linear* is the default value if `tick0` and `dtick` are provided).', + 'If *array*, the placement of the ticks is set via `tickvals`', + 'and the tick text is `ticktext`.', + '(*array* is the default value if `tickvals` is provided).' + ].join(' ') + }), nticks: extendFlat({}, axesAttrs.nticks, {dflt: 6, min: 1}), tick0: axesAttrs.tick0, dtick: axesAttrs.dtick, diff --git a/src/traces/indicator/attributes.js b/src/traces/indicator/attributes.js index eee26149754..a8162351c00 100644 --- a/src/traces/indicator/attributes.js +++ b/src/traces/indicator/attributes.js @@ -307,7 +307,19 @@ module.exports = { dflt: true }), // tick and title properties named and function exactly as in axes - tickmode: axesAttrs.tickmode, + tickmode: extendFlat({}, axesAttrs.tickmode, { + dflt: ['auto', 'linear', 'array'], + description: [ + 'Sets the tick mode for this axis.', + 'If *auto*, the number of ticks is set via `nticks`.', + 'If *linear*, the placement of the ticks is determined by', + 'a starting position `tick0` and a tick step `dtick`', + '(*linear* is the default value if `tick0` and `dtick` are provided).', + 'If *array*, the placement of the ticks is set via `tickvals`', + 'and the tick text is `ticktext`.', + '(*array* is the default value if `tickvals` is provided).' + ].join(' ') + }), nticks: axesAttrs.nticks, tick0: axesAttrs.tick0, dtick: axesAttrs.dtick, diff --git a/test/plot-schema.json b/test/plot-schema.json index bd0988e549d..17e580ee737 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -1457,6 +1457,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -3983,6 +3988,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", @@ -4583,6 +4593,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", @@ -5703,6 +5718,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", @@ -6266,6 +6286,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", @@ -6829,6 +6854,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", @@ -8455,6 +8485,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", @@ -8854,6 +8889,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", @@ -9259,6 +9299,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", @@ -10287,7 +10332,7 @@ "valType": "number" }, "tickmode": { - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided). If *sync*, the number of ticks will sync with the overlayed axis set by `overlaying` property.", "editType": "ticks", "impliedEdits": {}, "valType": "enumerated", @@ -11015,7 +11060,7 @@ "valType": "number" }, "tickmode": { - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided). If *sync*, the number of ticks will sync with the overlayed axis set by `overlaying` property.", "editType": "ticks", "impliedEdits": {}, "valType": "enumerated", @@ -11540,7 +11585,7 @@ "valType": "number" }, "tickmode": { - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided). If *sync*, the number of ticks will sync with the overlayed axis set by `overlaying` property.", "editType": "ticks", "impliedEdits": {}, "valType": "enumerated", @@ -12014,7 +12059,7 @@ "valType": "number" }, "tickmode": { - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided). If *sync*, the number of ticks will sync with the overlayed axis set by `overlaying` property.", "editType": "ticks", "impliedEdits": {}, "valType": "enumerated", @@ -13080,6 +13125,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -14602,6 +14652,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -18827,6 +18882,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -19827,6 +19887,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -20856,6 +20921,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -21903,6 +21973,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -23291,6 +23366,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -24250,6 +24330,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -25558,6 +25643,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -27275,6 +27365,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -28446,6 +28541,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", @@ -29988,6 +30088,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -31173,6 +31278,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -32316,6 +32426,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -33972,6 +34087,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -35375,6 +35495,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", @@ -36287,6 +36412,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", @@ -37510,6 +37640,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -39499,6 +39634,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -40463,6 +40603,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -44025,6 +44170,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -46254,6 +46404,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", @@ -46844,6 +46999,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", @@ -48328,6 +48488,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -50218,6 +50383,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", @@ -52243,6 +52413,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", @@ -54230,6 +54405,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", @@ -55441,6 +55621,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -57323,6 +57508,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", @@ -59192,6 +59382,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -61100,6 +61295,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -62939,6 +63139,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -64351,6 +64556,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -65817,6 +66027,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -66691,6 +66906,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", @@ -69052,6 +69272,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", @@ -71385,6 +71610,11 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", + "dflt": [ + "auto", + "linear", + "array" + ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", From 93f4a8ee5a2bedcb08dfe499cdadf2f9466a7ea3 Mon Sep 17 00:00:00 2001 From: Filipe Santiago Date: Thu, 1 Dec 2022 08:47:34 +0000 Subject: [PATCH 10/49] Moves tickmode sync to use last position on the grid --- src/plots/cartesian/axes.js | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 45ab4eb318a..b20209d4df1 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -661,29 +661,30 @@ axes.prepTicks = function(ax, opts) { if(ax.tickmode === 'sync') { var baseAxis = ax._mainAxis; - // get range min and max to find range delta of axis 1 - var minValBaseAxis = Math.min(baseAxis.range[0], baseAxis.range[1]); - var maxValBaseAxis = Math.max(baseAxis.range[0], baseAxis.range[1]); - var rangeDeltaBaseAxis = maxValBaseAxis - minValBaseAxis; - // get range min and max to find range delta of axis 2 var minValAxis = Math.min(ax.range[0], ax.range[1]); var maxValAxis = Math.max(ax.range[0], ax.range[1]); var rangeDeltaCurrentAxis = maxValAxis - minValAxis; - // set second axis' dtick value to be based off of same ratio as the first axis - var dtickRatio = rangeDeltaBaseAxis / baseAxis.dtick; - ax.dtick = rangeDeltaCurrentAxis / dtickRatio; - // validate that the axis has values before we try to use them for tick0 calculation if(baseAxis && baseAxis._vals.length > 0) { - // get position of first axis' starting tick + var _len = baseAxis._length - 1; + + // get position of first & last axis' starting ticks var firstTickPosition = baseAxis.l2p(baseAxis._vals[0].x); - var firstTickPercentage = firstTickPosition / baseAxis._length; + var firstTickPercentage = firstTickPosition / _len; + firstTickPercentage = Math.round(firstTickPercentage * 100) / 100; + + var lastTickPosition = baseAxis.l2p(baseAxis._vals[baseAxis._vals.length - 1].x); + var lastTickPercentage = lastTickPosition / _len; + lastTickPercentage = Math.round(lastTickPercentage * 100) / 100; // set current axis to have same starting tick position - var currentAxisOffsetVal = rangeDeltaCurrentAxis * (1 - firstTickPercentage); - ax.tick0 = currentAxisOffsetVal + minValAxis; + var firstOffset = rangeDeltaCurrentAxis * (1 - firstTickPercentage); + ax.tick0 = firstOffset + minValAxis; + + var lastOffset = rangeDeltaCurrentAxis * (1 - lastTickPercentage); + ax.dtick = (lastOffset - firstOffset) / (baseAxis._vals.length - 1); } } else if(ax.tickmode === 'auto' || !ax.dtick) { // calculate max number of (auto) ticks to display based on plot size var nt = ax.nticks; From 22c703a8d52a87f1237c2231f78e68add174bd0d Mon Sep 17 00:00:00 2001 From: Filipe Santiago Date: Thu, 1 Dec 2022 08:48:04 +0000 Subject: [PATCH 11/49] Removed tickmode sync from non-relevant plot types --- src/components/colorbar/attributes.js | 2 +- src/plots/gl3d/layout/axis_attributes.js | 2 +- src/plots/polar/layout_attributes.js | 2 +- src/plots/ternary/layout_attributes.js | 2 +- src/traces/indicator/attributes.js | 2 +- test/plot-schema.json | 368 +++-------------------- 6 files changed, 51 insertions(+), 327 deletions(-) diff --git a/src/components/colorbar/attributes.js b/src/components/colorbar/attributes.js index 3ecbc6b28a1..a2e0408d208 100644 --- a/src/components/colorbar/attributes.js +++ b/src/components/colorbar/attributes.js @@ -130,7 +130,7 @@ module.exports = overrideAll({ }, // tick and title properties named and function exactly as in axes tickmode: extendFlat({}, axesAttrs.tickmode, { - dflt: ['auto', 'linear', 'array'], + values: ['auto', 'linear', 'array'], description: [ 'Sets the tick mode for this axis.', 'If *auto*, the number of ticks is set via `nticks`.', diff --git a/src/plots/gl3d/layout/axis_attributes.js b/src/plots/gl3d/layout/axis_attributes.js index 4069ba9c7da..ae3805a3f44 100644 --- a/src/plots/gl3d/layout/axis_attributes.js +++ b/src/plots/gl3d/layout/axis_attributes.js @@ -75,7 +75,7 @@ module.exports = overrideAll({ }), // ticks tickmode: extendFlat({}, axesAttrs.tickmode, { - dflt: ['auto', 'linear', 'array'], + values: ['auto', 'linear', 'array'], description: [ 'Sets the tick mode for this axis.', 'If *auto*, the number of ticks is set via `nticks`.', diff --git a/src/plots/polar/layout_attributes.js b/src/plots/polar/layout_attributes.js index eaba2412749..54f1e4888e6 100644 --- a/src/plots/polar/layout_attributes.js +++ b/src/plots/polar/layout_attributes.js @@ -24,7 +24,7 @@ var axisLineGridAttr = overrideAll({ var axisTickAttrs = overrideAll({ tickmode: extendFlat({}, axesAttrs.tickmode, { - dflt: ['auto', 'linear', 'array'], + values: ['auto', 'linear', 'array'], description: [ 'Sets the tick mode for this axis.', 'If *auto*, the number of ticks is set via `nticks`.', diff --git a/src/plots/ternary/layout_attributes.js b/src/plots/ternary/layout_attributes.js index 481371bd7eb..0664cf148dd 100644 --- a/src/plots/ternary/layout_attributes.js +++ b/src/plots/ternary/layout_attributes.js @@ -16,7 +16,7 @@ var ternaryAxesAttrs = { color: axesAttrs.color, // ticks tickmode: extendFlat({}, axesAttrs.tickmode, { - dflt: ['auto', 'linear', 'array'], + values: ['auto', 'linear', 'array'], description: [ 'Sets the tick mode for this axis.', 'If *auto*, the number of ticks is set via `nticks`.', diff --git a/src/traces/indicator/attributes.js b/src/traces/indicator/attributes.js index a8162351c00..013e88a2916 100644 --- a/src/traces/indicator/attributes.js +++ b/src/traces/indicator/attributes.js @@ -308,7 +308,7 @@ module.exports = { }), // tick and title properties named and function exactly as in axes tickmode: extendFlat({}, axesAttrs.tickmode, { - dflt: ['auto', 'linear', 'array'], + values: ['auto', 'linear', 'array'], description: [ 'Sets the tick mode for this axis.', 'If *auto*, the number of ticks is set via `nticks`.', diff --git a/test/plot-schema.json b/test/plot-schema.json index 17e580ee737..0f44f682f35 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -1457,19 +1457,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -3988,19 +3982,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -4593,19 +4581,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -5718,19 +5700,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -6286,19 +6262,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -6854,19 +6824,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -8485,19 +8449,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -8889,19 +8847,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -9299,19 +9251,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -13125,19 +13071,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -14652,19 +14592,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -18882,19 +18816,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -19887,19 +19815,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -20921,19 +20843,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -21973,19 +21889,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -23366,19 +23276,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -24330,19 +24234,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -25643,19 +25541,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -27365,19 +27257,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -28541,19 +28427,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -30088,19 +29968,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -31278,19 +31152,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -32426,19 +32294,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -34087,19 +33949,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -35495,19 +35351,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "plot", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -36412,19 +36262,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -37640,19 +37484,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -39634,19 +39472,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -40603,19 +40435,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -44170,19 +43996,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -46404,19 +46224,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -46999,19 +46813,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -48488,19 +48296,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -50383,19 +50185,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -52413,19 +52209,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -54405,19 +54195,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -55621,19 +55405,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -57508,19 +57286,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -59382,19 +59154,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -61295,19 +61061,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -63139,19 +62899,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -64556,19 +64310,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -66027,19 +65775,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -66906,19 +66648,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -69272,19 +69008,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { @@ -71610,19 +71340,13 @@ }, "tickmode": { "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", - "dflt": [ - "auto", - "linear", - "array" - ], "editType": "calc", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "tickprefix": { From 3fb69961647c31d7f1ac86f75b1d8b3dcbf75633 Mon Sep 17 00:00:00 2001 From: Filipe Santiago Date: Thu, 1 Dec 2022 16:03:23 +0000 Subject: [PATCH 12/49] Updated tickmode test image baseline --- test/image/baselines/z-new_tickmode_sync.png | Bin 37255 -> 36797 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/z-new_tickmode_sync.png b/test/image/baselines/z-new_tickmode_sync.png index bebf25f31f62ba067763417316d66e4a214149f6..43d24189dd55e8a794a7c8460ff16212e0f8d30d 100644 GIT binary patch literal 36797 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 UTU3lqK>`1?)bv#Al0cin2*_22rv1ydr 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 Date: Thu, 1 Dec 2022 21:36:49 +0000 Subject: [PATCH 13/49] Removed grid from the overlayed axis --- src/plots/cartesian/axes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index b20209d4df1..9126ad1b4d7 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -3219,7 +3219,7 @@ axes.drawGrid = function(gd, ax, opts) { var hasMinor = ax.minor && ax.minor.showgrid; var minorVals = hasMinor ? opts.vals.filter(function(d) { return d.minor; }) : []; - var majorVals = ax.showgrid ? opts.vals.filter(function(d) { return !d.minor; }) : []; + var majorVals = ax.showgrid && ax.tickmode !== 'sync' ? opts.vals.filter(function(d) { return !d.minor; }) : []; var counterAx = opts.counterAxis; if(counterAx && axes.shouldShowZeroLine(gd, ax, counterAx)) { From 3f5e11814febdf3794fc8bb06cab21bdf656208b Mon Sep 17 00:00:00 2001 From: Filipe Santiago Date: Fri, 2 Dec 2022 08:29:42 +0000 Subject: [PATCH 14/49] Fixed baseline image for tickmode sync --- test/image/baselines/z-new_tickmode_sync.png | Bin 36797 -> 36747 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/z-new_tickmode_sync.png b/test/image/baselines/z-new_tickmode_sync.png index 43d24189dd55e8a794a7c8460ff16212e0f8d30d..b8fb22a29087f092654d575f58524999ed123faa 100644 GIT binary patch literal 36747 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 literal 36797 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 UTU3lqK>`1?)bv#Al Date: Fri, 2 Dec 2022 08:46:57 +0000 Subject: [PATCH 15/49] Trigger Build From b03faea4bb29f1527e8c31e50a9bf253ed629902 Mon Sep 17 00:00:00 2001 From: Santiago Date: Sun, 4 Dec 2022 12:29:51 +0000 Subject: [PATCH 16/49] Moved tickmode sync logic to syncTicks --- src/plots/cartesian/axes.js | 87 ++++++++++++++++++++++++------------- 1 file changed, 56 insertions(+), 31 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 9126ad1b4d7..a7653ad385c 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -657,36 +657,8 @@ function isClose(a, b) { axes.prepTicks = function(ax, opts) { var rng = Lib.simpleMap(ax.range, ax.r2l, undefined, undefined, opts); - // sync ticks with the overlaying defined axis - if(ax.tickmode === 'sync') { - var baseAxis = ax._mainAxis; - - // get range min and max to find range delta of axis 2 - var minValAxis = Math.min(ax.range[0], ax.range[1]); - var maxValAxis = Math.max(ax.range[0], ax.range[1]); - var rangeDeltaCurrentAxis = maxValAxis - minValAxis; - - // validate that the axis has values before we try to use them for tick0 calculation - if(baseAxis && baseAxis._vals.length > 0) { - var _len = baseAxis._length - 1; - - // get position of first & last axis' starting ticks - var firstTickPosition = baseAxis.l2p(baseAxis._vals[0].x); - var firstTickPercentage = firstTickPosition / _len; - firstTickPercentage = Math.round(firstTickPercentage * 100) / 100; - - var lastTickPosition = baseAxis.l2p(baseAxis._vals[baseAxis._vals.length - 1].x); - var lastTickPercentage = lastTickPosition / _len; - lastTickPercentage = Math.round(lastTickPercentage * 100) / 100; - - // set current axis to have same starting tick position - var firstOffset = rangeDeltaCurrentAxis * (1 - firstTickPercentage); - ax.tick0 = firstOffset + minValAxis; - - var lastOffset = rangeDeltaCurrentAxis * (1 - lastTickPercentage); - ax.dtick = (lastOffset - firstOffset) / (baseAxis._vals.length - 1); - } - } else if(ax.tickmode === 'auto' || !ax.dtick) { // calculate max number of (auto) ticks to display based on plot size + // calculate max number of (auto) ticks to display based on plot size + if(ax.tickmode === 'auto' || !ax.dtick) { var nt = ax.nticks; var minPx; @@ -978,6 +950,17 @@ axes.calcTicks = function calcTicks(ax, opts) { } continue; } + // fill tickVals based on overlaying axis + if(mockAx.tickmode === 'sync') { + if(major) { + tickVals = []; + ticksOut = syncTicks(ax); + } else { + minorTickVals = []; + minorTicks = syncTicks(ax); + } + continue; + } // add a tiny bit so we get ticks which may have rounded out var exRng = expandRange(rng); @@ -1231,6 +1214,48 @@ axes.calcTicks = function calcTicks(ax, opts) { return ticksOut; }; +function syncTicks(ax) { + var rng = Lib.simpleMap(ax.range, ax.r2l); + var exRng = expandRange(rng); + var tickMin = Math.min(exRng[0], exRng[1]); + var tickMax = Math.max(exRng[0], exRng[1]); + + // get the overlaying axis + var baseAxis = ax._mainAxis; + + var ticksOut = []; + if(baseAxis && baseAxis._vals.length > 0) { + for(var isMinor = 0; isMinor <= 1; isMinor++) { + if(isMinor && !ax.minor) continue; + + for(var i = 0; i < baseAxis._vals.length; i++) { + // get the position of the every tick + var pos = baseAxis.l2p(baseAxis._vals[i].x); + // get the tick for the current axis based on position + var vali = ax.p2l(pos); + if(vali > tickMin && vali < tickMax) { + var obj = axes.tickText(ax, vali); + + if(isMinor) { + obj.minor = true; + obj.text = ''; + } + + ticksOut.push(obj); + } + } + } + } + + if(ax.rangebreaks) { + // remove ticks falling inside rangebreaks + ticksOut = ticksOut.filter(function(d) { + return ax.maskBreaks(d.x) !== BADNUM; + }); + } + return ticksOut; +} + function arrayTicks(ax) { var rng = Lib.simpleMap(ax.range, ax.r2l); var exRng = expandRange(rng); @@ -3219,7 +3244,7 @@ axes.drawGrid = function(gd, ax, opts) { var hasMinor = ax.minor && ax.minor.showgrid; var minorVals = hasMinor ? opts.vals.filter(function(d) { return d.minor; }) : []; - var majorVals = ax.showgrid && ax.tickmode !== 'sync' ? opts.vals.filter(function(d) { return !d.minor; }) : []; + var majorVals = ax.showgrid ? opts.vals.filter(function(d) { return !d.minor; }) : []; var counterAx = opts.counterAxis; if(counterAx && axes.shouldShowZeroLine(gd, ax, counterAx)) { From b5e957b66196e6b3f85202d3f0ee7a955c2e6310 Mon Sep 17 00:00:00 2001 From: Santiago Date: Sun, 4 Dec 2022 13:07:54 +0000 Subject: [PATCH 17/49] Updated baseline image for z-new-tickmode-sync mock --- test/image/baselines/z-new_tickmode_sync.png | Bin 36747 -> 37255 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/z-new_tickmode_sync.png b/test/image/baselines/z-new_tickmode_sync.png index b8fb22a29087f092654d575f58524999ed123faa..bebf25f31f62ba067763417316d66e4a214149f6 100644 GIT binary patch literal 37255 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 From 6fd182cae7bbf982cad89694c503fe8b115bf942 Mon Sep 17 00:00:00 2001 From: Santiago Date: Wed, 14 Dec 2022 20:09:25 +0000 Subject: [PATCH 18/49] Fix minor ticks for tickmode sync --- src/plots/cartesian/axes.js | 193 ++++++++++------------ test/image/mocks/z-new_tickmode_sync.json | 4 +- 2 files changed, 93 insertions(+), 104 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index a7653ad385c..fa9936d89cc 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -250,16 +250,16 @@ var getDataConversions = axes.getDataConversions = function(gd, trace, target, t // if 'target' has corresponding axis // -> use setConvert method - if(ax) return {d2c: ax.d2c, c2d: ax.c2d}; + if(ax) return { d2c: ax.d2c, c2d: ax.c2d }; // special case for 'ids' // -> cast to String - if(d2cTarget === 'ids') return {d2c: toString, c2d: toString}; + if(d2cTarget === 'ids') return { d2c: toString, c2d: toString }; // otherwise (e.g. numeric-array of 'marker.color' or 'marker.size') // -> cast to Number - return {d2c: toNum, c2d: toNum}; + return { d2c: toNum, c2d: toNum }; }; function toNum(v) { return +v; } @@ -297,8 +297,8 @@ axes.minDtick = function(ax, newDiff, newFirst, allow) { // (within rounding err) // and forceTick0 can be shifted to newFirst - (((newFirst - ax._forceTick0) / newDiff % 1) + - 1.000001) % 1 < 2e-6) { + (((newFirst - ax._forceTick0) / newDiff % 1) + + 1.000001) % 1 < 2e-6) { ax._minDtick = newDiff; ax._forceTick0 = newFirst; } else if((newDiff / ax._minDtick + 1e-6) % 1 > 2e-6 || @@ -306,8 +306,8 @@ axes.minDtick = function(ax, newDiff, newFirst, allow) { // newFirst can be shifted to forceTick0) then do nothing - same // forcing stands. Otherwise, cancel forced minimum - (((newFirst - ax._forceTick0) / ax._minDtick % 1) + - 1.000001) % 1 > 2e-6) { + (((newFirst - ax._forceTick0) / ax._minDtick % 1) + + 1.000001) % 1 > 2e-6) { ax._minDtick = 0; } } @@ -423,7 +423,7 @@ axes.autoBin = function(data, ax, nbins, is2d, calendar, size) { var finalSize = dummyAx.dtick; var binStart = axes.tickIncrement( - axes.tickFirst(dummyAx), finalSize, 'reverse', calendar); + axes.tickFirst(dummyAx), finalSize, 'reverse', calendar); var binEnd, bincount; // check for too many data points right at the edges of bins @@ -501,7 +501,7 @@ function autoShiftNumericBins(binStart, data, ax, dataMin, dataMax) { } } else if(midcount < dataCount * 0.1) { if(edgecount > dataCount * 0.3 || - nearEdge(dataMin) || nearEdge(dataMax)) { + nearEdge(dataMin) || nearEdge(dataMax)) { // lots of points at the edge, not many in the middle // shift half a bin var binshift = ax.dtick / 2; @@ -952,13 +952,8 @@ axes.calcTicks = function calcTicks(ax, opts) { } // fill tickVals based on overlaying axis if(mockAx.tickmode === 'sync') { - if(major) { - tickVals = []; - ticksOut = syncTicks(ax); - } else { - minorTickVals = []; - minorTicks = syncTicks(ax); - } + tickVals = []; + ticksOut = syncTicks(ax); continue; } @@ -1215,40 +1210,32 @@ axes.calcTicks = function calcTicks(ax, opts) { }; function syncTicks(ax) { - var rng = Lib.simpleMap(ax.range, ax.r2l); - var exRng = expandRange(rng); - var tickMin = Math.min(exRng[0], exRng[1]); - var tickMax = Math.max(exRng[0], exRng[1]); - // get the overlaying axis var baseAxis = ax._mainAxis; var ticksOut = []; - if(baseAxis && baseAxis._vals.length > 0) { - for(var isMinor = 0; isMinor <= 1; isMinor++) { - if(isMinor && !ax.minor) continue; - - for(var i = 0; i < baseAxis._vals.length; i++) { - // get the position of the every tick - var pos = baseAxis.l2p(baseAxis._vals[i].x); - // get the tick for the current axis based on position - var vali = ax.p2l(pos); - if(vali > tickMin && vali < tickMax) { - var obj = axes.tickText(ax, vali); - - if(isMinor) { - obj.minor = true; - obj.text = ''; - } + if(baseAxis && baseAxis._vals) { + for(var i = 0; i < baseAxis._vals.length; i++) { + // get the position of the every tick + var pos = baseAxis.l2p(baseAxis._vals[i].x); - ticksOut.push(obj); - } + // get the tick for the current axis based on position + var vali = ax.p2l(pos); + + var obj = axes.tickText(ax, vali); + + // assign minor ticks + if(baseAxis._vals[i].minor) { + obj.minor = true; + obj.text = ''; } + + ticksOut.push(obj); } } if(ax.rangebreaks) { - // remove ticks falling inside rangebreaks + // remove ticks falling inside rangebreaks ticksOut = ticksOut.filter(function(d) { return ax.maskBreaks(d.x) !== BADNUM; }); @@ -1289,8 +1276,8 @@ function arrayTicks(ax) { var vali = tickVal2l(vals[i]); if(vali > tickMin && vali < tickMax) { var obj = text[i] === undefined ? - axes.tickText(ax, vali) : - tickTextObj(ax, vali, String(text[i])); + axes.tickText(ax, vali) : + tickTextObj(ax, vali, String(text[i])); if(isMinor) { obj.minor = true; @@ -1696,7 +1683,7 @@ axes.tickText = function(ax, x, hover, noSuffixPrefix) { * it's different from the first value. */ axes.hoverLabelText = function(ax, values, hoverformat) { - if(hoverformat) ax = Lib.extendFlat({}, ax, {hoverformat: hoverformat}); + if(hoverformat) ax = Lib.extendFlat({}, ax, { hoverformat: hoverformat }); var val = Array.isArray(values) ? values[0] : values; var val2 = Array.isArray(values) ? values[1] : undefined; @@ -1743,7 +1730,7 @@ function formatDate(ax, out, hover, extraPrecision) { // second or sub-second precision: extra always shows max digits. // for other fields, extra precision just adds one field. if(isNumeric(tr)) tr = 4; - else tr = {y: 'm', m: 'd', d: 'M', M: 'S', S: 4}[tr]; + else tr = { y: 'm', m: 'd', d: 'M', M: 'S', S: 4 }[tr]; } var dateStr = Lib.formatDate(out.x, fmt, tr, ax._dateFormat, ax.calendar, ax._extraFormat); @@ -2117,11 +2104,11 @@ axes.getTickFormat = function(ax) { } function isProperStop(dtick, range, convert) { - var convertFn = convert || function(x) { return x;}; + var convertFn = convert || function(x) { return x; }; var leftDtick = range[0]; var rightDtick = range[1]; return ((!leftDtick && typeof leftDtick !== 'number') || convertFn(leftDtick) <= convertFn(dtick)) && - ((!rightDtick && typeof rightDtick !== 'number') || convertFn(rightDtick) >= convertFn(dtick)); + ((!rightDtick && typeof rightDtick !== 'number') || convertFn(rightDtick) >= convertFn(dtick)); } function isProperLogStop(dtick, range) { @@ -2210,18 +2197,18 @@ axes.makeClipPaths = function(gd) { // for more info: https://github.com/plotly/plotly.js/issues/2595 if(fullLayout._hasOnlyLargeSploms) return; - var fullWidth = {_offset: 0, _length: fullLayout.width, _id: ''}; - var fullHeight = {_offset: 0, _length: fullLayout.height, _id: ''}; + var fullWidth = { _offset: 0, _length: fullLayout.width, _id: '' }; + var fullHeight = { _offset: 0, _length: fullLayout.height, _id: '' }; var xaList = axes.list(gd, 'x', true); var yaList = axes.list(gd, 'y', true); var clipList = []; var i, j; for(i = 0; i < xaList.length; i++) { - clipList.push({x: xaList[i], y: fullHeight}); + clipList.push({ x: xaList[i], y: fullHeight }); for(j = 0; j < yaList.length; j++) { - if(i === 0) clipList.push({x: fullWidth, y: yaList[j]}); - clipList.push({x: xaList[i], y: yaList[j]}); + if(i === 0) clipList.push({ x: fullWidth, y: yaList[j] }); + clipList.push({ x: xaList[i], y: yaList[j] }); } } @@ -2234,7 +2221,7 @@ axes.makeClipPaths = function(gd) { axClips.enter().append('clipPath') .classed('axesclip', true) .attr('id', function(d) { return 'clip' + fullLayout._uid + d.x._id + d.y._id; }) - .append('rect'); + .append('rect'); axClips.exit().remove(); @@ -2554,10 +2541,10 @@ axes.drawOne = function(gd, ax, opts) { }); if(ax.type === 'multicategory') { - var pad = {x: 2, y: 10}[axLetter]; + var pad = { x: 2, y: 10 }[axLetter]; seq.push(function() { - var bboxKey = {x: 'height', y: 'width'}[axLetter]; + var bboxKey = { x: 'height', y: 'width' }[axLetter]; var standoff = getLabelLevelBbox()[bboxKey] + pad + (ax._tickAngles[axId + 'tick'] ? ax.tickfont.size * LINE_SPACING : 0); @@ -2613,7 +2600,7 @@ axes.drawOne = function(gd, ax, opts) { } if(ax.automargin) { - push = {x: 0, y: 0, r: 0, l: 0, t: 0, b: 0}; + push = { x: 0, y: 0, r: 0, l: 0, t: 0, b: 0 }; var domainIndices = [0, 1]; if(axLetter === 'x') { @@ -2667,7 +2654,7 @@ axes.drawOne = function(gd, ax, opts) { } if(ax.mirror && ax.anchor !== 'free') { - mirrorPush = {x: 0, y: 0, r: 0, l: 0, t: 0, b: 0}; + mirrorPush = { x: 0, y: 0, r: 0, l: 0, t: 0, b: 0 }; mirrorPush[sMirror] = ax.linewidth; if(ax.mirror && ax.mirror !== true) mirrorPush[sMirror] += outsideTickLen; @@ -2708,7 +2695,7 @@ function filterPush(push, automargin) { var keepMargin = Object.keys(MARGIN_MAPPING).reduce(function(data, nextKey) { if(automargin.indexOf(nextKey) !== -1) { - MARGIN_MAPPING[nextKey].forEach(function(key) { data[key] = 1;}); + MARGIN_MAPPING[nextKey].forEach(function(key) { data[key] = 1; }); } return data; }, {}); @@ -2729,7 +2716,7 @@ function getBoundaryVals(ax, vals) { var _push = function(d, bndIndex) { var xb = d.xbnd[bndIndex]; if(xb !== null) { - out.push(Lib.extendFlat({}, d, {x: xb})); + out.push(Lib.extendFlat({}, d, { x: xb })); } }; @@ -2774,7 +2761,7 @@ function getDividerVals(ax, vals) { var _push = function(d, bndIndex) { var xb = d.xbnd[bndIndex]; if(xb !== null) { - out.push(Lib.extendFlat({}, d, {x: xb})); + out.push(Lib.extendFlat({}, d, { x: xb })); } }; @@ -2849,7 +2836,7 @@ function calcLabelLevelBbox(ax, cls) { */ axes.getTickSigns = function(ax, minor) { var axLetter = ax._id.charAt(0); - var sideOpposite = {x: 'top', y: 'right'}[axLetter]; + var sideOpposite = { x: 'top', y: 'right' }[axLetter]; var main = ax.side === sideOpposite ? 1 : -1; var out = [-1, 1, main, -main]; // then we flip if outside XOR y axis @@ -2860,7 +2847,7 @@ axes.getTickSigns = function(ax, minor) { } // independent of `ticks`; do not flip this one if(ax.side) { - out.push({l: -1, t: -1, r: 1, b: 1}[ax.side.charAt(0)]); + out.push({ l: -1, t: -1, r: 1, b: 1 }[ax.side.charAt(0)]); } return out; }; @@ -3097,7 +3084,7 @@ axes.makeLabelFns = function(ax, shift, angle) { out.heightFn = function(d, a, h) { return (a < -60 || a > 60) ? -0.5 * h : ((ax.side === 'top') !== insideTickLabels) ? -h : - 0; + 0; }; } else if(axLetter === 'y') { endSide = @@ -3144,7 +3131,7 @@ axes.makeLabelFns = function(ax, shift, angle) { return a < -30 ? -h : a < 30 ? -0.5 * h : - 0; + 0; }; } @@ -3242,7 +3229,7 @@ axes.drawGrid = function(gd, ax, opts) { var cls = ax._id + 'grid'; - var hasMinor = ax.minor && ax.minor.showgrid; + var hasMinor = ax.minor && ax.minor.showgrid && ax.tickmode !== 'sync'; var minorVals = hasMinor ? opts.vals.filter(function(d) { return d.minor; }) : []; var majorVals = ax.showgrid ? opts.vals.filter(function(d) { return !d.minor; }) : []; @@ -3332,7 +3319,7 @@ axes.drawZeroLine = function(gd, ax, opts) { var show = axes.shouldShowZeroLine(gd, ax, opts.counterAxis); var zl = opts.layer.selectAll('path.' + cls) - .data(show ? [{x: 0, id: ax._id}] : []); + .data(show ? [{ x: 0, id: ax._id }] : []); zl.exit().remove(); @@ -3404,32 +3391,32 @@ axes.drawLabels = function(gd, ax, opts) { tickLabels.enter().append('g') .classed(cls, 1) .append('text') - // only so tex has predictable alignment that we can - // alter later - .attr('text-anchor', 'middle') - .each(function(d) { - var thisLabel = d3.select(this); - var newPromise = gd._promises.length; - - thisLabel - .call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d)) - .call(Drawing.font, d.font, d.fontSize, d.fontColor) - .text(d.text) - .call(svgTextUtils.convertToTspans, gd); - - if(gd._promises[newPromise]) { - // if we have an async label, we'll deal with that - // all here so take it out of gd._promises and - // instead position the label and promise this in - // labelsReady - labelsReady.push(gd._promises.pop().then(function() { - positionLabels(thisLabel, tickAngle); - })); - } else { - // sync label: just position it now. + // only so tex has predictable alignment that we can + // alter later + .attr('text-anchor', 'middle') + .each(function(d) { + var thisLabel = d3.select(this); + var newPromise = gd._promises.length; + + thisLabel + .call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d)) + .call(Drawing.font, d.font, d.fontSize, d.fontColor) + .text(d.text) + .call(svgTextUtils.convertToTspans, gd); + + if(gd._promises[newPromise]) { + // if we have an async label, we'll deal with that + // all here so take it out of gd._promises and + // instead position the label and promise this in + // labelsReady + labelsReady.push(gd._promises.pop().then(function() { positionLabels(thisLabel, tickAngle); - } - }); + })); + } else { + // sync label: just position it now. + positionLabels(thisLabel, tickAngle); + } + }); hideCounterAxisInsideTickLabels(ax, [TICK_TEXT]); @@ -3450,9 +3437,9 @@ axes.drawLabels = function(gd, ax, opts) { var transform = opts.transFn.call(thisLabel.node(), d) + ((isNumeric(angle) && +angle !== 0) ? - (' rotate(' + angle + ',' + labelFns.xFn(d) + ',' + - (labelFns.yFn(d) - d.fontSize / 2) + ')') : - ''); + (' rotate(' + angle + ',' + labelFns.xFn(d) + ',' + + (labelFns.yFn(d) - d.fontSize / 2) + ')') : + ''); // how much to shift a multi-line label to center it vertically. var nLines = svgTextUtils.lineCount(thisLabel); @@ -3477,7 +3464,7 @@ axes.drawLabels = function(gd, ax, opts) { } } else { var mjWidth = Drawing.bBox(mathjaxGroup.node()).width; - var mjShift = mjWidth * {end: -0.5, start: 0.5}[anchor]; + var mjShift = mjWidth * { end: -0.5, start: 0.5 }[anchor]; mathjaxGroup.attr('transform', transform + strTranslate(mjShift, 0)); } }); @@ -3931,7 +3918,7 @@ function drawTitle(gd, ax) { } else { y = ax._offset + ax._length / 2; x = (ax.side === 'right') ? pos + titleStandoff : pos - titleStandoff; - transform = {rotate: '-90', offset: 0}; + transform = { rotate: '-90', offset: 0 }; } var avoid; @@ -3961,7 +3948,7 @@ function drawTitle(gd, ax) { placeholder: fullLayout._dfltTitle[axLetter], avoid: avoid, transform: transform, - attributes: {x: x, y: y, 'text-anchor': 'middle'} + attributes: { x: x, y: y, 'text-anchor': 'middle' } }); } @@ -3999,7 +3986,7 @@ function anyCounterAxLineAtZero(gd, ax, counterAxis, rng) { var zeroPosition = ax._offset + ( ((Math.abs(rng[0]) < Math.abs(rng[1])) === (axLetter === 'x')) ? - 0 : ax._length + 0 : ax._length ); function lineNearZero(ax2) { @@ -4049,7 +4036,7 @@ function hasBarsOrFill(gd, ax) { if(trace.visible === true && (trace.xaxis + trace.yaxis) === subplot) { if( Registry.traceIs(trace, 'bar-like') && - trace.orientation === {x: 'h', y: 'v'}[axLetter] + trace.orientation === { x: 'h', y: 'v' }[axLetter] ) return true; if( @@ -4122,7 +4109,7 @@ function makeAxisGroups(gd, traces) { } if(!groupsi.length) { - groups.push({x: [xi], y: [yi]}); + groups.push({ x: [xi], y: [yi] }); continue; } @@ -4173,13 +4160,13 @@ function swapAxisGroup(gd, xIds, yIds) { var coerceLinearX = false; var coerceLinearY = false; if(keyi.charAt(0) === '_' || typeof xVal === 'function' || - noSwapAttrs.indexOf(keyi) !== -1) { + noSwapAttrs.indexOf(keyi) !== -1) { continue; } for(j = 1; j < xFullAxes.length && allEqual; j++) { var xVali = xFullAxes[j][keyi]; if(keyi === 'type' && numericTypes.indexOf(xVal) !== -1 && - numericTypes.indexOf(xVali) !== -1 && xVal !== xVali) { + numericTypes.indexOf(xVali) !== -1 && xVal !== xVali) { // type is special - if we find a mixture of linear and log, // coerce them all to linear on flipping coerceLinearX = true; @@ -4188,7 +4175,7 @@ function swapAxisGroup(gd, xIds, yIds) { for(j = 1; j < yFullAxes.length && allEqual; j++) { var yVali = yFullAxes[j][keyi]; if(keyi === 'type' && numericTypes.indexOf(yVal) !== -1 && - numericTypes.indexOf(yVali) !== -1 && yVal !== yVali) { + numericTypes.indexOf(yVali) !== -1 && yVal !== yVali) { // type is special - if we find a mixture of linear and log, // coerce them all to linear on flipping coerceLinearY = true; @@ -4205,7 +4192,7 @@ function swapAxisGroup(gd, xIds, yIds) { for(i = 0; i < gd._fullLayout.annotations.length; i++) { var ann = gd._fullLayout.annotations[i]; if(xIds.indexOf(ann.xref) !== -1 && - yIds.indexOf(ann.yref) !== -1) { + yIds.indexOf(ann.yref) !== -1) { Lib.swapAttrs(layout.annotations[i], ['?']); } } diff --git a/test/image/mocks/z-new_tickmode_sync.json b/test/image/mocks/z-new_tickmode_sync.json index fabfe8ed134..804ca5f365c 100644 --- a/test/image/mocks/z-new_tickmode_sync.json +++ b/test/image/mocks/z-new_tickmode_sync.json @@ -59,7 +59,8 @@ "range": [ 0, 2506 - ] + ], + "minor": { "showgrid": true } }, "yaxis2": { "title": { @@ -72,6 +73,7 @@ ], "overlaying": "y", "tickmode": "sync", + "minor": { "showgrid": true }, "zeroline": false } } From a4417a63daec0c1c72f92d6695a1d7f920c03856 Mon Sep 17 00:00:00 2001 From: Santiago Date: Wed, 14 Dec 2022 20:40:52 +0000 Subject: [PATCH 19/49] Update baseline image and revert lint fixes --- src/plots/cartesian/axes.js | 144 ++++++++++--------- test/image/baselines/z-new_tickmode_sync.png | Bin 37255 -> 38220 bytes 2 files changed, 73 insertions(+), 71 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index fa9936d89cc..167dc508754 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -250,16 +250,16 @@ var getDataConversions = axes.getDataConversions = function(gd, trace, target, t // if 'target' has corresponding axis // -> use setConvert method - if(ax) return { d2c: ax.d2c, c2d: ax.c2d }; + if(ax) return {d2c: ax.d2c, c2d: ax.c2d}; // special case for 'ids' // -> cast to String - if(d2cTarget === 'ids') return { d2c: toString, c2d: toString }; + if(d2cTarget === 'ids') return {d2c: toString, c2d: toString}; // otherwise (e.g. numeric-array of 'marker.color' or 'marker.size') // -> cast to Number - return { d2c: toNum, c2d: toNum }; + return {d2c: toNum, c2d: toNum}; }; function toNum(v) { return +v; } @@ -297,8 +297,8 @@ axes.minDtick = function(ax, newDiff, newFirst, allow) { // (within rounding err) // and forceTick0 can be shifted to newFirst - (((newFirst - ax._forceTick0) / newDiff % 1) + - 1.000001) % 1 < 2e-6) { + (((newFirst - ax._forceTick0) / newDiff % 1) + + 1.000001) % 1 < 2e-6) { ax._minDtick = newDiff; ax._forceTick0 = newFirst; } else if((newDiff / ax._minDtick + 1e-6) % 1 > 2e-6 || @@ -306,8 +306,8 @@ axes.minDtick = function(ax, newDiff, newFirst, allow) { // newFirst can be shifted to forceTick0) then do nothing - same // forcing stands. Otherwise, cancel forced minimum - (((newFirst - ax._forceTick0) / ax._minDtick % 1) + - 1.000001) % 1 > 2e-6) { + (((newFirst - ax._forceTick0) / ax._minDtick % 1) + + 1.000001) % 1 > 2e-6) { ax._minDtick = 0; } } @@ -423,7 +423,7 @@ axes.autoBin = function(data, ax, nbins, is2d, calendar, size) { var finalSize = dummyAx.dtick; var binStart = axes.tickIncrement( - axes.tickFirst(dummyAx), finalSize, 'reverse', calendar); + axes.tickFirst(dummyAx), finalSize, 'reverse', calendar); var binEnd, bincount; // check for too many data points right at the edges of bins @@ -501,7 +501,7 @@ function autoShiftNumericBins(binStart, data, ax, dataMin, dataMax) { } } else if(midcount < dataCount * 0.1) { if(edgecount > dataCount * 0.3 || - nearEdge(dataMin) || nearEdge(dataMax)) { + nearEdge(dataMin) || nearEdge(dataMax)) { // lots of points at the edge, not many in the middle // shift half a bin var binshift = ax.dtick / 2; @@ -950,6 +950,7 @@ axes.calcTicks = function calcTicks(ax, opts) { } continue; } + // fill tickVals based on overlaying axis if(mockAx.tickmode === 'sync') { tickVals = []; @@ -1222,6 +1223,7 @@ function syncTicks(ax) { // get the tick for the current axis based on position var vali = ax.p2l(pos); + // var obj = axes.tickText(ax, vali); // assign minor ticks @@ -1276,8 +1278,8 @@ function arrayTicks(ax) { var vali = tickVal2l(vals[i]); if(vali > tickMin && vali < tickMax) { var obj = text[i] === undefined ? - axes.tickText(ax, vali) : - tickTextObj(ax, vali, String(text[i])); + axes.tickText(ax, vali) : + tickTextObj(ax, vali, String(text[i])); if(isMinor) { obj.minor = true; @@ -1683,7 +1685,7 @@ axes.tickText = function(ax, x, hover, noSuffixPrefix) { * it's different from the first value. */ axes.hoverLabelText = function(ax, values, hoverformat) { - if(hoverformat) ax = Lib.extendFlat({}, ax, { hoverformat: hoverformat }); + if(hoverformat) ax = Lib.extendFlat({}, ax, {hoverformat: hoverformat}); var val = Array.isArray(values) ? values[0] : values; var val2 = Array.isArray(values) ? values[1] : undefined; @@ -1730,7 +1732,7 @@ function formatDate(ax, out, hover, extraPrecision) { // second or sub-second precision: extra always shows max digits. // for other fields, extra precision just adds one field. if(isNumeric(tr)) tr = 4; - else tr = { y: 'm', m: 'd', d: 'M', M: 'S', S: 4 }[tr]; + else tr = {y: 'm', m: 'd', d: 'M', M: 'S', S: 4}[tr]; } var dateStr = Lib.formatDate(out.x, fmt, tr, ax._dateFormat, ax.calendar, ax._extraFormat); @@ -2104,11 +2106,11 @@ axes.getTickFormat = function(ax) { } function isProperStop(dtick, range, convert) { - var convertFn = convert || function(x) { return x; }; + var convertFn = convert || function(x) { return x;}; var leftDtick = range[0]; var rightDtick = range[1]; return ((!leftDtick && typeof leftDtick !== 'number') || convertFn(leftDtick) <= convertFn(dtick)) && - ((!rightDtick && typeof rightDtick !== 'number') || convertFn(rightDtick) >= convertFn(dtick)); + ((!rightDtick && typeof rightDtick !== 'number') || convertFn(rightDtick) >= convertFn(dtick)); } function isProperLogStop(dtick, range) { @@ -2197,18 +2199,18 @@ axes.makeClipPaths = function(gd) { // for more info: https://github.com/plotly/plotly.js/issues/2595 if(fullLayout._hasOnlyLargeSploms) return; - var fullWidth = { _offset: 0, _length: fullLayout.width, _id: '' }; - var fullHeight = { _offset: 0, _length: fullLayout.height, _id: '' }; + var fullWidth = {_offset: 0, _length: fullLayout.width, _id: ''}; + var fullHeight = {_offset: 0, _length: fullLayout.height, _id: ''}; var xaList = axes.list(gd, 'x', true); var yaList = axes.list(gd, 'y', true); var clipList = []; var i, j; for(i = 0; i < xaList.length; i++) { - clipList.push({ x: xaList[i], y: fullHeight }); + clipList.push({x: xaList[i], y: fullHeight}); for(j = 0; j < yaList.length; j++) { - if(i === 0) clipList.push({ x: fullWidth, y: yaList[j] }); - clipList.push({ x: xaList[i], y: yaList[j] }); + if(i === 0) clipList.push({x: fullWidth, y: yaList[j]}); + clipList.push({x: xaList[i], y: yaList[j]}); } } @@ -2221,7 +2223,7 @@ axes.makeClipPaths = function(gd) { axClips.enter().append('clipPath') .classed('axesclip', true) .attr('id', function(d) { return 'clip' + fullLayout._uid + d.x._id + d.y._id; }) - .append('rect'); + .append('rect'); axClips.exit().remove(); @@ -2541,10 +2543,10 @@ axes.drawOne = function(gd, ax, opts) { }); if(ax.type === 'multicategory') { - var pad = { x: 2, y: 10 }[axLetter]; + var pad = {x: 2, y: 10}[axLetter]; seq.push(function() { - var bboxKey = { x: 'height', y: 'width' }[axLetter]; + var bboxKey = {x: 'height', y: 'width'}[axLetter]; var standoff = getLabelLevelBbox()[bboxKey] + pad + (ax._tickAngles[axId + 'tick'] ? ax.tickfont.size * LINE_SPACING : 0); @@ -2600,7 +2602,7 @@ axes.drawOne = function(gd, ax, opts) { } if(ax.automargin) { - push = { x: 0, y: 0, r: 0, l: 0, t: 0, b: 0 }; + push = {x: 0, y: 0, r: 0, l: 0, t: 0, b: 0}; var domainIndices = [0, 1]; if(axLetter === 'x') { @@ -2654,7 +2656,7 @@ axes.drawOne = function(gd, ax, opts) { } if(ax.mirror && ax.anchor !== 'free') { - mirrorPush = { x: 0, y: 0, r: 0, l: 0, t: 0, b: 0 }; + mirrorPush = {x: 0, y: 0, r: 0, l: 0, t: 0, b: 0}; mirrorPush[sMirror] = ax.linewidth; if(ax.mirror && ax.mirror !== true) mirrorPush[sMirror] += outsideTickLen; @@ -2695,7 +2697,7 @@ function filterPush(push, automargin) { var keepMargin = Object.keys(MARGIN_MAPPING).reduce(function(data, nextKey) { if(automargin.indexOf(nextKey) !== -1) { - MARGIN_MAPPING[nextKey].forEach(function(key) { data[key] = 1; }); + MARGIN_MAPPING[nextKey].forEach(function(key) { data[key] = 1;}); } return data; }, {}); @@ -2716,7 +2718,7 @@ function getBoundaryVals(ax, vals) { var _push = function(d, bndIndex) { var xb = d.xbnd[bndIndex]; if(xb !== null) { - out.push(Lib.extendFlat({}, d, { x: xb })); + out.push(Lib.extendFlat({}, d, {x: xb})); } }; @@ -2761,7 +2763,7 @@ function getDividerVals(ax, vals) { var _push = function(d, bndIndex) { var xb = d.xbnd[bndIndex]; if(xb !== null) { - out.push(Lib.extendFlat({}, d, { x: xb })); + out.push(Lib.extendFlat({}, d, {x: xb})); } }; @@ -2836,7 +2838,7 @@ function calcLabelLevelBbox(ax, cls) { */ axes.getTickSigns = function(ax, minor) { var axLetter = ax._id.charAt(0); - var sideOpposite = { x: 'top', y: 'right' }[axLetter]; + var sideOpposite = {x: 'top', y: 'right'}[axLetter]; var main = ax.side === sideOpposite ? 1 : -1; var out = [-1, 1, main, -main]; // then we flip if outside XOR y axis @@ -2847,7 +2849,7 @@ axes.getTickSigns = function(ax, minor) { } // independent of `ticks`; do not flip this one if(ax.side) { - out.push({ l: -1, t: -1, r: 1, b: 1 }[ax.side.charAt(0)]); + out.push({l: -1, t: -1, r: 1, b: 1}[ax.side.charAt(0)]); } return out; }; @@ -3084,7 +3086,7 @@ axes.makeLabelFns = function(ax, shift, angle) { out.heightFn = function(d, a, h) { return (a < -60 || a > 60) ? -0.5 * h : ((ax.side === 'top') !== insideTickLabels) ? -h : - 0; + 0; }; } else if(axLetter === 'y') { endSide = @@ -3131,7 +3133,7 @@ axes.makeLabelFns = function(ax, shift, angle) { return a < -30 ? -h : a < 30 ? -0.5 * h : - 0; + 0; }; } @@ -3319,7 +3321,7 @@ axes.drawZeroLine = function(gd, ax, opts) { var show = axes.shouldShowZeroLine(gd, ax, opts.counterAxis); var zl = opts.layer.selectAll('path.' + cls) - .data(show ? [{ x: 0, id: ax._id }] : []); + .data(show ? [{x: 0, id: ax._id}] : []); zl.exit().remove(); @@ -3391,32 +3393,32 @@ axes.drawLabels = function(gd, ax, opts) { tickLabels.enter().append('g') .classed(cls, 1) .append('text') - // only so tex has predictable alignment that we can - // alter later - .attr('text-anchor', 'middle') - .each(function(d) { - var thisLabel = d3.select(this); - var newPromise = gd._promises.length; - - thisLabel - .call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d)) - .call(Drawing.font, d.font, d.fontSize, d.fontColor) - .text(d.text) - .call(svgTextUtils.convertToTspans, gd); - - if(gd._promises[newPromise]) { - // if we have an async label, we'll deal with that - // all here so take it out of gd._promises and - // instead position the label and promise this in - // labelsReady - labelsReady.push(gd._promises.pop().then(function() { + // only so tex has predictable alignment that we can + // alter later + .attr('text-anchor', 'middle') + .each(function(d) { + var thisLabel = d3.select(this); + var newPromise = gd._promises.length; + + thisLabel + .call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d)) + .call(Drawing.font, d.font, d.fontSize, d.fontColor) + .text(d.text) + .call(svgTextUtils.convertToTspans, gd); + + if(gd._promises[newPromise]) { + // if we have an async label, we'll deal with that + // all here so take it out of gd._promises and + // instead position the label and promise this in + // labelsReady + labelsReady.push(gd._promises.pop().then(function() { + positionLabels(thisLabel, tickAngle); + })); + } else { + // sync label: just position it now. positionLabels(thisLabel, tickAngle); - })); - } else { - // sync label: just position it now. - positionLabels(thisLabel, tickAngle); - } - }); + } + }); hideCounterAxisInsideTickLabels(ax, [TICK_TEXT]); @@ -3437,9 +3439,9 @@ axes.drawLabels = function(gd, ax, opts) { var transform = opts.transFn.call(thisLabel.node(), d) + ((isNumeric(angle) && +angle !== 0) ? - (' rotate(' + angle + ',' + labelFns.xFn(d) + ',' + - (labelFns.yFn(d) - d.fontSize / 2) + ')') : - ''); + (' rotate(' + angle + ',' + labelFns.xFn(d) + ',' + + (labelFns.yFn(d) - d.fontSize / 2) + ')') : + ''); // how much to shift a multi-line label to center it vertically. var nLines = svgTextUtils.lineCount(thisLabel); @@ -3464,7 +3466,7 @@ axes.drawLabels = function(gd, ax, opts) { } } else { var mjWidth = Drawing.bBox(mathjaxGroup.node()).width; - var mjShift = mjWidth * { end: -0.5, start: 0.5 }[anchor]; + var mjShift = mjWidth * {end: -0.5, start: 0.5}[anchor]; mathjaxGroup.attr('transform', transform + strTranslate(mjShift, 0)); } }); @@ -3918,7 +3920,7 @@ function drawTitle(gd, ax) { } else { y = ax._offset + ax._length / 2; x = (ax.side === 'right') ? pos + titleStandoff : pos - titleStandoff; - transform = { rotate: '-90', offset: 0 }; + transform = {rotate: '-90', offset: 0}; } var avoid; @@ -3948,7 +3950,7 @@ function drawTitle(gd, ax) { placeholder: fullLayout._dfltTitle[axLetter], avoid: avoid, transform: transform, - attributes: { x: x, y: y, 'text-anchor': 'middle' } + attributes: {x: x, y: y, 'text-anchor': 'middle'} }); } @@ -3986,7 +3988,7 @@ function anyCounterAxLineAtZero(gd, ax, counterAxis, rng) { var zeroPosition = ax._offset + ( ((Math.abs(rng[0]) < Math.abs(rng[1])) === (axLetter === 'x')) ? - 0 : ax._length + 0 : ax._length ); function lineNearZero(ax2) { @@ -4036,7 +4038,7 @@ function hasBarsOrFill(gd, ax) { if(trace.visible === true && (trace.xaxis + trace.yaxis) === subplot) { if( Registry.traceIs(trace, 'bar-like') && - trace.orientation === { x: 'h', y: 'v' }[axLetter] + trace.orientation === {x: 'h', y: 'v'}[axLetter] ) return true; if( @@ -4109,7 +4111,7 @@ function makeAxisGroups(gd, traces) { } if(!groupsi.length) { - groups.push({ x: [xi], y: [yi] }); + groups.push({x: [xi], y: [yi]}); continue; } @@ -4160,13 +4162,13 @@ function swapAxisGroup(gd, xIds, yIds) { var coerceLinearX = false; var coerceLinearY = false; if(keyi.charAt(0) === '_' || typeof xVal === 'function' || - noSwapAttrs.indexOf(keyi) !== -1) { + noSwapAttrs.indexOf(keyi) !== -1) { continue; } for(j = 1; j < xFullAxes.length && allEqual; j++) { var xVali = xFullAxes[j][keyi]; if(keyi === 'type' && numericTypes.indexOf(xVal) !== -1 && - numericTypes.indexOf(xVali) !== -1 && xVal !== xVali) { + numericTypes.indexOf(xVali) !== -1 && xVal !== xVali) { // type is special - if we find a mixture of linear and log, // coerce them all to linear on flipping coerceLinearX = true; @@ -4175,7 +4177,7 @@ function swapAxisGroup(gd, xIds, yIds) { for(j = 1; j < yFullAxes.length && allEqual; j++) { var yVali = yFullAxes[j][keyi]; if(keyi === 'type' && numericTypes.indexOf(yVal) !== -1 && - numericTypes.indexOf(yVali) !== -1 && yVal !== yVali) { + numericTypes.indexOf(yVali) !== -1 && yVal !== yVali) { // type is special - if we find a mixture of linear and log, // coerce them all to linear on flipping coerceLinearY = true; @@ -4192,7 +4194,7 @@ function swapAxisGroup(gd, xIds, yIds) { for(i = 0; i < gd._fullLayout.annotations.length; i++) { var ann = gd._fullLayout.annotations[i]; if(xIds.indexOf(ann.xref) !== -1 && - yIds.indexOf(ann.yref) !== -1) { + yIds.indexOf(ann.yref) !== -1) { Lib.swapAttrs(layout.annotations[i], ['?']); } } diff --git a/test/image/baselines/z-new_tickmode_sync.png b/test/image/baselines/z-new_tickmode_sync.png index bebf25f31f62ba067763417316d66e4a214149f6..2777f45850d6a47fa1e21ccae27c246bd1aeb3a4 100644 GIT binary patch literal 38220 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 Date: Wed, 14 Dec 2022 20:57:44 +0000 Subject: [PATCH 20/49] Fix lint errors --- src/plots/cartesian/axes.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 167dc508754..d585467db96 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -950,7 +950,7 @@ axes.calcTicks = function calcTicks(ax, opts) { } continue; } - + // fill tickVals based on overlaying axis if(mockAx.tickmode === 'sync') { tickVals = []; @@ -1223,7 +1223,6 @@ function syncTicks(ax) { // get the tick for the current axis based on position var vali = ax.p2l(pos); - // var obj = axes.tickText(ax, vali); // assign minor ticks From 5d5c8da867a111028a774db3f8737081672d64dc Mon Sep 17 00:00:00 2001 From: Santiago Date: Thu, 15 Dec 2022 20:34:27 +0000 Subject: [PATCH 21/49] Improved tickmode sync logic to round ticks --- src/plots/cartesian/axes.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index d585467db96..e8769de944a 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -1222,8 +1222,14 @@ function syncTicks(ax) { // get the tick for the current axis based on position var vali = ax.p2l(pos); - + var val1 = ax.p2l(pos - 0.5); + var val2 = ax.p2l(pos + 0.5); + var d = 1 + Math.round(Math.log10(Math.abs(val2 - val1))); + var e = Math.pow(10, -d); + var valR = Math.round(vali * e) / e; + var objR = axes.tickText(ax, valR); var obj = axes.tickText(ax, vali); + obj.text = objR.text; // assign minor ticks if(baseAxis._vals[i].minor) { From bb3e7ae532ba18fd9aecfced1d43cb4a5a10082c Mon Sep 17 00:00:00 2001 From: Santiago Date: Thu, 15 Dec 2022 20:47:04 +0000 Subject: [PATCH 22/49] Update baseline image for z-new_tickmode_sync --- test/image/baselines/z-new_tickmode_sync.png | Bin 38220 -> 37176 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/z-new_tickmode_sync.png b/test/image/baselines/z-new_tickmode_sync.png index 2777f45850d6a47fa1e21ccae27c246bd1aeb3a4..7489abb4c2ba31d7e8b05b113edb9cc6fe641ef6 100644 GIT binary patch literal 37176 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 Q3kLit$f&-kmNE_fUtL1?V*mgE literal 38220 zcmeFZg;!Nw*EbA@?i8fEq`ONHR6;=oX{1ZKrBkG(8%0VGqy(fz>5>MCgQRqKylbOg z_jNzd`;PA)_{Ly36!%$suG#Z9=R9E#RTXhC$uSWS5OD6@l~+eVfYl=)Anv21g5S() zUCtsP&?4NEmwoK6zn+0nukz%q-FJEB#pa#Zm4xk6_5{KNVH2y@#HNY6skh{oOkOcQ zGL3l6wx?{u6-y1Vx$a=@t+^K6^yvP z1eY64@n64`Y3Y9P&u742nn#eqSycMCQGXAD{x=}$=%3etzxWklJly^)R!>R!FES8N zxVI1qY5()1Nt6wDad8(F`S&j|^=FX&Ly`=vgjuF#ZFSqx{@=eOuCGV?&rST0byfTV z#zy8A;s5?6tGfr@f0%%PQIm>*Qd-p7-SThdJlx);{ufDv_JW9*`kJ9hfeinllMpaU z@*ggNzx;nNs+j=!)4J$u2I*S{Pk0oU_e{Y3w!k3=w(Fvf&|U3`{RzEidSa!eaqFZN zmlfw18okec&V|ynsR&OK<2Y5y!Wi-C5iw`*Wp@OAGp7N09lxGR%(?mEXf_&++P(R8 zi^r4g674F??j-JZe@=K7M0W>>yld3BF$2T zYTN1UE#E7hNXxk|!N-8^1VeG}(@H`cNzeV}8=AUrqN**v!vw8{n}uh+a=uPexlO%E z_kgLO>2#Hyk&!XmX}Pavr;Q@^_3O8nmnX|v3~X!|OiGDg;Vprj%PFI8 z(5F-I5PZ+i$Fg=w(Wo=c!?smaRoepbq+ZUohO(DY*c28PT7_tu4X{5h$WHF+*<#7^ z3h0+Q!=7)8Z0(F=;q^IprxbU^E-Ncr87_mB&`OwOh8>(3Ah+lS}xye|&M zV#dQF?V2t~YMqu9x)V7^PGn=fkGG!@bLrlcd~qoM=5{dcm9)`UbV@PjyS$}(b)U*x zmZ*S1&4dXm-iHh-iWy&}h5hYbSvz%WQEB5Vw;2ybjNH)=I{6qg!ZYr2RB?*CTa9NW zp1RUzJvUu+zpDTE^!$6aEK<7U3yrWv*Nw?Hy0wnW==uaz^tl>Y) z_~*}!>RF94 z3Nhyb!j3OBJ{PC=w_kNMu9tT^3i)I{7XXHq)2g_94{|D!$Zy%)h3#grPZZ4%Oqn&z z=<^?Bm6$o*N$-p>v{z6|l;~KWTc4PPX@j!Yhr8X}MPv)wRaS3QGsI#9TL(=( zxs4WU-4wF9Deo0cDazMNdZNZ)U9mVNXgz8OG-_qCiv1NSH#IM&t06VG;+~O0^z{`J zpev$b-^@0<;VqSA#1^m?OsX$)vb&fdLPT)Bk`tZh;Ij~`I9!fIphWL}N50e8-I7Ac z=Hbti6!Xk`MD@A%6V$&HKP@w|^uC)#|H`gzLuh@x3~6tvH?YUCDuM#-KW3?8Z|M)alyPPR*zI6CCjL2%KM#dlZw9b{& zq@k>5y(^k5Maygt7u<8}Ybpa13dyXQ1`dmVz<6>6=o10ePEg@4^Q4t~=j~F3b zlo={l+v;2^Bo$J5oBKYj0+xgFAEFyhSBr*D;}%iMD`m|30;TB*iHJtDbu8)S@0@q_ zd??OHq(K^d;Mu}%T@=XK0Kf4}!X7SDb*U|1#6d>TR_C^*k%njLZLgssG~W68hL&{C z|1wt27Ir0k`RrE@F@?0o*wT{a-Cy0*uC$0HlrL9PF+(v$6}}+XPqDO_ZEVoSy0xYh z*iAIZZ5bn2@6%*}(Nt3-vOe2Hb9Fk_G|bFFU{TI^J1CQqR3}N-adW*ew`Ecc@%S{d z>2rKlO@cT=?WHysz9o@VxrxjuYxs(!&v}iu8SPr4VkCL4&*PWd54hb;r^|cF`!d8e z%VGqZcW2+A>px?%_At$p@Ft4ouO50 zCQC`Z;vjA}5LrjXLvfo@g;qO2Q%ERGBu?eQue6sHYbAB64U#g*DK;iVvA6hZ9euVr zamt0NEr;?}32JRV6Yiu<=#ZPtr*UN9%W`&8m>?x^AmQuqiQj@1JIuFPr37`V1g(~v zb`R^|FMPnDS1=_q+?K3g#?mJ%`WWj{Rj#Tz6HGb9%Gw^JXa@9fh$}#Q{cC%Bj?F~5 z6@NOqd00{pYIwm7L=K-0o5o@s5;aa~iLd!lRO0WM2yABPKoXGg)af0R1i&p|-wEp{ zWbqxCVNdj>6V=2GB233IQakxmYdLCd0*AL ztb97|PVldM$d3)2^#4By2?agek2m1xhh5XR;lf8dt$5P3nkBjxQ#HJ+BSrbB4aV)b z`zzm(c6N3w@kzLJUxssiMsJUzYTce|-RTvcrS-i$UzuqT?}}&3>FZv7`c%Ni%#C4wwCgt(m zw-|ZwkyGz8F$nc?>gun>nt&sG85ZWy+`;eKa&qL8tm>PYS=)7amr3 z>8o=mL)=Z3s6LM6K^w^M{KZ^W3rbwKW+F)q zyacXnF6(nxoKj;Ye zWQYrMB9wE`8#HNgCk#^qwtYbzz( za_P(69j-TM^0DgtQfWCfT;9L0M8071UER^!KE&<(c&7%04~MOWqxX%f=_39loZ5yU z5=Y@g#0F^kyy>WX0n}^Arb+y2z+QdHXGdGn3X$Z6O-;L9>~t72AVs5L*C>A2EuY&Nu>~Z`>i(fV z&EzDYc;ZF}Urw6Zi@jdq5l=mWlJZf_L{8*1X)3$%aaMbSMrtl=OdxCgN+};&%HK&RBQ5Ajp@1RP0pJ54!g~I z=bQQD2H$dD)b;SZoO!WTXo_FHsVP*ZlEU|`Od>LME z**xxel}>9^J<3C?>7!{xM8MuHWlB|A86Qua>#@M*HdF60)W%_FdwjZ9I=6Q+JlmHk z89qM#6gb?y^ohB>B!P51m7oe`0ki#GgnR@ch3&?(%{r_1=b%tf%#`rxn>+fIpY>jl zZTBb;4ez~y0AV_XUA@|ed$s$6N+UL<$a0AyJ*k398EGTD`N%JQR#;?Oin4hB#W;aP?e}YHorAp~V=rQvSnN*Hw6h$q_o(nJ`U2{&;VZY5fjJniXv!RpK1YC- z{?)D1VvFx@qfD(M;0dOvO;?vMCQI?@Zpjiimz&VlJk&OG1Pl%gtOUkl^z|iy)zKTu zI0G6-J=bc8&1N*Glt#>Rex3DzTuS z-@=QIw!4a+x@}GsUUHqi3E;1jbrdD2S4k7PLyP~=&N{|zJCRFo@_ThQZ@}1h;$P|C zLHIccjs8a*LCu+w&FiN!{zZNzS%h(lpoI4n*rq&`hMt?nA+A3q8-iiP$S@<5RKXgx zai@f_3!LYSy&U&Y0jYLhQ*wF&fQ&DH1pafRU-K`9<^pR(1MC57;TZP7u{eTs7NDA* z^gWa&8rSF2{BtfUvXnc}b|XJMD6m;@fl;I*NF{co=Bfak6g!=6V-GVz%TeJOX7h9B2&N8;xgf z7OUhCx73w8JxMDb;s9t%68dpsC8BG6RI{X<-z~j*0cSyttp4R%-cUY6%o$}?CMKrf zFVV|2elizfI%Q5*4x|xZYvouUG14Tu6fEeX{UQU0h@+>AM%D0+y)R>wE+guAG(a`q z)xvu2LO3^-z+!{T6VzyjVXx$B%<_^BH)kSJs=Ws!oKMth<_Kw z(`T)-*D5p07d>zp+YUX({Z$=M>(yxPKSq_w{Luxr?P>rIL2VA?my8Su><7xky@lNm zsh%&^AMwI1VJ*E@oSF!l)4wca-o7Giztw4*(f@gzUv(zz{uokf&mkiWR}A9*8;74-TmUmGlCJrq?^dx zO=UV)Gv%9QLlyi2gauS3y1zlDfR^-!Y5fG_bvVfyacLtGq{rK+$}JSs!upH!kfj9P zgIpqKjNdXkhc%v8BSOuY7W@-+CWRDQIzMd@cPAye_p(Xv3`b}tPX;iE{%mG(mVJ_YeECLJft=s|9ByLN&g!e{tuQBM$Qnc zk6bV8MP;mkNoaS+HIM*=NEsGha%mxzNld0aa@$<%+FP zf`NDQj~SIPZ|?}eBR6FVCuN3EN~mw43{LVztato)BtyX9Oc-ngz6SrUNksR>eKoJK6D_`-vg~Niq|o1vQVZ* zNNaMUtwTHge=z~&PvU+d><0;t_OI~n!={Rtx;{?wvSR9s7Yya)Tweg~?*$mQJFyL) z2*W4O{H_|8y67Aqeg}d`!&rXz?%j&KpN0*~L*Jho>r=i{uF_NMGAZ;YAB*Lfgz;jH z0Z=?3Lu)%Zy-jsY*{QNbXW!dE&QVjU)HJ)*D67Ro4?Hj}Dhv^8yBv!MeVFVB(RE$i zETE|El$F1pU0hRe)K^Ru#%PG-A1FST_V@XZ%L% zPug`57p#4;SNwagofshWI;YgcKX%6b_?F-PKvHIJOplil_X`<#AcFwS^BDtl>FvL_ zLGfoB@%PR`!0SgUdC`1B?k8=!EHEiDhip=!ZRaG0_n54LWI7SYW7SJC*+V9FUnhe(O<&# zX3F?tp{_`CFmjYv^f<;1{0=>YLdnL(q!IdhMI&QlhV_<=q(|H8+n@LP`dSKD-JKBF zdme!ZgxubJw;2i9Xl4^>RxysC;FM9l$f-j69bG=WH<=d2?wuP+sc|<%i8r+z>gFC`6IPojAF6LVY$qhJ!J#yrMhbLd$G z5L@aEZqFir;6G3cmRW=O_u$d(xYxK^H5&HHD5S=9)5eF(M|7V&G&qmY2j z+9LIJfDazKot)zQ*TL~ZZ%uw!+o=ZLdMC~p<2RDz=uCiO7iGU=LTE4SUwsDCVL^EE z873H7^P-qC!x;T0gL~7(p^kEf*bV9PZ6pAz2De30x?=*Qr{koj&ocf+kV` znmmv?VSGix`Kmaov$o1=L_L*#9Mtfk_Y-c-fx5Rnp6${0cSV}Q`5WvS@=08JeWGKy z=>X0E2z!Cdlzl7CEq6fimygd{A;7x+U{vS+IxZO>vhU?dKBmTOqqoCG)!2I{Oj53h zL{6RC0asH_{m)MKf8D)%w_`V%swG?H1!S7bePq8qOa$%rBE8`~o$RmAn;GnG&XtF$ zcF7w8z+|AxTJv$iLqvc9wE|2hLG}J@6t(0lfahd`TKzsLz=s}VjJ%Nxr7tpOQB9Wt zZ5STVf5Y1LIvCMBUQ9BuKbm$c!ss;5@+L`O*HoDP?DG7MWdvL@YtRo7$-ZCmC>wMZ z+)sbye+TWRcy0sz3}(bL&@~zO^jzoQC>V?Mz1A~J$Bgq^u?CbWRB;BZ*GOoQ^ypvn zku_9!4$sH)Ya8<8i;T3NkY`yeJPg7h;&EMny4Z-`A4=_s&TroL6?6pSf5rHm?88 z;FmV?mgMch+E@|UG|<4@iFi{KfDcfmiYoi~Am`R5W*dL6Vf+n8VhK&NI{zAt1&`nX!z3(%nAwH#!uQqY_P zDAOCCZvZNkQ_0QGa?H90X&8o%QmBX!IWM3RYMzZ|zR2K#yYWY%$lVb3T_cAdO_|M5 zyWBla=Dbbz<(UQHYxYXTpL$637<8C9eQ_*!8m0P?({*k|OgJs073L2FKz|89HhZG_ zlp^*r7|#f*cHf;B=4aj?dZa}q?y?%6%9&Wz$lY{a{(0$KYYON(GQU~R!**k1;~W{D zbKaV0JojVrDtZSD&*y@sr1%Sv}}`-rvUb(i+6K zDX&%WiG2z0T~Ag%yV_}|`GgwMmZO;ctEYeGz(4Lg|B9?qE|x*WN%Yi0ORQ4|C`n(* z+$Y>sDfCO`Z<=>6a*Of&m4KWR=7-*oLm^}ckWMSYOJl^{ zHU(TS&W_qakGIqn?Y>T>1pzLNR0O~!vej}Fk|kdVaWx(rxhTWb>s+5dE>ve4G6tQ* zDsiq#nmaJv!E73#zX^>6Ok5vL-wx;8;0gTuNR;acPM>+mvz^ zAYRDL6L)G6*T)XbS24n2Fn$^YA1@jU0TkA5Z@$kAx0HlURX#{`CYoaICZc+ra;Ei| zqy(HdDPwL<*J=KG17GV}!1yeIk<{>j&pK^_SBuM`lPRenQtDT5Y27+LlEY&g`5d#P|xD zBf}h}#pW1|y>vy!pY0S5w4wvWeZ+3u$BvT8lCySUxR;QGw+VNzC54RE7$ zHT_Q#r%0Img!Fh$FMG}e-WE#vi#}ub|AASx6Wndm`Y>io%hlq*HAuGwNIXz279CWE zB1V(op8#%8>FpKx@MNE%e2xlTf0pErhZcE-AY3GRi_*C* z`)Hf*DPuMW-=$pTSNlqTWR!#MRYm!981wk(gUnjfOl-db%#{$1U7E3P`GWvDD%Ah) zB?yxBXvQlDEO;<#3JY^|bNFWfin7*Q<23y1nmVe#)M10H%SoAar2~TQJcQjL==D

_WTIAj4IZTHt^pqwY6+7SXdmtA{S4jP2E2!T+4T{jRQ!wQ=_UZ0nzG6cx7 z41yG(cfsebvhqU4PlCUNx+I_Wix926yHXs_eTyX9EEACL(pn)Kxit5@$!;zFadd3Qg!e$hJ6SChycWMo#Io<8mh{{&kg`Q)!cjK5~SoDfE)zD zFi8Im!x)N#i&aP>JJUJ=LD!4_54>apc@z(Eh6d%a4caiZWu3S)!0iChix+SY$Smxj z)ETNMY?we^s9%pO;(@>Nk*ww%RcHE*1EEM3^hS*T@kVxkyBP!$A*5FcXp_a&BR9xd z{38IfcN@1QpyR3mXMNi8v{&l(mCo&t;|n(_=8m3ReMaXNU@aOOtBv%ZUi0&u_jl|) zm^9jA#0Oe8!;`&3=mv(bMra;D1gTUtpAXT9Zk)LNMA$ZBYtBM*Usa^#lD*2d@JDt8 z>7a0Ev-{^W^pEh>=)%K*B46~%>@bAA2Snq}(^maWIQ>XlkqEac5jTC+uKd79zR&_p z0#!i&Cl`#P=5)TW0lrEDgZC)q_fgDLFqBO<#^G@RrS?00mf&bfmotmOg+M zPQ_@sgaIy$?;CsBG62H}x(Dv6Y+v6aiTu?5p#3$Z_K!GuuJ#pGbuOP%V%CdevtHfY zZoYYe^ah3SB`ELhkhk3n#jiP&^C_Tc))5mXUX#4O_c zu@L12mTZ9XykJ&*!^>Zx#Y|U?-W17K_z&Mv4s23g1ZIO{0jOukj1c$wHNAXyw+h|g zs-M^`a=!wCqekDnj%^&WYyfxnJh{Imw##j+#(&(X6Bs|46RRBsxU0zPjOEiLy&os( z%nZ(I!9|8qf5xeo92T3GYL4=5ug8(yTQLo>G+ln5`r+dXA`Iw?y}Rd+(nd;$jC+j+0l;)9fc2by9b7%k%>hNyK8d8d7hFTP zw|1Yn+l&CL0~I-pYn2H+pH#YUYuPfg#l!=%NLUbTg&wDuau3q5DGv6UQ@z|^Rw5u;G~0WZon}=@U9k2;*mGfo zJ9gi<}oUu(L*1fPD48Q@hJbk0{+P7{D(TM`!b(i+v1DF9*Qk%Ba-H>_)JAsvCHa4B6&we;mmtd(lyj#myOfKc}0b0rYg55(ZJHx9(_gImOcTPxJ8 zPhwv?Nn#D4Y$Ti_etL3im0>XL8ckJ2G9XLEgtxOpIDCT)9k!1zm<1(B<^c*Lj;6lxtL;?j4s zvcQeAf@~%dW|C?z1QE5<=>Tp`$SD#8-I~@h-dDOFtLJ?;aGb5TvDCl?C`{o3%M#Gx z#;Xx z3m6$pLa6{Tl9q0HcH9x_BInp4UTNNGGKS~?NfE`Jae+nUYpxJFf=gm@ibOz{l)2s2 zL^F$KCe;jGQWi@Ha%311y<)%PTF_&_a#<`~$dS>+$Lww$j5bG&`M)qgxaBsuMGT@^ zJdlwBnMki_H01e`|N8?rds{uchF_ofiVnWOgPa;8~E1t@fG#Eu~ay*m}R%-emp7_D3j8L4%#-!@fl89%E}Q= z=?*b0pw)uRASyZ``|K^d7{+kgM-=fRnlZ~Sd)`TGukpIYH4Y`vU^Ow|rdN8gdY9j# zN)cwaUc?LZXrgs%)eOj16~ux9djVj(u;+%D=(-1H=}+Y?M$! z;6Cw`6HktY(3&GAA)#Sc8uA07r6I}e9bRic(tpyHT8=%tdphv$J2Jh?p!2vdE{DYk zd=hxNd8qie>qPmTA%SC~b@NVG(nb{YagfzPl!JL-uDXQ)GzoIGLjL($%lMFOVg2iL z%yN9)7LEqK?D1M%B{ z5D4<6m>a6(zt%ORe-RRLaQ-RV9slPv;!zFFhHPOe(+x> zq6imN=_2a7`+P0KHwt@*_v`w|cNDtcvxC zV7$tj6yRgQU@9rwr1SO4P(B_eiNw)7eP?H9vb3)hn4b*<05zDFy8Y`NfS1^sz@%%`%L}o zK9<*s<1_KEw*gEFz`0y!wP4H}@w7KG1WY<&oFpV1ej;m>=!OBjvgqCyQKuz%JB_dW z)#b&A$Hrt;>q`QL;h<-y%(qVfxYll(q!$8UFJnL&X~a1gZM)9{I-T#s6v1S_UDQzi z17iSG+`WJQ3xLr23F`kdqLnX<;ocg8Ls!vI>$s@ij*5NL4;n!>`t~Y?8cb@bztrCm z5WcpSJO8ql%JZ}BCx$L|+0NeCog5b-mMud68sXZN{bz*h*0VINv&*xs1d$8?mx$$p zAx|q*5s}uk%g@nLr|8vFj^TsqZ@c^K`0CEHuFe&EHvyCrA0V9X7I=PJtIX(|Xn@=ur?-w60DMq$b$O;%sxL_?<#iKaoUH)t9qNIwXE0MG2gV}#B}d=gBkCw66|%!G z5PpW`x+%RG*)l26^(S8t(#qFjf%3L!Rh}y&gAb^)b_NW&6NJbm3ub~B3mawlq@?*~ zdUv?NS?s-GU|bJc3SfQm{&8MZC-P5dVkuGZZd{5%%C`ij+%a7zoXKjt(##07G>$-v z;ezid0Y_k_@T-npLoPGfk4noNvoO)twAM2^h8FfFU6U?dGl!#%AE981=Y8QhduhEo zXJE3>bM4d{DJ4mJ*24v{zj$j80W#hH#$00hG3+Yi0HsmNe(>>83Ur@l+_ZAVcUat7<4v>=43%=5r%eWu|oJvS5V3_O1D#jf#W z3EMmF-fdAuGk1U)I=V!0D0RfKL~GBoSJVIyMkVbcVV(>_zgFS!NoTp57N%?q#nOkE zSh!?U5kMgyeHgnjH(B_IrRp8sI5f!bWBLaotndg0xe%BEgP^rPeys5P?8pmV;UN== zC{xvBwlzMbWC+x3{L}NaNgfg#K5_O34W)IPpRrJV&W|0cW;DK90txb?Fq~R|kvXeT zVg43z$A!C7o@*a!E)IW;h!WR7n=uEI$Xb34U<3@pV^ykvN>czJwyb=-)IfT;M2`Z9 zsdN7+7&L6%k4gd!dXU@Hn+&J4?Hq>+F=o*DWGv$ZPrQ6p=Emt=J^X2 z-?<7J&kW)t$H&4i_JrKt= z>s?LOLwqy60!6w0YwYNcQ!NbG%4sbOYd&!C4_#UjzKivVC?+=zOk!$0C^v1>m>K*C zz}k-WwZC&q@Fbh-WR!o8}e+A|~U?F%=kT7I1tM+N_)=H`!q0#i2B(f%XQ z1}8Ox_`4?<7G=b&9@Rd9m2h;}t{MAx>0RwHXd+BYcf$UY)3WM;n}=~=@qzcR+$4M= zBB!YSU16_Ccl4Zn(4raPKyZrIfHmTCGn_~_fQpv z3n6}R_(0VPSaXQF&D z$G)w9^Q#Z!DNq#l4jJdixcQ$>AV3**LDR5*%me@*lHb|a&ZvtBPv?`GO;;Y;Gi$gs zs6^8p-iL)i=QBQZenbP#_qGX?bb_Xz^0a}!3Y!|JVY48wCdheBF+bf+^X)y?$o@^E zQbt2`a0fZq9pM84aEJCpaATbzfMpa%8%~-DGX5N`n15JffdOVIcq^`FDac89K3hwI z7p$dZ&N7()F^~S!4#7yh=r@;^PtzQ+CYcW4d1`9}744LS<8^M_TutY@l@D;c+j&My z4N5Ov!3bx|^4{Xd_Vg^(mNX}``Y)zXj)WHfm*2(FQ}2&`SSj|9s8!a3BMTS7P^n@M zwbNaA7)$0ugO(5KxtL(S66<8jK8%pbej6?eZIpp_SI@I(QR$2T;pHCp;BF|H!ejlL zOleWnsyAkpF~7mXMcK{yIkAJ_MO;5hZ)W!lzd)y&3yR?N9(zW>{N2I0Ee~)X2NOT3 zB|Qs_KU080GKh$X$fd&k3YTuca8L*;BoiycAM%Jr`ibi&35NWJ0P=XxH%J7uf3MTE(L0;xy;eLa3i{bFtFY!Wcg$xs9vYa`#X zd@n`yy$_yL*&czOOxvRelEI*%88qgATk;m(i^!3=s(M{wbOrq9us7p4H#f6hUFF8h zrM=U)q~gCSHtxy%!eGD9K>$r^U+AL*TgptR@)hn8ZO`~U!y~we{&ym zm4!h&jX1Y0RD3xwfTVqBMBq>3bBwsvbR`8fb3ikrNZ<5cU?uP?Iwnkew%{$3Rn|~$ z(~-bVYSxqNpQ9N4p2`C>LYo<)B?3U+W+Gy#J`0Tb>n^(QbP{S!=5V}E~=sQ~kYRCEp!OA!SJ&lP>Nk;Ln5t=r-Y zr)S+(V8jdbaw<&mM)6~qia{g!HpsDPiQcqS^L51eYGHizI&rkdHvJy%+9D1%1HAwl zRwuWi^*-@~ciy0}dsEPgI1g;6dB+IIz_cLy_Vooy^&70DkJgPFcjNgYO-7+^+h%;P zfqNz9gjCe{5TDF{|H0W1*37KW8O{goD#v!~PSD}p9@Vj9Yk2|GA=g`D6U?N0YSvmpW)ovHalN7EBm)mRl2%^L2IXHw>;J_?z$X8{cFK@NNS6P zicnsdUEXO+)>KrLVHQQhA%BOw1;qQkK#c)xnaMrZrjYUy0S)>awXrsy16=N=PLtzh z#v|qn?>=Z%C|sQRUY*e#Zq3ppY_VA9-$hcmE)=Ce#eR)%hjTav&YNYMPKiaRSowWt z!!sKv+vDbItDhu?`JV5DPF6F~Yi3?v&0by5tPU3jo}cXL7&qItuy^SR6?8s!g{JXG zEj!lOGCh`33cRF6Z!ubaeF_<$T>D?+n^RO3D)LSrp!V2dxs^#3y(e7c5F+gLseVu! zrc-U(>xi)inqKxxJ!H_{1~2bby?XzBZor$aw3`bqCSWhCQ*=$pWT_f-v8}whDKN$% zTv6KlZ-R{_?HFl1`;GOgXgt}GpSstuf*i%}*v2Eb3fXG3IIQqdzR_5T-pk0yZ$J+t zU?`ZZ413G{?LbdQ)~vyfTYg%RL-B*?}p{mPT%zM~B&_M$P&09w~ z&c6oV%XxH3g9Wz(H9oCT+O0XT*lC@hFX6Gv_}OL6EOO4d!Gg3N+II!}j^A^YNDtm% zoS+ADJWh0JfI51oyX61e_pi*bxE-0i(6&`?yHR2;w4WGgh&L%N8MsGyB)A}NHXP|I zr|>atgj?-a>3t6cqxBlICNUR!jOlH9FKn3FdDKzn9jbI{qJOuyS@V_A}v_)=cu8sx_88V%h#qXJx$v;_inAB zcZ9YNhL6k8W(&Z$RtPB5dVOC{jZqO!m&fcw>>?>++vwH&o zlTl7hU^}Bg;{!QZUqH#~&u=UidU0q|m82B3ZC%=sH@e@24J`|eeAX{YJ0#ODqKeY+ zrSF-jm;H@j)*d%~MH>$G06VCIj)4AVHb>s=Mngb|!Z;!b)pJPc@icS}ktf!oiiWz4X zhWdHAxB;l3094H(-8WXpN=w`AKkHXv%>e!x?=Ey&@s=0&#`GHQ=0+aPyubtF9ijCR z$^R?H22k%!06H;PDKUv!wLAReDSE^tQWx8hey& zpH$RR2-`k37)}zTppf$89hjyw0-HFDdGHcTMa+^6YoT9$!rq}jc-9h$pB>I^ei=+MWp1>b9eKs6to%N3j!i|bZe^ZFIH2tCsTr5TLU{6L7!GAm@=fX?@D;J;9is zrggGC>kFc{Pxx4%Jk+2Lp~zmaT-(w>G*?q zaow^kkJ4pK8wrr)zf$hSJvweM?I!7{b6>3Z0uZq66E7>#qS-A?yB$xkb6tt2Q3tN|Y9QSc}q7YtP??i5LW6^Nli1ouO~;{(zF#}L~M|C1yale2Gq zcXY0->QkMiL-GW$)`Sc%gM%YUweG^f?A(*HPgcVP{$Oa$c<|l5@g`sCwrHBtO8AHB z8LKx{5p{zgg7X;ooG_&dJ@@PjWieq$tABeNwGSFT0J3?I_4g)x(djlCXFP8hFppK= zuBIfF;ay>}_w+P<{J2Apg#nfK?3yL=y1JAgS;&{V%dEnD`)vPLAlMVsw&-PUVc(ie z7*kv5O*^8*TX1USyPI<1VicER`4U*7;=Q|*K~ z@Q@5jfQ`XwCuy^^$L_n-1HCG%gn1YPZYMbrcy&xb9aw^~!ye63OJsW;9Wcgxs4Coj z-Ys!^@1phFW7?k^dPuSC>8G*inMl}Agw^#l_XGLN?AFSc9pM%JvP zPZo$MCEW3$X)o6#;9ltDLg4;r)G{EY>?4clS>K##plEn;G%9tMoYub>0^2Xo0zv=w z8vNj%@3`^J?wEFrNQAuRrszfavPrZe z;AcK#pS;xufN1~8c956X?NR5BG>SoAcY1Pz9|Nihs1eugMBTssCdpypw5_jo{!*Bi zsZc2MfhDz?dx|f?-268Z{9^zCj!1Edn`Z&a*BeV5q}naKp0@^!mtm1YX)TTNUx#1E zOsXxhV7zz3T+inSgp$aajd(1+hY!2(~F0cFP=E1dOQpe87uIt9=tL1Yq6XlRJ0 zM=)dBL{g$bd=DZNSzX5OE0(i7yw` zNbAk}(pz3^HRQW4bf%Fn%>J*8Ve3mr@1At@`!ewzd3D9&yM-hU7T|UaCTIkNw)a5_j*6Ql>17 z9N_O(L1%7bf0^iJy8wo_^MY9HVYNG16{YlKv0F9fmno@Kn>#xClFW9?UBv(lQav-Q z!kl@OulfvRTK8AFc7wqNBpei7&_wIQ;-|bDfjMB;8L-5bHJ)BP6h)ZN$F?!`#Ld<@ z>y@4#?&Xu@)W=x;xs@Lo_j{z3c*^6@(V;y?EqyR8xry$Hx1s(#Kr^pI`1xcInAM~P zu}pJIKMt|8xWr4Hi@Y=&9S5<0R}9Lj+yL8umx&idqD8{j**!$=p3Y1U6DOG3S`8dx zb_ZV$fT2~PR_kaw<*}TxT4f@Y6&)bFN|)EN4oUyL7U*tD`K^Zy0>^>SsX*_R1D0#F7#&^oMi(k zWFPIO%m5nLcj~;)T%n<100hTs4_UWYesX;;U`PycX$~})f4{MbKFOy-`=lZ+2EECY z&h+|Xi!pvLCxG!n%bBZezNgGIRBJz~O9@-(U%6BlpwH|FirB*uW_-?`A4GdO$mP}k zuNXaR5W9Ax4nO0ZotN`O3j3a|rKL!UZ{klAb5UB_t(lFHB2wGh#YF5n9Gg{l_J=(`0V7_^cc_l$IwLMXLaes-%-k>KmnfQuO z>V5+W9y4yG#6pjBcWikpK8D0GJP;aARs*JkT{>Rt#Da=T`SM#hY3R7|alYEN*%#H( z#E<`DF)==%uDrrKE56clTz~?GxJ1L#EsgE=)yJQONZe3s^*PVw3SP$_b<5QAdD{E-*W;SeFLcowTa=?+@Z;p{C1bUw-{CUVBx;pYBjd zYWixSwH!A=S4<3-oe-wqFAX-H0vw)Q-f;{~b^GAeJIbbV_}pc67z64BELdCbe&;1v z*i8%pkkCA^oVFT=`QbLf>Bs<0;b(_i?oie&Ef1y6028Xu^p!LweN*8pYQ{JlF5CH` zGAQ;WAB9~UC$_n?>GBmQ^xk{xgoTBz-bxwy@U)D6^3!vQ8)fW5Z0>T{Hy=20BbJg* zS;!}%2$RS6R?aP+$MstMAQa1q*}~%lRJtMW_4iEKr;V|(v59!@7m#cC!%*-kC@4ng z)VCFG2uF&>`Xyo6R{m@Wpx_)_n%Hr?9EmtVkDG6Y#|>K#usXzig7aQgzAmA+Uv zaz5a0EnY~y8FT(}G#e20({%Y?U}-5pOXWpdDO5h?{n$0S%$+TE-I{ndeuK3{5PS)M z_D;Ez92kKiCuIFx80|-jRU(y2cGMF<@%-n~_@2?_$jcMtNAm_>4~L7s^EiAwGz8}} zYN?b>mBcS`LIIf?9~s`*dHnB>;s# zsODUpaNj ze8rhX1h(t>y`*S>=Y0A8Nzo)Zx-s$=s6DsWEBfC8RN$d>IAp+hYh) z{Ig$i%U`#~{#m8XggVN-4T^%NpPdT{dk5u9?@99^vJu6qT7ZV||LUtgkiHNg z7qWQ?x~%MZunX`#IdV|xJ_{<9m*5+<3XPFav1I@x_Yib8m7}3{6-L<`JT-dg4ovSz zlb^Lzh1c(G0BPi%D!x@%&v(C7#;LE=z;4w7Tn-6xUsJL|DSc;P21Fn5OZaSsA8`ivip6`F(?>PRA zwX^n?d)|6o^O`m0nBzRhIhd&goinYxBk4dFX!x(+)dIBl4MO!@G%2?w0`&Utk)c`_ z!<3S~=)BNkaWLO(Kl(D-1Wv!*_gpoB-+sJLQ!1a=7uCCLd50n0=a8+*^MhB1N%bEn zGpsQ)D^lVZLa)k4cFIYXob}S`{^s04Uf;$h^s`DThw>=!Y*}P%re$Jc63b76R^fBe#rXxa{MHg4crH=EzmvbS!{m`jadIa1ZcMnE4@C- zVgz*nNfM))mZN)-|8YO@j=pLFmH1@+4G`iOrx{7-Rk$B719<_(1G16;I6nL*kzu*B zuA>WrtSi_HF!!;gETp=B(TZu5N|-SWq~U9v`mg|!rO=aU6*#%2#s12*yDyE=lB zHPP08VO0i^mr61<=X*2w;MCWL6DaWPSSI`+3SwgXr*G$8HI_ZdYDaaTJ>yReF!kML zfJ(IhXkLF|uy3{Xu%m*JvASi4g#vWTGh=+qS%=CW$>Uhm=p@knnm+wHNue9@58n?`^vuJ@N z#-vzijFGqV#H%%f6~P726Wku}FX@^tJje3og#50!MBKN6fOBkdu{YCnwHiaX2GrT| zfWlmB}o8hnf@9tVzH?)T$siQcxs-+kDHuI@) zHq0hJ%sC%{A=H-EojO)lQBu;(P(W}3mPH1y4XBz#?0rZiT`e$~n?-lJ z%^&0_oA;4k>gn2;%0&)_2jG4>IWwC2Lj`ho?m>=5vCAgV?6RUYJOny9{F+SwENx(u zvT?l+==8Pw^HkLO({$tDO*s_L^d#!tKvmw{tn29Quj~M|CL&|~<2hS*qp-Ed&~Wakr#q^5-m*M6eySJR)M^he?&?75eh38z`lKYZ*;s8h#88NhKTBhq4B7_PY-5zLO_;;>v9@I_} zzWINlUfV7l;F2f`f3*TmU`%mLQD};OXo!^l-jn5x5Jzl~0a@ZI*p1z|u~Z}!tbsSX zhOvsf&smX0?S*EF&lCJ?2jI*VpSW(l#9$kVjGqSEc6(^?Wv<5`GH;u@<)ORTe0t!clU~JJPp%G>yYs|= zRx-qDlRx$lCBPrfBEY<{M2GbvGB$c{54;ynC253f_@mvX09d7ooE1vBW)D7>}X}9F6sE`>lv(1*S2p_ zwt}F3kq8ZndpF2QVQsn?ADR{cvtO`^ku#qXxNoJOpAh)ORHYeSgF*ZN<@=C?LRhf+ zG|1BvOoE|jV3?sG%Sa#!zQJ#_+1&1Ywu=||*>y$ooiLRRtAbhyqOnW|xOAcl1q2v^2Np-0qLP%vf&q5F( zWgosQaW?)v_SQ$#dr<#;p*~om;(DaOM-#F94_og;B8 zn#L`$x!d6W*2l?3)6&fswhw<(cm6|AbXDp0z|tH(5)md+KmEmi-N>BB8hwpburd=o zP1Q7|na1o*Nr)w4^&bi(w4DgB?USrl_?G712Y&Py{X(vBxA*` z_n2U5y$VuK8m3(i57}kQCumboh)BA7Bl8e<-Wk&J#fXchjL=5duFjBa82nqy+IEZy zcx0beqc#2s^bwM@bfKP*-7}P#&7AG)%|B3>^I`!~zxQ8B<`d}7$!_mn#)k;9Ib}C} zKf7}zzhwmR8Ve<5{xij$t?y~vj})XtB7`r2P0&PAe=|&H?%VA_HHI#3+0Fk%`QpmX z_u*A+AfEm=3fY1>_#>sxcF|>ImO2pSYRI z5N!%4UppbB2gYM!QpP|)K4&FcL=4_2w1MSoeRC&$ZF2>X=`LL;hS%Z?}Sv{IE>u%rHFEh;OF&72Ki$ zEMyE6pCIe78%MQI&6T@<1<((Rhay6nzkHeF#XkZ0C|~&V@HtMh#E~Jh$ws3bWf2P~ zbqynTKZ$TPj-d7v8zEh0C?g0J5pqUSyPQEK<^Lcm{&=#CVH!gnQp^3;Rpfn;Scfd4 zOrP^e;eZ zt3+|fLhO&0A419=G@Dp2-cX?akt^tvy5fE=M8;G<0}{}}Qz*%SI1D7$d`wpyAyd!w zJa&B1^o8sG`l0o%`k(}eGL;8nID88TSqq-GdoM(?gd8nGYNpu1{TI9YuSr@i4EfaF zXp`L?;%GCUztZsLgfnRDAK_P(gLA099Ym*OcXqmNtG^P zMEygd{k<$i$X_Qj`Hq}S5K(PSV0A=N?BUZib`DaNn?MtV_rTpxDCNcwY_=*)c4Q(J z*b;*I=lA@_VnoLH1w@oNS?>cwS8eij=M6J4uf}M zi>l$^P+kD9uvtm>-0RL}Z`y091#4yk5utFoYD?#xwIWFH_1s*Va6294I8dWUvOKoa za`Ag_IOU;f`OwT!_yUWGk@1@mJeFHMbki#Ch`pVb~SWcm7cy zaqXegC6AycobW3oBOH<^`@;HY_^qnj{E@8?$7lJEyE-#))7oJQqQz`SPvr_ z@qo(5G|H!}p`}aKqdR|(Z{Ct6GA2fxSk05=eWZ$<3HkEi7I}<#FXSFO%*5EM;-$Sd<46tooICGc-RlRdu#J zX3AWkJRO-i&hvr_`H)i%*RPtxjWIQ0Q3dE2TXn~w+0eyp4R=O&RC5bHAoksAaj`Zt zBGF4&(w8WLj><_VKw91b|I>)}hg+DMq*piQ9BA|VzayJw=pjQO93F|X#nOZ;yj~mg!qtT6IeJ6^-DB11 zeXQJZ==+h&r+P&?(vZSol&;nsBM`dw?yY6Dg4!^05fNuXSV}|)%hLQfHhPs2t^K`F z<#1-h5`&dtVm(vMjZn$f z^bJE~FurzKp0r77qjIp5)fGVn4=FeDkm+lYX~ag91|6y!(udJamQxLCqYEdfhV&at zISqc?n(}3b*PvNoIR7>)_i&HiX=Q&Wc_+Fd=$GNkpTT(1OG_+8 zt&DUcHQJGs(7Nd8C4OTok#LLtn zpR9_XNvPI-jAM*~cZKs&ycPq=OD+p|APxRM?l27w%0G7DU(vo|?B215pBNK^!@89F zbXj!~l1jCeIn`pBms~j<1`M) z(~}PB(>4a8Q;_o~8!&ZrIDo2GMNKu534_jY7(av(mKeyb*iZjRG8uc15QxB`MLyYq zO~5dT1Mp&Lg!9M!EYv17-N%8>Th&W4Gb`m#+K=Nj>zsUwTAIZeMX?OpHaymY6u3Xc z@RduG3k4ZuG`HDhqWB_F-u1QH&OUB7wrzGmJR;s)%s3u4j9l+;Zu`7#b-emKa=F*u z@%D2AWYro~EeO*^`sdHMm~crxN@u=xgOB0y8bv>qw43Kw49|C6O~ri{0?B&P_Oe1E z7IM~-vo)N=FWLj%osv0N_4z%{pyX8Og~O1WzARjp+@pQ3AK|EP{9?D=^p=#@58tiX zQ|E3w$P{nn>aBTWKoQH64H9Ipra={Jqag5F{5I{e@9n6MTgk7xuslqvV|0?|PQaDl4l(LE?E@RtYNp;(%W9l7Cfq!l)%ahs_T~pL^xS{C-vfBvLN6HFAgr(|T%;A@tlLK{fJ}+nSe&dFU z8m}|dvUg=3bOvNIY%Tlf_nn7zN(j7jsb`lj(I2|ZnIQag^^2w}9D)&T9A1Db)PEH4 z>4X5y(RSF1a@?eJCnu!97q^Ii8B5>Z#|e|8^|rdzmZ9bCB7s{2>RJClo{>}B*!IWM z`%QO5;Q(F~`mmJ+fH*%;yK9Sxj1mD83haQJ~NOnrHL< zFN`MRa9$M9EY<~^q|pfSrp#{-x6GX`bI~^P@^UuU1J{oqzg=|IE(TJHRg8_)>Gb`6 zGD_(vqwAC~whem(Z8xqTu)e5bsU@fe5~vjbhCd2Y7zj8`??QTBs{qYoJ-}*1-rnA3 zGN_?xao-LB0qbQDO@`*XfWSVMw;0v@>!0jUDQdv%l)VO#)qX&W$lDdEYFb4*J6JIC z<`S(A<7)eFjc9{-QeGsGFTrj2)d>~P17MBP^mq)7oiog6kXP)mB_yW#JiVg09>#O7 z#+G971<=e75h_-$pOa^fqZ^=eMb9?%#=&VNGXC&;Y;X?@B5p&+nc{cH zbnk9m5lu{vZvM4#J7S!z&csfERRF|SdWaVSZuboUE#gS2Hv(IN^KO0|F;ogFZUaKM zJ)km3GyuEEw2M`7k*W3d8aDNJS^ZHgdi%ULyBj1+Jmc(k;&xdR{k zG67}5D8Yu|C+H)n076vIpdohLhbS%JFp0u9t1`Mx#$$~_1r$s`3KOF6{bvVV4~4=4h`OLYa!eZKgeN9jgMTPM_BklL<)D!zqD!LD@;zC=aY{8! zBjY~axVdP84--K3L{x+8uU7zWy*2%%fTaDGZ#&3mxdK=_RCao_^yv1mGXVf0(bj;% z)CJ_580FLU+wgjhILtaIfGl$mWLK`k@A`S8v&m$&88x7%;>+yC5OWTjivgA(RP!6K z%3R_D9cSyyvNBv3i11w#S11qD!xhBIxoJj;RHQFozGsO~N?XnfZ(UeI>#d>DK`sbQ zctZIs#@@z^(yK}Nd#*K(`=iPAt>G6)mCD2z=Mh25y8~Swy%MDU%N*^Gyi}J8)c*AH z?tpHSr1`yW4l0N;Qvyta{vi<1#bX7(hh?H#cyIrD7d~ZAa0#lctbPs&KY@nFq1sUx zoeCUq8rz2;;!E);@3XBIUj2vWX!_3OXkld{-fnNVgZL=0>hM_BSHfxBrG;i=BRhfn zdmRqq`}mxmqEX>dwJ3kz>dq#bl=_Yt+*n~nM^x2pet39|gm9w?Zk{6{n|C`e$R+V6 zzg?Q)MP`;o)$4hJa4=wVEcyIIv7==F6_&&tXY5l1Li;cvF^)#wo3mw$7K1{F%ZmK~ zq~-OaoB;OG5h$pU57G!N#W_tr3AzxeJo)Yds5|ID>^fp@|Eq2!SfVdbJHRwqwsVj| zKwX8Hm845BB!;08W zQ>p~2U{4x}U93{xH&lo`Az9yL4jPLAF+AqO2hySj zsbRikXe3`y6R7e6RfM9UmgC*|5Hq#O0i>F)7|DLzgG7Qat}D{qJ1R>mn!aS`MZXaD z+VIAYI!=d0a~l&u>5@E9qybLM-$aqPJxdHE0s?BQVSHePX?x4R>vJ#>iMVGv$JaT_ zcc#7{Wz*8!Wb`=JmfzPmr8fqr12t8yQIhyBGgK)hF0(}ECBCQm^{oVwsUut%TpDR* zjAl0xmQxt7G_W$HBI%^-02ShPTb2D1pIY^tiCzr**K1-H9j1cv`Ee*D)YAs=4M93_ ze*^`_G*AEUeq(zgaR^DrMPOw-_seF zWsH(zw)fAwPpGAFS-=4yITrc1_LHe8Lhosk1sXg1RTFuIQi8NG4nJN|<`iD^vxk9G^G2AB+tXp97(+?sGtc@CKtL_4a&xX=^{MZ)DfSGrGsaNCkR0t3w10 z{*cFv$PkW-aWOe4nj(xr+A;Rq9Q)FaHbybGsJ3DYYMeD>4_pgUSda0kZphLuX>f$l z=V#H*1MH)-kTnBY5cMS)*breDabmBYrw-Yx@SAq1F!| zTQ~}wr_QV#2zld`OoVcuE@O=0Go`KK4#*7nQ_i3c`Qs=`AkL5Cc)L^WsLc$83p&>{ z6VseNBvFVEk07Yh0r!J1+4#LS)ctt2X&N2B_&W{9DfWky74;>7Bw4u6=9=bZiF8$? z%x^BPQKFI$X61f7qQ)g#PYG-O^r(#;Zc&*Z+;`33cX@aO7stS)l2_(fAHy8i*51sJ zov^Nwr3Li>7m0-pE5Zg7w#2=u+Ltk}%9gbSS!Ct&bH6P8jb0Y4UAcbwM;`2o_cJRZ zauSXKzg{~;8Fj8nz`b#Rw~dEicZ5%1hd18*%4vE3$1bILvgtgDnikT9P>65d%Sy?u zpDO}=^WjzYfLhhPUFI_cv+c(@p?RjI$_U*d?1cpG?tvl-y(e|O9?=2v9$HV#jBoDG zdAT+Nmd|i=_rxV*)`M;Xk@IT;P6*>wB(7K7Fjc$ofP={1J@m0uwTqeZ0K&ZAf84D* zUc8J=z>8T%7@_-p&owJQ$3A4{`Fo3d^#{-4y=)Pb|Mq1NM|&#l5e}Grn;wE*SDP=>KC**GA@KK5Ib;2KVWf zZHqY(v7KUPU_5Ny0iyaHoUteQs006UyX$A6-KS=%GB-c4V;s%lQt-@s9hsf0ROR5* zw_I86B-ZYeVW&&XLT<;+5<|FKds$i#vio7%b>`21fbY#Un}>PDL1S}2{NUkieL0OS zSw4zd7XGkuNOp?mVgb zwJP}L2=L8calkjDdsgW%K)-pe8Djq4i<=0^(aNQPH_U9EL%sLJGLWW767~ z|L&X@bLxb=oBA}r317CzY`(!2R#oy9SPQ?WA`0q)g78J=n-_`Qs&6H>mJj0_h_d2| zq;k${q8megAN$p)ss7JLBT876>HaA*TL`8Irg5@Mj@KIL_@vOoog*j5Pt8 z1w5J0H|}kPn1-3+g68&9^u8vc+w}enhy3U?)3)@Ij%a;aM5t8{xq!VWu;n2sX~mse-S_hVAgD zJR*cK>_kqkvMxoM8o~LR#`B}?(Go2TpBI)KwPvLO_nH1@B-r1g^EU@-X@9b!FJ*K` zxkpVf?H=Q3XM0(!J)6pROOnlzLYpN!y;|Vrh+!7}Hr1cE?sU?HNHVMnjil_brds z;GU~4L_?|D5@Sc~e(DVA>n}Jl=B}iQAfDe=Z2NbAD$R_q@(0;YA7WTw)cX(!z{OD? z7FP)2Eo$lFO8oh-B=04X7_}Y#Wt1(ClC5~9rOX!N8J2sOCPDBJmcGZmHBV#t9>)Dt z0?ac?z)-sVu`sAqMb|38@jb&R5pMk`ejjrQlZAej>W6$)4EfTZZ@0)Sx z4fyKvYFq`T^q@h?Ds+oI4S#7IrcYl{8M+GIteT#t^Gkm`=S?jZ zFXH#A9w0f~d-G8+6Lx-nep1pvLfg&8h=knqI<^_<9IOakGrIWaJg^@{=YKZPO{a~+ zN1W%EW;~Qz18P<%!ptKeznO`I*VI+54U`gu9Y`llt0v>KqBdqRVCN48Z*Aat7yru#T@b5tx~h3hqbNB zMHu-@)O@90ene(+!yNS%aQ*SiO~1T0z)f)Y8{AIwvtH{%f+jx7iBm7hhz_eF+1?wa zZeP{Lg!QSv5=>EJ-Lh4PCV>TZmA(9+p?6B?RU9`I1 zLn#d=QzmScYaRFb4A=QZTRca0l)47!f}bzXqnfB~ zz{*wg5WE|_A$55FE4{qc(>(i9?y4TA7=g^(uawz^)wYiDSZ^d;&@?1d0vDxbMGb+l z8Pg5=ezl8^5QX`iywpy3y|BaRiY!l?;jg{owde+mWI`A4%fGNENm1vg1U9&Ir#Lsh zO=spsUr-WVf1{B@H`mjYFWz`vA}V>;rd650y_L&A6;-* znge9DA8DM>^loWgA+9ybzk1+JBPucvf97>(kF;_ z%_ot9jV&O~yE-(Q(BC920Tim<&DX3Kv9*HqH932L5Ew25HDB@fKBfTs-zd4DXc^0#mQ1-DbnG;M6TY8kTv>>%ej?^x_ z(YYaYLfEy%F~*p&-XWGD$(*ExGp&Z?XJqPPlAGFY_m3&l_5 z4$KcrG19kI)h>U#h`hLil6j9lMxmEi9xye=Z#waD)}rzVQ_5}Mr4n6NK0-3V30p8q zsgtDF;@%R$hNfBd9wV&xMOqL$^gIa3V%3cbDyMX2hv=uRy+tLL7R=Ml%~Aet8PBkR zb(vGpHD?k;J(XQi;qWx~qQ(ik;<;{T+LITVD?Izym1mg!aTh6&5%C4XZzHoRpI_a(M;t0Bt9{;G{>qDFq{bkDVQV-l}aV)slBM53#E_1Cx`B@3T0KwQ_xIk9no?`amTdjCgZgr5r*NK38o zN6@7LOsCwlsjh8JbFQ5->(1m0W99&|S@dZ_Yj066%U4yTsf4EGzpvIzv=m~P+B01j z387r67#)&8v3;LmTk5u(s)AW*mVLFRPNUt~6uJhN79&LNgUi#DU?`o2Fq8 znDcQ3^Ab}%lORo58^Z{d2;E9=v@5I2=3W*ml6SsFgRHHejS1}7RJ2fR`lmi)oFjshg*9u%X9t)1r93-H3*aQ5hXDj+DLY?-fCaPrwN-? zdNdKkr`n>%BJo!R#5`CPSA%a^XCLqR;@8aLZRmNg?iBHF_ZGKqP;YyR#-=6sikFhh zZeH4#mS5(midS+N6$j`wzT35elLz*mUpfAi0Rxs$)HuU;F?$wvyM-81%;_rT2(AFZ zpSwQo0~N@lR8yRGc*-NqE4_g_o>tg0#R07)MV;6Cy}_A>XGjm#S&V> z{UcE#fzaXNcOkYTW<~ytH9m=CH!JFP-b@A(ES!hTEpSBwcVsZ5!?5$3E^KD;xODpgY2aMi zZjU-V=R5{;z~)^*c<5TJ4<6`a_QyAHjJYVFlZ+^N`4&8RFO&(NoCbf+4=50?J4)NM z!oaHU>3L3BRL_MM`|*a~BQWGi_B*EBqA2Wo5#$!jgn)M+YADkcWJq}1@ZCCZSu;n` zBe5p~COP9O*!6aZ^>Z_Yjo^6Bt^R;(ADFF-+~nx+A7M7kx?w}eU!!l>FXE&zA?o$V zm)!#^%F6Z@^duGMtpp0(GlGa8P2S>8E~Mf35=?|9&|v&hyuunRunO@aBWo61`4`wg zwOMkwr$Cs;%^RE?!G#f0WbC5;oPJ9Fe2go7g2zMo!*!RQW+!F`71NpsxWs+4pk5`< z(w34FJ$oai@OGqiYuyLlH0(&XNep^{4l-3nq}Q^H9Ky)_?GIcBr`d;Jo?A~5pC=Nr zXm`@f4gT_^fu&mEm*OMDOhWyoRgRL5?L>Hf%Uy&xpAqjku|Y@q?C(fr-I!F|M=LGr z_dlU}q(P*E)3CJPGNt?VTx5i6#IOFO65nV>eEZOLN8zpKP6?lT1j18oi3plyu5=g| zm6Qn=kW{a5e`+V>&+17jLg?YEP9ho{U4(A+GU72t+=@V0XCk3^O|Zlh-)u@>DThoB zeNw}+F@OqTZ00Zf@UTuNXv0}|yo{U&|rp0Zo1-lF5)3RbS zU5GQ=X&jFB(V2%ot#SF5SH(rB!Q9()Pc{pz3h$|Qy!JL1+S1k|om|0Zs7sbN8uA+` zdC|OV#qjmblIfQ@ztq-t>Yn7hR;KX zupnFa`ac^?_U4SFMc2RgvShSEtYW1Q>qEDi!_6y|?XZ}7{L*XzRAfyp=!^a!-1AWD;Rcc8hp2JUUDaqs z=*}PB;0YNLNWs7mtSQM#=}ffY_osN!!6#Vhm1g4#TMn-w+*>;9;JpO41JB}5u?RG- zfsdf`iz|JUem(j<*ltRl1Xo|4HZ)wJl!0)};I=s*P05x*gs#}W4|cnFHLI6Fzj)Q7 z`ByJ7F+&ngWU{sO=T-%;`!YwEZ~EtJ=zoAykY4KhFI5=eB&gwNGW1$Yze#43-hek^ zxUc#qbtl?@9e|qJv+xk5>|jC9RI*(HqCC3whmr$oxAizSNV}FgHScgqF*e;Y0>a5N za!FtAq~?BadV#74ylm9`a_clzyZA)8?|$YLg=T6HNZKZOgxX59caMam5*UC9&$FhZxxO_v8um%@*~(>2an zTfH-Gu6Bm~>~kTJe8}tC08c7CP0hIkh<~r9q{_hHbIdagcb*W512Od}&Vz4HC1Jta zV8rIb=z)(5LCE`GZ*$3g%bk5u)je&_tBO9QuZ2!0C2Z0OuKI1HE$A|EpO3M%;+7*> zMm%P#y?X^Q-Zj)2P?ob?%>M50{yt@<4jJ*abokArEzw{&IK~y62|bZlAbE+v&I>CO zLG65Ez(hO#QP8c5`|*Sn-0$Sc9>wQT`DP%97%-udThd7f4zgI9AN(4^`!sr2;rWpl z*ib}QCKtI!Al(FwPxFk|geigmH1Uu10v7&=?)eX}8YmcI{#gx|e)n#nyTp?k)bTE7 zuc32RDm%^zZtE5>b)g>I9MePfy)0FeSfLk|998#m2{M9fWs)vo%K{+_^OF{U!PH?b69 zs3uX5dWoUm9B;00#lm-tEl;MEj4SlvTpOvjPttnlDYp~HEDdZm#F5L^($=c?Q)ov^ zmBQycVB4)WyOT6aHp9N)=i)|twdf@LJyXUGr68MW8=qpaWg1tvB@dZsz0?z}M>%&b z2zx`>zpxqbYJ7NjH?a!eP+<~rWODVI?;N{(>3fdtGgf^1&;Y%Y`WBA#n->d2Rh%wx z8O7^aOsLvm!AZI67Wb*yMc2xG&rH;o>%2JlO|onfE!>SPX~X=X%6c^6EE)v-q=o3d zQdKOA&`iM!USRht5$LGjSdVE4A2A}*YfB_a|FKL9a)(a8WMwp1zs!Sw*Kc${ulSqe z!p$WTGP|hjJmloxJ&NW(a?NZw!2Ra~wLKszkef)Xl(;hUU10a-LQ66w6jlZY!J@4JBf&~6QfXOZ`y|8X8E&8< zRU7)_SoJsdDt}kHu)$f=WVicZ_?1MvKh)6$Ob!U28GI5oB~-c$b)r=7*&N{Xdl6QF z!4Px~3t|CwxtPfaYL{7VK3|^8zJORvst4k}J^%SX9Z)xRXzu(bG~!OsyCj)Xf4z`pOJDgG-AG$xEzOjqu}DK-54j+ip(S9NyD zk3T0l50;x?7|n5^u4Ry3H?Rm8MSm@VROg(@+Zs^2)hyy?US43+IM}fqW9Kp9Kgi4^ zj1OMNWs2S7*Ry_Y-9Zm(r zndx@a5yb4C-MqISr+O4!qpEUn8Px}SZ-kXTqg#C}%c=X}diFz>rVR7&|4uRaR@sRb z&b*OJnIZ*_Ld5&UBPLB)&>A=wPpXpmSWy2DSR|cKlsI#BUiUTgb#yXC~ zbpfSME}$buArU~aKKN0lGvNMtoA+_yyOharFObs(O}`qeeW@~vZ3Va=AdQ{_a7Qd} zq)N@xEYYTeqh10JXEfn!WsB@BzE`nYA8hjLTwkQ~&tk_TFM zR&b7u7SYTG5sWF>te`;}50O!i;Ii9eR~x*id9>`*Nbu`E3Z7kJ zUY;VJ?~@v3;jg(ux{@@WMS&t@<{$;uQc32|4#?@u_FhGWl75twSnM%5*;hecW}U$} zPBRcx3I~~EQ5KJ&w~Xu9A>_Xh(qQn-;Z%cAg;HVsQ|klneVrCs2%&htogzSs`-Uz& zASRph-}-TV#>q@gAY)B#Ru)b`IgAMhi$VwonpIk^UrmLqH9Yu#Ud07_i?X-SN(^eN z6YP3#qrH>vIUU{e0D2sI=tJK!!06+hg3Q!hpdMn03co)tsX{@-W)K8sXpRY0|39C^ z1-ph|=VSAKfwyhjo=0q|I`qB;1-IJ3S_LuyB_!)b4IF2^%Q2`zQC&cN7x`xS1TcnP zYfV$I{?kQ8`kKJUfEBlgt2Jz6AZKGqZ8{sx|Dw7OT<6(D*bSc2O#*_Dtg}r|LmZZj z&)Jy5$ecj9X-_t&;YKkx7_J|eBPA>wz`HL@1Oi$2OtZM>d2 znq>>>-uc1TU_XHbq-$bZ5O~_^=TNdrdsF=p6h(IofPO7&2PRPIA?+TGiU$&#G1Hr$ zFsuE^L8g=U zD+0yf@|hzRnvhr=9&)HKNEBUi;QhJ&7uWj_3RFM5X-0`N-ABIxamo1ldOkOl0ia}) z=&9L?!EVXSE7+?-M^Nt+eDS{6o_W@CBR_@%kM7#qd;9x$N>NW5vkt%9F=o?jeDv$9 zi9}Dn0B#*F++XUVShP%SdR1Z|pzvE9p!2N)5(pl) zoye;q#SgTkS$jaUeED^AUuZVfMtuUc*%bcwA4iGdBVwl**`PiZluHJ5Mf!mPB$w}* z-5BbGj_|#xM;l+F;-|O??wJpiij^)(C%+YEH3t+oF0#B9aSN2){XyBd{0Wf3#snyC z;VVUBrQa_kt&_L^3_w+?=9A76l{vFhO?~Z8g6o_6&)}rLd4OVgSAUW;`gDZSrz2PP zr#^qWI=SDesQv~7Ec)Atn;}4EjMLO<%j=9c8iKV8lTlOypU`qgqEIfOCHa|n8Y3zH>k5w`;h8hm@u2e6}7==n64l+%z(-sTdBj}3Y%_3E4XBa;1~eCF3QnsuY@ z`=Y4*rYxtBzq?S}Y#4g&z9zGo3mFPeo#Gl(Q_*(KC=MQ;W(<{e>6&aFmm>clI1RQQ z!I_3LwGsmp4@1Vs2^3B>{|T8U*(f|xw+EoHV>x^K{R3SOiblp+r&W~wqa0cA>UsXu z4>ImHP%RGMrV*@@o+hAUPEhX`Eb=FEr3jaySwP?;5;6CTZ76j=-xaHx-U_`h`v z9OM0vvbO+o{WnQXcc=xO=b1w2LREi~ZCxwFqn_0&lTCDE@`Y${iuo}hLBpDPYlxq} zJ9%%br539={w`-22ZAL^K$seXll`a!SGEP90k@%GsgL7+nEWw5+f_;I(PQ;37Wb{9 zLKP6Y$^)z}u^z{~%ydl7ZMogg_P%@!407{<;IHkaqgzknXqp$C$GXRv6L5P!U1!(V zpemUW+AB`1@EPH8Ln)|uKO^k2o-R0A2k=shYt&ir%}LiW1N$=bGxZ#SHasz!E z|5Qr5{!*ar?3*%D9DHhjhim<-KeXO^N^d)k|&AiW|-uaO#q(?ZK5w6 zBGO)45mnszcz3FiXYvPBA-9}N7@7bo++k0O8?u30gMUdyy7E0L%gK9xg0pU=D42Zq zW#|wm=GACB>5Fkm>dLXDAIsw{zGQ4PadhFAfc``Pj}8=UaYmkZ;6(t~zi;fMEyY@( zjgMc(rTL6-=Nw|j>3o2MNe0l==eP5o_Ci4Nh)eCP8_~Z{eqw#{TB}55qV#NOONNPz zyHL|_v8dZHxQ=Y`<t_N4}73xtorVas6$2VHz@f0U`rAwB{{s)XLigG5XjFmqfB(t_jYLVgX2zlZee$1|caeg& rL}Z@EC;qQr|NoCg`2T8TgCCJ^u@cU*8|pD&z#k Date: Fri, 16 Dec 2022 18:53:36 +0000 Subject: [PATCH 23/49] Sync overlayed axis when main axis redraw --- src/plots/cartesian/axes.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index e8769de944a..6e80720927f 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -2291,6 +2291,17 @@ axes.draw = function(gd, arg, opts) { fullLayout._infolayer.select('.g-' + ya._id + 'title').remove(); } }); + } else if(arg && arg.length === 1) { + fullLayout._paper.selectAll('g.subplot').each(function(d) { + var id = d[0]; + var plotinfo = fullLayout._plots[id]; + if(plotinfo) { + var ya = plotinfo.yaxis; + if(ya.overlaying === arg[0]) { + arg.push(ya._id); + } + } + }); } var axList = (!arg || arg === 'redraw') ? axes.listIds(gd) : arg; From 92281afef3eff07adb1c4a2c0e1b1ef9277ebd4a Mon Sep 17 00:00:00 2001 From: Santiago Date: Fri, 16 Dec 2022 19:07:28 +0000 Subject: [PATCH 24/49] Fix validation for redraw --- src/plots/cartesian/axes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 6e80720927f..0948cbd1a71 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -2297,7 +2297,7 @@ axes.draw = function(gd, arg, opts) { var plotinfo = fullLayout._plots[id]; if(plotinfo) { var ya = plotinfo.yaxis; - if(ya.overlaying === arg[0]) { + if(ya.tickmode === 'sync' && ya.overlaying === arg[0]) { arg.push(ya._id); } } From 8ddfcc3f22e417c4740d49d3d43d5ed1c38d4d56 Mon Sep 17 00:00:00 2001 From: Santiago Date: Wed, 21 Dec 2022 17:18:52 +0000 Subject: [PATCH 25/49] Reorder axes with dependency tickmode sync --- src/plots/cartesian/axes.js | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 0948cbd1a71..032f86eeb63 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -2296,16 +2296,35 @@ axes.draw = function(gd, arg, opts) { var id = d[0]; var plotinfo = fullLayout._plots[id]; if(plotinfo) { + var xa = plotinfo.xaxis; var ya = plotinfo.yaxis; - if(ya.tickmode === 'sync' && ya.overlaying === arg[0]) { - arg.push(ya._id); - } + isSyncAxis(xa, arg[0]); + isSyncAxis(ya, arg[0]); } }); } + function isSyncAxis(ax, idToValidate) { + if(ax.tickmode === 'sync' && ax.overlaying === idToValidate) { + arg.push(ax._id); + } + } + var axList = (!arg || arg === 'redraw') ? axes.listIds(gd) : arg; + // order axes that have dependency to other axes + axList.map(function(axId) { + var ax = axes.getFromId(gd, axId); + + if(ax.tickmode === 'sync' && ax.overlaying) { + var overlayingIndex = axList.findIndex(function(axis) {return axis === ax.overlaying;}); + + if(overlayingIndex >= 0) { + axList.unshift(axList.splice(overlayingIndex, 1).shift()); + } + } + }); + return Lib.syncOrAsync(axList.map(function(axId) { return function() { if(!axId) return; From 25d015ce71edbcc159f4d6172bc8786d192b11ca Mon Sep 17 00:00:00 2001 From: Santiago Date: Fri, 23 Dec 2022 16:05:03 +0000 Subject: [PATCH 26/49] Renamed sync axes function --- src/plots/cartesian/axes.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 032f86eeb63..54541145f9e 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -2298,13 +2298,13 @@ axes.draw = function(gd, arg, opts) { if(plotinfo) { var xa = plotinfo.xaxis; var ya = plotinfo.yaxis; - isSyncAxis(xa, arg[0]); - isSyncAxis(ya, arg[0]); + addSyncAxis(xa, arg[0]); + addSyncAxis(ya, arg[0]); } }); } - function isSyncAxis(ax, idToValidate) { + function addSyncAxis(ax, idToValidate) { if(ax.tickmode === 'sync' && ax.overlaying === idToValidate) { arg.push(ax._id); } From 3a87dd4897151b5be9bc64f3016c9db8bb6dba62 Mon Sep 17 00:00:00 2001 From: Santiago Date: Fri, 23 Dec 2022 16:40:33 +0000 Subject: [PATCH 27/49] Add test for tickmode sync xAxes --- test/image/mocks/z-new_tickmode_sync.json | 52 ++++++++++++++--------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/test/image/mocks/z-new_tickmode_sync.json b/test/image/mocks/z-new_tickmode_sync.json index 804ca5f365c..c66965b4509 100644 --- a/test/image/mocks/z-new_tickmode_sync.json +++ b/test/image/mocks/z-new_tickmode_sync.json @@ -22,20 +22,17 @@ "name": "Oranges", "type": "scatter", "x": [ - "Jan", - "Feb", - "Mar", - "Apr", - "May" - ], - "y": [ - -0.8, - 0.09, - 0.01, - 0.13, - 0.42 - ], - "yaxis": "y2" + "A", + "B", + "C" + ], + "y": [ + 0, + 0.5, + 1 + ], + "yaxis": "y2", + "xaxis": "x2" } ], "layout": { @@ -46,10 +43,19 @@ "l": 70 }, "width": 700, - "legend": { - "orientation": "h", - "x": 0.6, - "y": 1.1 + "showlegend": false, + "xaxis": { + "autorange": "true" + }, + "xaxis2": { + "anchor": "y2", + "side": "top", + "overlaying": "x", + "tickmode": "sync", + "domain": [ + 0.52, + 1 + ] }, "yaxis": { "title": { @@ -60,7 +66,9 @@ 0, 2506 ], - "minor": { "showgrid": true } + "minor": { + "showgrid": true + } }, "yaxis2": { "title": { @@ -73,8 +81,10 @@ ], "overlaying": "y", "tickmode": "sync", - "minor": { "showgrid": true }, + "minor": { + "showgrid": true + }, "zeroline": false } } -} +} \ No newline at end of file From 179dd5b577c06b2e9ab400a160d8c57d9f8e6dfd Mon Sep 17 00:00:00 2001 From: Santiago Date: Fri, 23 Dec 2022 22:19:40 +0000 Subject: [PATCH 28/49] Sync overlayed axis relayout --- src/plots/cartesian/dragbox.js | 8 ++++++++ test/image/mocks/z-new_tickmode_sync.json | 5 +---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/plots/cartesian/dragbox.js b/src/plots/cartesian/dragbox.js index dbe068226a7..ab22e67ba13 100644 --- a/src/plots/cartesian/dragbox.js +++ b/src/plots/cartesian/dragbox.js @@ -726,16 +726,24 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) { if(!axList[i].fixedrange) activeAxIds.push(axList[i]._id); } } + + function pushActiveAxIdsSynced(axList, axisType) { + for(i = 0; i < axList.length; i++) { + if(!axList[i].fixedrange && axList[i][axisType]) {activeAxIds.push(axList[i][axisType]._id);} + } + } if(editX) { pushActiveAxIds(xaxes); pushActiveAxIds(links.xaxes); pushActiveAxIds(matches.xaxes); + pushActiveAxIdsSynced(plotinfo.overlays, 'xaxis'); } if(editY) { pushActiveAxIds(yaxes); pushActiveAxIds(links.yaxes); pushActiveAxIds(matches.yaxes); + pushActiveAxIdsSynced(plotinfo.overlays, 'yaxis'); } updates = {}; diff --git a/test/image/mocks/z-new_tickmode_sync.json b/test/image/mocks/z-new_tickmode_sync.json index c66965b4509..fbec90a5ce9 100644 --- a/test/image/mocks/z-new_tickmode_sync.json +++ b/test/image/mocks/z-new_tickmode_sync.json @@ -44,9 +44,6 @@ }, "width": 700, "showlegend": false, - "xaxis": { - "autorange": "true" - }, "xaxis2": { "anchor": "y2", "side": "top", @@ -87,4 +84,4 @@ "zeroline": false } } -} \ No newline at end of file +} From a08766bcab6bfd04970c42ef29e4ad7873f6b55a Mon Sep 17 00:00:00 2001 From: Santiago Date: Fri, 23 Dec 2022 22:53:24 +0000 Subject: [PATCH 29/49] Update baseline image z-new_tickmode_sync --- src/plots/cartesian/dragbox.js | 2 +- test/image/baselines/z-new_tickmode_sync.png | Bin 37176 -> 32349 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/dragbox.js b/src/plots/cartesian/dragbox.js index ab22e67ba13..1e4b889c152 100644 --- a/src/plots/cartesian/dragbox.js +++ b/src/plots/cartesian/dragbox.js @@ -726,7 +726,7 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) { if(!axList[i].fixedrange) activeAxIds.push(axList[i]._id); } } - + function pushActiveAxIdsSynced(axList, axisType) { for(i = 0; i < axList.length; i++) { if(!axList[i].fixedrange && axList[i][axisType]) {activeAxIds.push(axList[i][axisType]._id);} diff --git a/test/image/baselines/z-new_tickmode_sync.png b/test/image/baselines/z-new_tickmode_sync.png index 7489abb4c2ba31d7e8b05b113edb9cc6fe641ef6..d506b64095290baf078e6eda37a0810d5deee1b3 100644 GIT binary patch literal 32349 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 LO5>T@In4h9`7O=f literal 37176 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 Q3kLit$f&-kmNE_fUtL1?V*mgE From 5afad5e95bb8df15c31bb0cc4364ed1fd5234910 Mon Sep 17 00:00:00 2001 From: Santiago Date: Sat, 24 Dec 2022 10:32:34 +0000 Subject: [PATCH 30/49] Remove unused tickmode sync logic --- src/plots/cartesian/axes.js | 31 +------------------------------ 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index bb27d1171e3..511257e8616 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -2291,40 +2291,10 @@ axes.draw = function(gd, arg, opts) { fullLayout._infolayer.select('.g-' + ya._id + 'title').remove(); } }); - } else if(arg && arg.length === 1) { - fullLayout._paper.selectAll('g.subplot').each(function(d) { - var id = d[0]; - var plotinfo = fullLayout._plots[id]; - if(plotinfo) { - var xa = plotinfo.xaxis; - var ya = plotinfo.yaxis; - addSyncAxis(xa, arg[0]); - addSyncAxis(ya, arg[0]); - } - }); - } - - function addSyncAxis(ax, idToValidate) { - if(ax.tickmode === 'sync' && ax.overlaying === idToValidate) { - arg.push(ax._id); - } } var axList = (!arg || arg === 'redraw') ? axes.listIds(gd) : arg; - // order axes that have dependency to other axes - axList.map(function(axId) { - var ax = axes.getFromId(gd, axId); - - if(ax.tickmode === 'sync' && ax.overlaying) { - var overlayingIndex = axList.findIndex(function(axis) {return axis === ax.overlaying;}); - - if(overlayingIndex >= 0) { - axList.unshift(axList.splice(overlayingIndex, 1).shift()); - } - } - }); - var fullAxList = axes.list(gd); // Get the list of the overlaying axis for all 'shift' axes var overlayingShiftedAx = fullAxList.filter(function(ax) { @@ -2333,6 +2303,7 @@ axes.draw = function(gd, arg, opts) { return ax.overlaying; }); + var axShifts = {'false': {'left': 0, 'right': 0}}; return Lib.syncOrAsync(axList.map(function(axId) { From 7a9f1e7baae1eaee3ad5e8e4d8dbd2820dc8cd4c Mon Sep 17 00:00:00 2001 From: Santiago Date: Mon, 26 Dec 2022 18:50:58 +0000 Subject: [PATCH 31/49] Reorder axes with dependency tickmode sync --- src/plots/cartesian/axes.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 511257e8616..a34668d2f09 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -2303,6 +2303,18 @@ axes.draw = function(gd, arg, opts) { return ax.overlaying; }); + // order axes that have dependency to other axes + axList.map(function(axId) { + var ax = axes.getFromId(gd, axId); + + if(ax.tickmode === 'sync' && ax.overlaying) { + var overlayingIndex = axList.findIndex(function(axis) {return axis === ax.overlaying;}); + + if(overlayingIndex >= 0) { + axList.unshift(axList.splice(overlayingIndex, 1).shift()); + } + } + }); var axShifts = {'false': {'left': 0, 'right': 0}}; From 16aa4be55a823e9b58cf700b510e09ed3dc6469b Mon Sep 17 00:00:00 2001 From: Santiago Date: Mon, 26 Dec 2022 19:16:28 +0000 Subject: [PATCH 32/49] Lint error fix --- src/plots/cartesian/axes.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index a34668d2f09..1edfc436b0e 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -2306,10 +2306,10 @@ axes.draw = function(gd, arg, opts) { // order axes that have dependency to other axes axList.map(function(axId) { var ax = axes.getFromId(gd, axId); - + if(ax.tickmode === 'sync' && ax.overlaying) { var overlayingIndex = axList.findIndex(function(axis) {return axis === ax.overlaying;}); - + if(overlayingIndex >= 0) { axList.unshift(axList.splice(overlayingIndex, 1).shift()); } From 74509ef2e10d397a3710f8de6243dbebf991668c Mon Sep 17 00:00:00 2001 From: Santiago Date: Tue, 3 Jan 2023 18:18:24 +0000 Subject: [PATCH 33/49] Fix gridcolor for tickmode sync --- src/plots/cartesian/axes.js | 39 ++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 1edfc436b0e..493a089cf1f 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -1210,20 +1210,31 @@ axes.calcTicks = function calcTicks(ax, opts) { return ticksOut; }; +function filterRangeBreaks(ax, ticksOut){ + if(ax.rangebreaks) { + // remove ticks falling inside rangebreaks + ticksOut = ticksOut.filter(function(d) { + return ax.maskBreaks(d.x) !== BADNUM; + }); + } + + return ticksOut; +} + function syncTicks(ax) { // get the overlaying axis var baseAxis = ax._mainAxis; var ticksOut = []; - if(baseAxis && baseAxis._vals) { + if(baseAxis._vals) { for(var i = 0; i < baseAxis._vals.length; i++) { // get the position of the every tick var pos = baseAxis.l2p(baseAxis._vals[i].x); // get the tick for the current axis based on position var vali = ax.p2l(pos); - var val1 = ax.p2l(pos - 0.5); - var val2 = ax.p2l(pos + 0.5); + var val1 = ax.p2l(pos - 0.2); + var val2 = ax.p2l(pos + 0.2); var d = 1 + Math.round(Math.log10(Math.abs(val2 - val1))); var e = Math.pow(10, -d); var valR = Math.round(vali * e) / e; @@ -1241,12 +1252,8 @@ function syncTicks(ax) { } } - if(ax.rangebreaks) { - // remove ticks falling inside rangebreaks - ticksOut = ticksOut.filter(function(d) { - return ax.maskBreaks(d.x) !== BADNUM; - }); - } + ticksOut = filterRangeBreaks(ax, ticksOut); + return ticksOut; } @@ -1296,12 +1303,7 @@ function arrayTicks(ax) { } } - if(ax.rangebreaks) { - // remove ticks falling inside rangebreaks - ticksOut = ticksOut.filter(function(d) { - return ax.maskBreaks(d.x) !== BADNUM; - }); - } + ticksOut = filterRangeBreaks(ax, ticksOut); return ticksOut; } @@ -3306,9 +3308,14 @@ axes.drawTicks = function(gd, ax, opts) { axes.drawGrid = function(gd, ax, opts) { opts = opts || {}; + if(ax.tickmode === 'sync'){ + // for tickmode sync we use the overlaying axis grid + return; + } + var cls = ax._id + 'grid'; - var hasMinor = ax.minor && ax.minor.showgrid && ax.tickmode !== 'sync'; + var hasMinor = ax.minor && ax.minor.showgrid; var minorVals = hasMinor ? opts.vals.filter(function(d) { return d.minor; }) : []; var majorVals = ax.showgrid ? opts.vals.filter(function(d) { return !d.minor; }) : []; From 43e17debe846bd2c0750fa76e01ad3a4fb14d998 Mon Sep 17 00:00:00 2001 From: Santiago Date: Tue, 3 Jan 2023 18:32:59 +0000 Subject: [PATCH 34/49] Update baseline image for tickmode sync --- src/plots/cartesian/axes.js | 4 ++-- test/image/baselines/z-new_tickmode_sync.png | Bin 32349 -> 29563 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 493a089cf1f..d9bb64b51be 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -1210,7 +1210,7 @@ axes.calcTicks = function calcTicks(ax, opts) { return ticksOut; }; -function filterRangeBreaks(ax, ticksOut){ +function filterRangeBreaks(ax, ticksOut) { if(ax.rangebreaks) { // remove ticks falling inside rangebreaks ticksOut = ticksOut.filter(function(d) { @@ -3308,7 +3308,7 @@ axes.drawTicks = function(gd, ax, opts) { axes.drawGrid = function(gd, ax, opts) { opts = opts || {}; - if(ax.tickmode === 'sync'){ + if(ax.tickmode === 'sync') { // for tickmode sync we use the overlaying axis grid return; } diff --git a/test/image/baselines/z-new_tickmode_sync.png b/test/image/baselines/z-new_tickmode_sync.png index d506b64095290baf078e6eda37a0810d5deee1b3..34175a66dac40ddd531613fac566eadd49af7d7f 100644 GIT binary patch literal 29563 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 LO5>T@In4h9`7O=f From 45616b4b5bee5335c7cf26f3193a508a3762b14b Mon Sep 17 00:00:00 2001 From: Santiago Date: Tue, 3 Jan 2023 19:43:29 +0000 Subject: [PATCH 35/49] z-new_tickmode_sync.json adjustments --- test/image/mocks/z-new_tickmode_sync.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/image/mocks/z-new_tickmode_sync.json b/test/image/mocks/z-new_tickmode_sync.json index fbec90a5ce9..2f2d75b930e 100644 --- a/test/image/mocks/z-new_tickmode_sync.json +++ b/test/image/mocks/z-new_tickmode_sync.json @@ -63,6 +63,8 @@ 0, 2506 ], + "ticklen": 10, + "tickwidth": 3, "minor": { "showgrid": true } @@ -74,8 +76,10 @@ "side": "right", "range": [ 0, - 0.42 + 0.5 ], + "ticklen": 10, + "tickwidth": 3, "overlaying": "y", "tickmode": "sync", "minor": { From 30ebad1ca32c1961575e451e28b0c36eb91dc9af Mon Sep 17 00:00:00 2001 From: Santiago Date: Tue, 3 Jan 2023 19:57:51 +0000 Subject: [PATCH 36/49] Update baseline image for tickmode sync --- test/image/baselines/z-new_tickmode_sync.png | Bin 29563 -> 33682 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/z-new_tickmode_sync.png b/test/image/baselines/z-new_tickmode_sync.png index 34175a66dac40ddd531613fac566eadd49af7d7f..fd0c4a9c14393535118498527e75281bc08814dc 100644 GIT binary patch literal 33682 zcmeFZg;&;F^9M?I2q>K*p$Ld{gD5DiAl;yJNq3ht2m;bbx1@9z?I0>%{ljF?;sRXFfBtgXCo;urWw6;Nak}Up#;M3JwmT4h|0f01XBF zms!<|SvWXqxED`F6&4;gwcyMZ>%0X=E0|i|K|_*2=V{_=>MxCAeuppkB|S>)zz#YF1XyX`ipF@ z6<0W9bJMJ?y}fy5e=fnasM!-9G2+7qgV|J#Mc#eGZ3A|X!`_s=i%*sf&E2exAwO#! zXo<1z^74{|3+$npj1`$*LWo71;j%JV(&y#$-DDF zF~`&G^l;9h@s#3$Qi0JnWYtXt%+lJjm>7L=anvYwu287Pso^;1XEc-*YU6F=c+Zea z<4&HlB%8yQ#*akap}9zYT7l)h87G5_&7{WNh0cZfU{>*Bt@=$0wEFM_IAqJ=)lH{4 z?TbAk+s*NTTXh5svTc~Gbvk__8mrKF?4#jag*bLY9G05ZyS5vnJ$@XUM346k8xxb( z*nnitGBY!E2S2~aQ7y}=M@&09Mxg&03}X zh~+?qbDGNIY#^>R|J_8YD5Ai{@j^#FFXah=&c#9BOJmB%K-SvbvCO3gUHFQHY9ljV z{iiwT@;l<8z3xOTnl;05N4ZGRe8a9Yr(3nSf-Z;Uuu+eHFi8LY{o8T7{;0&_C*O}` z!Kr_i8gthrVY>u`;^|AbA;$x4Km7D^Gx@W=SBTfavE=vma*!c?C zI9rXE?k>EtmipqJ-rR2)p_HqTW}i4NbJDjz;;dscGQ>k4FCXNMEeIUYTV?4yU}S7c z;5039+|^s4`m_0J@2hpXU;JK?KbK`zGo7jX%64b7cDsRnwCvu!d*iIs&g5+H-ALP6 zGM{!%Hj2q?@K~!M2>QYU8^w(?XgbF`bMoBToeOLir^zl`y!Bt+U0$5WJ%01PG`t|e zRp{N~x1rOBBF$PtOd=Lv=byu$Ul3qX3dG5=TslbQjLnSXD@z36Q1sTk7%kQg4;Q|O zbJ-Ku;9J(VS|)!oVl^^t3iWMJDpXtM7YoJ%=XF;+YXtd6iqcx(_jt`(dlJ$)a633E zmlZAfN9N5lMICQ9RLBRX#Rw_54ij4B=H{-XPLvtq`r}YIkFsJ|HvG;yoT^o&cN|g3 z1u}<3NwKh1DwA?skk2@8FpDi7ZvC7Zr#&3wPLmWr+WN_6)KAS}Hhv4}Mr&^pf2b)g z1)r}3mD{l6`&_PhWp3-AHFjxAZ}WpPp z$NH679+!jzWLZp;i@s#SV!ZS{W*}3FXkpEAfM6!wW`urV{l(J3+E8fYD}-u=Y}pP= zvwWq($6Rx)YMz-|bHYc{HX8l<*|m`kQGZ;E$`cW{w&(T8ED7^DqXFc+?~vS14tTp$ zVwjXkEmwY3(q$2PE4yuN2Qef!F%{S8iM*ay?#X}IsCx!3bAXyzrdFrrboIb-;S<3w zX1?K%3d6Q&6?%enbnVC9@A=N$8zXt>e1pTRR`~Kdj|HB4BHjFH3PVaC;9tkCajq?z zsms^z45LtKaOEAA;O`ZfaX&S$+wbKM3=i-8y^<0Rw291os&a%fddXYaJd{(f4XxaA zb|%gtKMdS`VuJ4@eYedjpiw93!|NmY){rKzGRh2GGOi!T%wmG?!SdLE-rAGaOghME zsvmq-Id|X*NEplGI$W8}A$H<>sgvZ00XT0TcW5gj|tjVQmk1 zpx-_^^E_t-3nv$afOU!8bIxX51?Nf2&c1(O`-=0YV!dbzpWV8u#_*IKRQ~0}%M>#u zs`6KQUyX;d)b`61cODq6cQbT#b)ghQ;c%MkjuxnPXw3easv@(Ie2)V?;HIT*y;Wz@ z9XVR4orE;qZf^S?%^x#YZLkdWg(fqwJ1*{qF)S zB!w-X%dM9CYFDzQCPW%m7<+yo8`*=P|{9n?O{cl z=Sf^lZ@?RG<-*6xpG5N84mQS$6~#^FCcKd`cg~My$;NJ*mlr3)nNu|cfH*EP}j{L!zz_eIuPYCmPbj(JwCv)II4e9IBcd0Xt=fV0;WlTH8 zF(MiQw=m$KHE<3xNWBXf*4Bp{A_y$Bw?b!LDoBkS_=<;;l9UgNBTP(8JeQMWjhO*Q z9cy&|n5IKgT6cNr_mXC+mBJ=j8O2j zfUn_Xok{-{6j%7nlc}h>WjsKc*+?N^QdWPa&Z*;U>XSuH*YghviakC^lC&btOdcN9 zYCHbkO=pB6qq3r$W5$ZZ7ZgV`F08}D@^(3_Be{03OeS+C zZIla(Uj>|e&rYx>-MamLM=8YC+~SUVaTct#DwV z^L7yfY`K`#N;^eA;Dl7+hU+M*J#qz%)UJ&gV=Nppt0mSL@UAh9$Qt(@N1jxCRD;u^ z>UY4jdP(8be>0j$bGM5p()+8uYgfP8={41=mM?sP(*LeNz~IkVk#H$Hd&^dWVB+8E zO?KW6V|qGHeDXBt#AhTCDyo!^nXjR;{LUUFwO14x*ugAW5q_Ohrzg?+9Tr7XZnEmM zd;y(551Nh(y?lmHziG69#-FdE0n~^Obo3sANyKoR)BEU~yN>;w zA@A-EN@_>wo|UoJl{HJ12J(G#cOG39CXy80F|?Uy6rMh0USuwCxkHQ1gI9+aA##m_ z+M*MsJ-wBMYKv~wohrdw+B0k9j9%)e>Tx=i+{ok>Aw0%R$)nwS3^3{S6)hlJQsc(G zr1~a^R34APv3egjhVc5-S^(NtN60%nJ1e2td+I`9#BE4+NGW8pP0ev6ME4aV7J526 zt<>Wd+EHJPOW%4rXW+|nj_8ehac8IF89P=n4TurE-Vp#p%X&mCOYZ4i?x-=qhc87I=z8zMK9rNd(5jGUF1sIbj@++@)o&Xp@ciba z0^fs^QXF@TjE0@O;ZUTvL${(%t4gYxdFnP{(?>?!s2h2ugQ3XoaA_^x17q(^*d{`H z&I#j2&~~U$Ynb6pDn0}}$Gi@du3;est1Sjh>7@B&cN%^oj@RDK86sWX^A`~Lqa;M& zsNT&jw98V%7Wqs9eWsWTzPJ)`9^X@x-z)E9H{xetW3I%EmkMDf64Kg4g3YaJ8v?;b z_L>OAAj;z;L+7BP!wtV#EO+z$FnO+D(1)ff+d1^bD^yZsQBl zjE8sq0+-{&Z*}>~$>@*fvBO3b>+;%^gz2bFB~hJf3LI+%TwOzppaW|jEpF(|BK58@ zBX5M})gpTjy&be{s7)FA?;#rTDp3;O+{m^M;Ao_+-#y~ThpBQxA@X)nd(+-Qi=WBb zlxN%by(XjUOGKRoq6Gc-(LNKAaLC23qh?Hw`(f~`!%P}Ev0PNoUqlByyEz#)aLd#Y zUNz2A*^HCR%OU(?uhQS1%W&pfxmElsDqqKV_LDi0%yi8_;Ay7-Ox+O#M<;qc_@oi; zL4**{(b2as`9cEkJ4$&f%FEwE5lWs%LdazoZb>fCVDL>h$6802R+L$e-*mo3Y ziahtDikI(fCG#ZZp6u}8=KFqWSj)B%@|6dnECxh@a6=b0>QtZUxL_QX&#+A`iu;LXAglFDby>O49+r9fcnqe zbYSlHAAP30U~|Ws(K^~RB4>@Edb_8NooeLJdzkiLS*W-tp59}(e{iI;!&H8ATzsct z0C~KTG-nLiDCIt`|INJ8G$PHW7;i}j;$g$to6$Jp7NBZLA>u!P_YsEO-zo2_FPk`k zE@h=<(OheYxJz?BVcr`qU*W`W@Uk10-bWYNMFSYX5qb1JH#aF^DpQ~0S$Qcl!2YOM1Be4t=G6c+}B zxm1>30dcEEEpfOnpUv67gzZH9=QBR=*-+$Ass-#b_Vhx?xe39J2|qOpJaIWej`LRm ztQ!$NN&nvEbAykoZH_fjd~V>{;B%JL-#Y5V;}C^YE!DVKl^Y4g4f&XXf% zg!RgSPHyKXF!E=K8Ul6hwyv;Y&4e)1RDme6w}+3GKUk!ecdF!Q=jAKBdl69@$lWKL z_~o}I`mOT=T29xP7^~Oi&}^NUz63jQ!Qh0EG_{bBmi~5uO{n)6-(h(HI=rlLgq*LE z0_hhacr6onM>mmK=B8(Mi|~IIoe37r+%C7kccq-(O8;}|g&c3BRgws#wRArfQR&Km zd2(GlZ0ETroX}?#;LauOWg7 z1h4klOIGCt5NvV-;s5w-*FR_?6&swW`72S00+`Q`n|aslV&E|+K|g%svPJ()%mpT{ zc!5k&3S39AfKxZ}cD}h+@de8CIO6jpda6e^=F8|Am@VJ7pM(kKSrn=iceYd!9t>W?nhD`i-~4IWZ)| z80eC-1zer=-XFZ+X%AbY6gtJ@Pp~ywOCecqRW%))i1gzgIHzEaEDlLuDP1ZvY|jc} zoj9)_Zb^18C)uCA?!DNNGY z0lo2}u=Rb(_2!O1HTbVm)E4aCQtUu_XGd9->oQLn(zQb+)G(k*xX^m9N zf?QN1GeduM2A<+b^YhhYGS+LUkW9!(j&z~5A6Qncs`uEbtem5ew!gROB<-+ugR9Q< zMiXFeR*2?yUBb^C+fG*)80nk-a35RS96`$*wT%wW#~$G|>qp#>n_ZZJZH^Hdr$e=H>dC^oS$$NOYn8@jR6<%lAof;N^WFqE`kUB+42)7N4-s>~70L zAL~G50n(tleWN+!{@~EeUp4(f3@;uXr=LYWooQo{p%j7v9|4DsxXNQfxfSe~U;a zxZe6>S=GT_DrG1r!tVflq!RhiDKSoXPLmyBJX!U44T7rl4OQgEVpakzGTk^B_^kqi zD9G)Doq@R!!7q(Fv;^z&3MAF?GD2S0qjE9m#6y0T8xv@GoZBrfFVA~pvNQqS)9M^L zM#girJsW;sA&Z)U0hQBqwC!6YZRCd!ipzbYMVi5Wm_&Dlg{fo`IGO>&H3xMzPrh5j z3cG&^Rw0e$hbHQf{6={0L%3JjUHo!a3xgmaq{*Y%EdTHtG!#m~1zgcH6BCo%$i5U| zD)maUW)LWsGZ@4}H0vDM)XI&#q*%Tp)jDioNE^7_E44#d)sbX5W&kT3(e1&))py;4r%Q;uXesOP`{P?H$reo zzILm~NPs@j57f-8l1&x}lAv@#0z}=DUy~KVp<058int_=mlrM=Gtale?SD<`4x~T( z_WgUy=0q8r+llSMJGyuLcIyTr=Z904QfCu+uk)?Wj;#+iCx)uGfM^`IzOIDqJ4J{X z!>;spcpMtQ+%ht6ZXyrH0z1lUc)Y~$$oas?cC{ZKo0Q`bih7Oh{V;M~Zy~pnMD}Xu z=;X*q-MSYkk8}}`Evt_ke=m~>?6wg&0y4S8dO>_4sK{AO-4=_Sr$25lHF-YvpbSK` zxcBeh2NZIQb^Po$H-5IS)j*n=uT9RZg=2L9&{5YS{kx81;qXEUD8o6p2h(tl3yT!l zSBhCe<7IRZ=IkTnv}dr;Q_E++IqtR8{Zaqycz5Mi9JeJUj0)zkoSDAWkT`g&Lk1rU zh3y{>sn!{4Le68=6gMbui$%tT1t_`Jxz+%wvv}v*v(?u69Hyh22X@Trm2EY48<1Vc zkVb_|ir!N9b7yjX`-h1NPGN{>w$8s5TrVj0nd85kvKEGLQ=Nzn(+fzH$?q(9C`$FDV_+b&u^HLDINjDiJ^a;C7nz=6Iop6DPv~VoFU}>mw|l_T)!v>+F=EbEIj>{?ml*`CzGcJT5{9zzoazdgtD zQC`ph-MRFy{#1KA#st%JdWHO1NiEmi_91=CsY>R8+WMCnt7JARD2`D|NIaRMLKI60 zgI53YRl%^kU?xjVTA%TB^QXgX=w0m3T=?I5d&QldPmD<~&sKy(QKL+VQ0*9*vk9wT z=g7m`tn{|G6KNMP^LE=C$8qNG+?N4VbDwuc@=2bb;rjMSn=y<_VqSo8NrWXa2kdnI zfLb;Q1dNhT!c#Y(yrc>=j{n?^99UHT%?!i91Adwp-sqtF(s8Li>q;T5aN#TbB?Sc@ zPG*V0ZA4yMJiZkNd}iA4B!k_w%XWPSV2ZAC7JRws#u?9UF*;JX@jv3p#)A-O{SFbQ zgM|ZcIT6k}y-;Hjl{r5;e7JFq)69>b00w-c;W#nFtA0hkUlpIfz6_UZ_UfR8p9C& zP*_V8e+HHSUeV6hnM8vJHgK9^gG~z|EFiw3fHvxgbEdLf{hc^(a;k7JvH}95#`da2 z#=RZhpzL%Zq%QwzI+t3axCxu#m4Q#PdzL_AaAOZkkYFUD6f;~g?rJS^bxv5F{*A|j zz}SkS=j=Y8Ar*&|Xi|X4!ZG-TlwbhI+^M$ls4)79aOZ)+&5Xe=ophQehPnay;LU`` z|A~mNye%zzQ`w7anmqM37_&}LLkx-1_uT)eGi(8cC<>gsQ z>c)kTUKzUk3aWlRv>x|Q&SR+C#xZ(Vv{GE@w=(<5>(gmEq&J8wB!mUFeNQbU0m^VK z9OHRx@N7_z+v2N0N270C!9vciz92WuiN zEa006^_&(H`IIZ-le{PU2kn@G`%uFL#Y*%Zt8;;nH`lsj?F?|Fio2z*pfr&gCbO46 zy;dha*pO1Zh!>o|Ud1#r^y1e^93sZcc%@RULWSfP#GO!Y7>TA4phlWW?kL4*3E6}C ze`*0>T8L_henatHb6Xw8qNWJNmX|1(yv~xQRKK>S>0bA?rdT$#Z0YuU;4}U&Nz^{% zebnR(sodn{m6Dze~6_ip#Y=cAX*eK%|}sy-(r zlzsE<0-@Rlp`TH6<`J`zoF|kap1O9c0G%u1T3lW4g+ zAWYF$>rVkXe!-g_(1J8>^#-1M_ktjpfc`d%;zlDjh^Y%i!z`E(3WR^#zTElFo`rl4 zPHsJg)|pY-6I&UlgovgW^~v}#Q$CiZxe2NVRQ6uuvME2 z9t&wb(GJ~rl7(-T_h5@5`#%-~ryZDaOwEQEBar>5VQ<0FY&GMtKTlra)dUj%OrZWG z3ppQ~81l?;mo=R6v$wIngp1Sc?-25jWj@f{5@;XWdmSj%{R1O+Se4YTf4Y`Xf zd5{Wa=u;)aqzsoJQZC=~0c5J};>wC?3?m<{MC#8(bJ%4|geMBq=(B-i!cTds<%L^# zPGEJBsjRQsD9&=PIimY+(+N|s{BMusC=EZTvU^A+35}4@3|B+K8Y6OXe7Uid6oP9e z>1p{xIY$I;M_fHw_XqUIwYS|J^>l{D$>swq8DM*-*^oXjZ5+YFQdxH z!YUGldF`i4qWEe{G9BoNa?NDwZDFLLK#OGm)}js^t7nNEgn4vMVY)gOa0OUgTquUE zp%nVrp=~G8eT@Id6o_Y^x9#{2gU;Lp^~*o{c5P+3v8 zniRaY46(n1F*;<){lE@hkEZ-v_quU;I4zjow)H)g6@4?Ez}=&gW53+&ukPL+pKs7?Z;D~Z5xJh#VDEgl}J^c-yfqFLXyL`6`vE0&Z z_(vay7(O&Ii^Y(i?~pg-goX-)|7~Q%ajH`+k;RWMa8aLhfirxs4uqRyRvpQ1-+c$1 zw{+Rx=S>1JFd&$6s5BPB_P=GQ?0BlpP;XnI`jmXe>l;d%@sw<6F zo^ze1N7L18vC>bQ{4B!o1HBx3`w1Ml zkz5bPlD>iS=KcFx%)z@eT3{!KXd66KH2swVCp_O;8{y4uCTk%O369(D@2eM!ef)&H z9W{ug<4MKV#oRb~P1i@$ZG8%3a<8`Zc0x0KgWux2Iv;in?_ zE>GZrGtu>}e2%D>7qj(Vl}IU0=(L7nd}3k&lFJ5*`On%{Fl{n zk-$ciNOoca8!dPL?``F)KZ!xzTunYY(}0U^Y~JP0;syow~XGvdO!niEA~m_!1mokId6C3efp7FCx)N0^EFPFFG?I6{nN}CWq^Su_)h9J3f*Ly$2&qO#~Qd&?+ zE>7tn{G#;^o1MRp@iW+HIM<^&)@vnA4|EXy;ddd2%6aJDIGRb_3(t9HnKpNopH#23-}znzFX%643I^+3`D1*nJ+GuLAU?e1tV1Y>i-HQQh^8tCA*vk=L*2;^i@;Z4#O#mj+%z z81Zlq)KCdQ)#Ghs7DW;a#UxUkyv2a$=AI^LSbGjNZ~ZPpi-m=SztH2)^&}%J`UfV(-Cp(O^{Py-o3MJeJLzo2J(@Csu74gclXz%*51=-E zrPb(Mr0H=hs`u(X3=2dgm?LVZ3{AKbZe$ZyGWD6}Z+?VA4eh;EJl+yy3sS(g5qIar z-~oIU=QO7EZK`{3i7`iNP6PC9R#B{H%&O-D%}txkp@z@WRXmjBvt@pQuxvdR??j&u z_KW)sywCUD0(+V_1_V7m-v^75X*QFhwa6D{ifTJ4^X4;O2YEx~s*rxFA@u6pxzT;{ zruS_Ok;)MEtjFXJb96C)Y!x0&4F-N%@5@6fy(qXVSIY;Ynvwft2krO>7RJ>kX_JG# zY}L&!w`}$l*zS+FbAVN4rBx=;R1K%Z1nHiuzDTLGqtVHQ^Z?$AKu*Am%X~6bEC44v z9*atdJjLUJ7epbu4xkna*BQG0=FI83;0)v4yLa+sZ)HNrdGTMoc+v5H5Qoi{k{j>x z*ERywNiD{zp~O^;aH_~JI=BoNtQw48=(ciVSNy{Int4$mjkVDyd2(1vf#LVau$SCy zvK;*%4so3q-gU2w!4W#5Y<;|=dyk%;bj5ak_{FIRGeKRg{jZh~5_T)VHOzymPF|@U zP*Fw(sxmu}i8QPTMPfp>e%9*ur-~Ylm(YNcF#jZe2fgWPYaZLxTa<1GFQq?m_1tO# zMNv-yjTIRio8^YTnp%N0-EYM-|G8A2xyuF%aUWIZO-X5PKRBCqb0&R@9N~O|mXk6* z#KV%tw>_j{n-65{_7-0V?0usp<}|qtYDL|Y;K;blL<-d^c4}wOaU{Yi+nc-)Lj%H< zwcRR4z0~L(8!t{w6$@1GKrJI>o?`C1SjexzOiaMjLWkrWgVDC8s&LB;`#Nq)(^Srt z(vsJU)G9DK!>J_tk_AIkC)guzW?DF@(Dg_ipvtF}tF-i&xj^BQ>X>X~U&He0H&nqV& zOfovR3c4=(dGH+{704Na15AD5hk=ITgR*J2F{-;Y{Z*yjnG=VcM@QP2k7oz$q)_Z^6%6vAMtdD_W}xcd9Ui+1_7T}`*?cca^>y}s;=fwbg{w+05p-c_Hc!saRp3xg}AEm!s*mn8yy5|JAMy@8^EvEcKQu4wcC3f3v$~EN{D*`ua7u5Q)HQGn_w_C}* znb>~93uth=it0D1`%HkCFlUy3d5urMhleQE<^xD{u4l+x2BNtnU ztcIV$W@xxUDAo{r0Yb*&Qtb!=WF7L&}?<_)$lvOpBARdep17;QfoC| z`swu*y>G#>*$JQts+aBWfK!Rh7Ewn{RPx~SetW(KbBbKRX_o~JCEFt<4qFjKgv$hp z0o-yEFc~+0!d4FEFk17CUYC<+c>9h|@9Y$?{A(cm~etkZOkryh|J$->A@V zXh8pI>Sgxtml14I~mOL$FQ=Bt|ntyVFX!Y81_isqIX7EU8nL3e==r_ z_{kdtBStHM3hQ$GC5Ak0Cquma2R#o#KnjB)=IA_`bGp+KQ-|5#&)IDEIra3W$b)3LJ)hN>DjMa54G`vUIaUBeegaP1Ue}ABZrgkia zi(1Os7it*ra6rNsEN{@4x8V@>qkjRBbD_!>|9m$RmF3i*8-0(h@QB}@KZ6U-<^u(U z#rg`}O)YdfEB-DtVe>w1Sc)KYbhxxK!})p3VmvFk)8F)gg*r)@&G`f}$3`DZ{JW1S z$jHc9?n$7cLGy?xgW2CRiEQikEcxf(LTxpW(A6Yi#i_F|b0(iiyD7lWRB>3PQB^#2 zz2}YfkhI*OucsXsLaPraO|i*>iCDQVz8=p9gT$3w>f4?Ky~<#eEC@4v=}C`I06*I2 z-ZM0pFYnBW%mn-33!b~;J0S~k^nJ?v`J{r~E6@LQ%aguRUpin3eZ1mgv8$~YVT0BF z;jc$goeKlKJ;Im2`{F=$%>8s~b{^#2h`G#&>E)6`>RpcXK(RQi{=K^Ib{!q{;pzGO zjtKUGdV1X)D?hCp;bmwllVC8vibp7=%4j~l$gh4?;t5a31ge)3? zvuDfPJocN!HTJ*WJIuOqXC1yL3-MMaXTx5VZL+{t1}sa;F=LcK=c7j+a7rj-8)0!| zv!*FD8|3Bc=c*D9oV#Hqs|zuuG$kNE_u~^cF383Lup|DF#m|zi%HrpH?parYp=`PE z(6m?LctmwxB5*<}+vS)K#zBKbnp%ZPhrt`ldpex(wVczt4Zl~{rvk58DRa(-lFhO? zf4{C6hKa(9&A5A`DHLVP0x7U8We)VE38m!#445s1gL>_G_+ZQ#HvJ9=@E%VND4k%MvHo=(k`{JCn(<4$^LIBU|o{x&m7h5ZyL;@I{!Ioy$@f6?a}v> zVECsvcmxRRG^?Oh!Ke#S&boQ3RA0j2?c4eEV3w9j^QjQwMxb-Yp!H<81(TIHyxJ+k zGX`mM*h)Lt14U-x5VF)n;rO8cr=%I)#M{EiL}g-e+y;*5p?1TxN<246flk{`nRgIqb5_uBa^3;p zE!i=GLj*zAvE>tK)gAVE!@Jq3k1cvWWt{`1jxU@0f+BUr#9IP(fMn>&8WO!sf^S`& zfY^9ecD7j0+Uw57%X7=CTvKx0U_dp50+7qY3R;}u%DJawS}r{*nIDsqLTBn-^w$P6 z2ie}a;xop0Qjl6aOKhuYo6DK&YA!hwQo%QSn_uu{Zt{U<7N2Rr3HzNuPqxt%I7J*1 zJTH(t*8$1*9JPuE!-Q|1c`FP4t_OQ60T(o|BY4@sy1CY{k1~XeyVo(D-}TrEv|se^ z*o@@89xv4oD3w9R#V?5hGj0V|bN92l)7kr(q$hbK##E<&>G21Zp~@Nt0VicHcU3&> z`%=%(L2gx0%Xy9N9vxj0ouk9{OsHY9Q^$C&=*cajxtYph^IiEl=xF7cAA~E8bOXnk-WoeL{yle&tdKcn@OKN#E zg7^};tSw{bwwe~uhRE@3Cy$qu%KbQvEmZeg1dX`7i3^6EhIRX$dC@^Q^bg`9NB*Zb zY+$?B)UHZuHgj~BziD@Q{CxQq)DQznm$pDyw~4$#8UZAf*7XU%-%VJG`GzN1IG0|d zL#nH*A9pftqtAn0iU$JL^G`X9`kTgej*C6c^XJM=_M_;e9)UdaUPsf$i&PCHTZ`(# zI{ru8b58$oi65Ah@>zh>eqVQCZ&xIIzUH?=v%xALD7rD^(53)u^1X>h|j!Algv# zkoE38v3bSyizIl^3xLZ9qrbs{;}kbu@WBco)GfXu_at;Z{7y(zXTq7BkZ(QXv;qz* zoSYW{YQB^n<9sMhQ*Vy|uSsShKF$9v&;#|Fv3#;KNeJAPxdOvhbrF<-vN{Mw#e=>j zD_0M_+-zbnEz($q-}}3uWo6;(N^-E1Jb47tU7A$=RvGciU0dz}0+DOllO-ymoc|-Xa_tAB zg@`a{Hg+O0Z_7zA-g6uRPIx-U?dk=ba+8to#A1S*is~Prs{^ga^ghm0+NFBW#BPCb zX-ee>;f9#TP98JE@Tk7zPLX<5Z(M4D(sJ%IQxn>G(23HpQGbO<&CCZsSM*BWScLd@l3Bso}nNl{71dfN0^pMbO5RH@79|su-;E z7bIyZ-s6h|*%a@px?2>^^|H_v`8J(%Ue2=i&ddh0{HZjdhiMI2S)iLFyAB*^M~t#o zkjMFk_KtHsC}2n_Rry7Ac^pvc7LVUjD)jWKkFDiUK~L}9c!$$nbh!Stm~}C0(;b7e zyZUKrrk6;^x-+rNQQU~yxsrnwN8@}WDfKU6Hw8EPa^owMHKwX8J7Jw*ZjK|pnv#$_ z=I{9U_>XK?<;jKJ$w6q<0&8m=F4h)aZVp15IXE~dp?Dn~edPmejjM^~8HJwz5TWb4 zZ+nE>x!jMfq!*NH4j96D+hLuW;gpQjiwDG`DbZycA>+dV_lL{JU}Z@$4_@P=OFrFs z@AzHxg-D<$3%0|1OPoPhDm~2|@q=Ef2e%73TffYywf@9Wvdb0bFL^&IF{)j@=&1P+ z{rKEHN6-O;NGmq}^(X83`o?+VrP2g-Cf;8#6e)m*tlnwCZ1>54$43kB#KEpgUV&4( zClpkNK$Wl}W7h`U#su)SHVifU-n|oFNzXcb~eP^im&Xc zAp{vqZ3?7(+$WW zSktJh+b=*Ce0k_dN)P|6Y2AP7U#Mrhx~*i6k0p~0^V|AKuqrhvE`Z!Tye!s*pc2OM zSH;-FP$h5^vHeEeO-!bO*m0r8x|xR~7j**9no%Y9e2=`f=?q?l#LSEi zgKf&JTF=N_xFiN@=;El0(sY7Ja9fUmw!hZFa>2auBq8B7@SVR#@`;vvJ~_y`n&kOR zI>_kR=;rGT773!OOjvcEE@$Lh(%z6Gg7E%xoMaZn5gN|#W1uU9iv_|}25PfBRb~_3 z0DKW?*4VO*TDNzm)GuX`Y}B+NZ-b^sGo&n`JIc2qrTU#AGJYdjt?S!YYF1zZD7J)z z+Wau3i!P87XqCiD2gdk{T+CnZ8|}Yqn+zqQd6Z0PgRs6)V-o%|DvVv2ncQaKl1yG> zM+nv&>&;1L9~~7Ha>x1deA^@RK8~`c-5r>*_V)H3+GSQL5qY2#CWX+BUy?V+BInow zGF0y%I0AQ8w^lcSwE60nFnaS&m_811)y6>$%Y1qJH8Y`-{Jp~3?!VqwLw;78t3L(J zUpX(IuIwAYTrd-U8nDATtH{Nqd-1$5KC5nmWY7B%L?j!LvorA8k$$n4C)7*Ab^U3n&G_imZ z{Z1ShC0D%^tKODzo2bs^XsaD&EI`9C2)wQRcISdv8_x!ht0sM5WXla$X!-#|rG9|% zhlt&xIMd%%6=hbw7l1u>$2jc4bM_6^2dETQcpH82FUpxA>1+_M})JXyABgYG8# z2%Lx_z!b@kbBcpWdldSbVbq43k73pWiDpRe0rO6!X6Ib z#$?=J>fzeRuDo0tD5h%?EUVO$Qz|kl`6mm}x#yx|U6Pq2_!C7Lmd9{dR$jE#H|O^F zkt1Bo7F5w#(5ON%;!>yWF`aI5b@L^XJcr6}ZJD+EWq!-*99mUK}cYI^AM&qD}Q zJ#b`;WS%Hk9-!ioUxj|LP7hfeY4K{`dxI60gm7V-z7VOI>kak5DV!H-zRrsbMtPMh zm{kw@{^D=2J)ig}y(wUL-X2CL@jlE`t(*(sWDWa?Hv`zWeDd3nEv<#}ZuE*cLeY@33&*C^@foh_l3*~SC zrJC}WKS7iXE0_guB;3M{KzW|}5aAW}QCc;p<74;8Qu)FP4}`No*6ur<7m3(orMb)w zIv3TRl+#fuAG zijYqs0`lRz6=C!@VBqsLiN^)hR@&H1$YgK-QDn=f+h=K8ey5G!Cag3)Fh8J)q+dKgH3RAQ z89XHd80{QVbq20%(%kpVk6Q1+0~8a-!zHQ#aS$MYDmLwfjBueRu)cSs9p1SftV%Unkp=7)CqO?d@`N>0Cqfx4D3?}rP-?jV8Jz@ac zgy72M;OZN^c|*g^O;qm;eFCH{V=X7WL+Dg2L{q2RilUEG{OZuXadtd@4wPnd(ut7L zczr=@`vRjPr3gA8DBGga-P?i2&0%li9oqZAz9N@%yhGlcKU?y|1ZnNB)LjYw)o;29 zr4u;NX~jcCK;d@Z-aA01#PL|C?~YVxUrOI4w{CXH8UpF1uQaYBV`Cq_E9YH+FyTXB zuzr-tIFjCkRc%LM=kYP}w+GK3CvVj_rIDuW_`6}&oV2NorsRvp;tL?NZe!)6VUcp6 zfh#H28P+a*rdq0pJmYccRtI3#JWIj@$KZ5c>v>JU;H8wyOde>akxAB3-+kc^A*C4PZw^p@awC-N4S0O9{&_s>xF!Y5=SU zEI4CQF1qb7fZxnSc?UZ}1PMuRZu1Jyoa z7^kp+X{xN{^rjRi?`s`kvA9NEUr_xa{qzQ`MxJnTIw-@EB-SOKQ(H;#j$9hQx|<%O z>c8}e<+UVeEfD^6@4J^pUZD}dRoE3`%GLpsHA*t3j~2{@k&6*6ANk)V@lxTKUP6}x z2}v!SX|HUApR_hj$cANeHPl@%{fUE5f(Oe@S%8zLADKkX%PImmn`ogkoV%gKe!0|g zR!HD*Tz_>S19f;9bqy3}A+?xrqf>5C_Y2wZgPvJZyORISJMehzXHa(M62Tq?7;NC? z=M?C8jf1dM*!V8az9+Llc z&^!`U5TN5|!I!7doabW-g|5Fc$<~H6Wv+V=}fVMq`qmD@0YoR7gJi5-xWL#-w*Rys(Or;X1{TR6mWS3~XX+YtPWk!GcUz|Yr(oxgAj+At{Mdj;6#kOpb7E^cBTt%$9=eIGI!ed3P+*-M@JDiN|ltlHRs*eyVoc zeD=!YFi4VBPSwMC$!A6d^m~qxZk6ZZc|9lHnm%6Xf3QVRfW^_$)I=Q$CcE=zGLVdR zpPT@b^-g4Lmjc?1j46t|vl6Mr{BN%{!S%L`!ti=JKXowOb73&u$&xQ+JgDItb6qaa zA@Q;z1vFFE;dJ4WV8{zE**F5DeAU~|wXOd74(>bg=36oQRT3d6g%O$k}BBkHtrMpxFG`N1^hxiHX_>*<(3s#ly&hK7YQqu#$Oh26SGf+KL8LiVR%8%tEZi zs@(s{Lw%xKPZj&$2Z6-=)b6#8~oK>n>sinZR?bZ6EOdm584L6OcaFUCCPyCn^eS!k zVdP&9&X)uko@<&h_3L8Pm-Rk6;-{?!=Rxy!KOm-~1#IAP7IpAAOB-#tfcMJ`@ifq9 zW7wWU$)W}D3M_dLiW&_|*Kv$(yC3lvs;c~*A6MJ?uar2pmE@xR`f!)yI{;5+V~@*T z=PS(}?=GxPlVL#RrIn6$$8rDd1>W}-)>w%0p7ot2tjFw} z_(0RCniiRYFH&^Bs46FH)afXfLRTb-pNLKsUidz$emjoIQcVrIdXTaJUH0wA58oOs z3eXhBb=B2V@zj1D5Wi>aAoW|ZlAi=|0}!qhmM5QiJ}^*ascmqTC4OK7ZyyqJ(9*pJqUf07X0Zipk*x zoikFfva}ji`FYO71?l>Xa%gcJaS>ysgU5MP%8l?EE-y~;J+kOu=JPT=vymCLz*(<~BGPtcOHAA+ zCn8`hnhQJXkx-r$H^b2i-}+6fDb2u@25QUvGYBNoKrj0PP>xng@bJH~;b<$@*>L+( zIm?k@IjFc+(A<8X@GRk+DTCw4v}(nUbm55tLG}oEnWZYkFvV>&PFa1h?*lOwKRn867w-9 zf7S=}S{!9|N$i(mY6wdF{R@X}MXiOZO65B*u{RzjUnT;vv6!QJn-0+M%m0hUOeOo$ ziAXVYXkj|QgYeL9cT^R|^J?Ly2nVeO+JI;uegf@*r0&BPA>>7NKzIpSne+fPXmF6 zAKapX#?KR5@=FkpN12^ejt33Jx-fhj%13@j8T{KPbZk>!Dsv!Fp z&cY_;P!brB5*W#_M~0{0|z?&9U6TUaa%Q~97N+-P1#url>MH` zu0z6x>vug{ym-k!tS)FrepHue)@cbQ!$jk$^;=dhz;u42?7M&Rm`V2VrcXUz`ucPd zU^SQ(z?THt@P1`o=*R&jLTqZn)AR&uh8U_v#ltpszVYnH;yN)o@4iK?=XlW+U^VOK z>h)cq-x^CbpI*RUl}bb}w~MW7XcjnH<*2UcvERZlj$QQ2W?cqe31rqPx{%9 z9S;#vrdC?m02$i@VC}zwX@f3%7pQo-c%u9*!lJR+9%xPasdz3PZ4zz*Y!K0Y#s(Zj zXcFT39@vn6i4|SH+wd|#0~;b&edQdtT_BwrK>-loCua>|C_ej}C<{u1UgZ@-L@>HO zKywGaD+hqCp|a;m zHtSF&tLb*b$>{}%?*jr&iqToz_`(&AA{RhGN;pDsQet+b1Nl-UoDFTh=}m#^EmmNN z(X(+xT0#Ge@=}}+zjpLOT?p(=A`+$B4RGkN`_BcEG=LyZJTfd%;aKKPUK1_w7r70O z7i}#Z#?Pf|BbWg2z1C;PG=O&(qKRWcB;QHR6-=wD0i=*MGQR1z&eh9SU`&<&d4&8d zB+HcEl27#kX}BuPhhH7eDUt%?Zx^HFp#VeT`tR@c)i7pfrDxlz#8%3=icAn}glg3) zfXKlw(SZXY<-vEwZ`>1vEasXHdfh~Y?JMo?FTDdty6WO#ZxnAWhyaB7|Kh(t5ZGP9 zM1#0P!UzZ%uR%bTHPmH3smgaOLJB}#9IbO(xIpV=30hcG~oz7B1X z%0zA=Dav2WK4Am4UM{Ae#3Wrn$TOLyoi_oSZX8(Xox5tA{en&8#G`&-#RdZMok3D} zL>g^sGRN!BGXga)T%yu{Fq*o7lNUsw7mejd2u&VHH0LWZf0nJr{5v{{743K5&vDFR zYfxt+{#MMs$TIRHsDnA4JUeG_$=P7`rqdCzdUmm+9@|0zcN}t?TUBX-aWH;ntHP@1 zz>Fqm&1j4-P)y~_29wRvJdmp3Aj;dqdUQ|K@aPGk1Z~?7nt@Gf!ss8u#}98O^A@8D zowx)zZf2Yp%mnEk>RMId)4n)B;hTOQR=tP<#+7$=T+!0{XM~&eU?tK7Qg^~YRg&|_UE6t5`r!Rt=^VSq!H$uS3qgIu{duKxwlYfbI zb46IseiwbqvEzJ*U?XlQ24!{_b_9zGgw0R-?_puz3{HF?&|f2T)3M8Fc}nY72bqMQLbmrXi9MR zU!ADI*kS`jFjl)dhQWEEmlc}c`eBsK!@u^Y>vNP9$H4}UMhilrw2Zbsc!{Vp#4f~D zl%05DAkYShQjl}ATUBvN-uozKRkao>43;Ev=^9BzL_FP^Q&mE*^lyCI5N}w#^fxFFIf_x|J?xwSFSR&O{_14xFzTPJ|HXy*hwPU(u zCwZ#$k~3an|JZ@9_$DD(m)^P?9n(v{7=t|>3to+Qsw%M`DEptuLi;Oll>{GPL;(V9 zwVMY4O$@izY2WgKWJur7qXH?Zs?XexrT6vr@uJ63uGMWEqP^YI= zIjFX_v_GY$FtH(40>p{?v-$U3s~%n6G#LZRTPKj>6rn*goW%#2gDRhv6(U&5{!R;< zUN$%@IoIwD)4I66>^<@44RKx>mtP5qPX*0l7~_YG%|nWD+qQmi=1#Auhqm;;e&@S{ z9SQdU-8Efm%tLG^V?4miV*sheZ#qFRt>lsiY+y9p9lvkTUv@VCjX#Q82NSk!_`c`; zc6;+5axL-5Gbr#BRlm7RURYhXZWIhy>^i>(gn24lfaLAT65AvGNjS}FeFtZG8F${z zw`|V@95eYf;H$CcO$rWl^WOxjhCZ4gqGSLa!Z=PhJWT( zEds3HkSKwgT&DXYM}?{&ZWNS)MofJv7v|OL^0s{StXHlyXC-&nC^fTm$E3$d>;Fc^ zXESVLRNVgj?U~%4C*mu|D&cG*m=JV@t4^n_5c(E+($?j(>YRB z;D_e==h*Ivuv-P&=E#iK5An(JfEVD-m(RO1-2Z7bl7cJB<#4Z4YShd5=7hxLg>KB} z9D0pBaZz2Gf)2(0*0g&45FEi(FwU9lwT-zftfs|)zlE)|+gjl)DL8!hUD_QhpaU|+ zuWeRLp&3HzxdD&~h_n})pMI&v0CgO$)4D(B9ZiAOcpIowhoz*v1a({e&DmxE);Tn7 z?xb4$_2C7MHWl|kRIvk5g*^1^8d^ic{;BNK3?!*%cfR#kSZZYe01)|PX9OcBz{7nq zHSEwn+RCw=u)O9B%Iv}5|33k(ApsVg|L||F+m|f=jRiP|i^Gf$K(|ub@w-QL@Pvyp z$@{-)b46bP{+I3dKg0W#W7L%I7x|rp;|vLdB)e_PflMcFJ3y#-aGWJz>htjzPqH=DWaug z=i}pZ3Zh+hkP!>xO--ZC$#HJNNPU()tE0(*hbHCAv`rAkL_kd=uBN%^N5D1P!imX1 z)}&;lN*lWw=`tO6Q?JCyZh&-AS;gHw-{$)fMW0RVm!gKllSd9GwKaLJ8z1V&>s-oQ z5*o|~u9AJIc|MaagUe$*IV@}d0CRr?zE} z#RX)Q^S^1x$pzpm2iYDov9c;MzdkGAN{}vd;^f0qL7>5_%hs zmL8d7)nSl3oAIdMqx2kTSTse@dk=@nk zusqmypF9Pd^}A4>k~MOW#xI8R(7(??U?&4F_B`peWUfs1^^O)EV=e@{RnX>%fqiN4w$?k{7b*?Ym(|S&SQqENn>`~wOd;y+ zDjUV1Z`#ZLj%si;WV)t~1p@+0M$Q0B;mRF9Rp;_VBMBrQq*UxA?WD2W4r@g>S8T|(O3Ot;u zv?dX*TDcaGIH)Q!(pKK(S;}0TmWHyk)Yk#ZZoPMmN@bOZGGU}#t%`Zk56I@R<{_~j zlLM%d%%BC7gaC{m2!I&?0uE+a)1s5NsVmaG>Lw*iZ$t=A$)>(k2?Eysnop|)@f!Bp zEU9}hyNG`(MdXt`llZ7y=d6KS%mtUH>P z0(|zlDq1rA<4kK!%;J+={hKs7CPzbk$@HOKlqfuPjsjd=AMu;wZ-{m8cv%v;w)s*P zHr$V=WZzBqI7B;U7cV>crUajm2|$89iX0xzvm79s?bJhxn`mmf+=TzSLS8*U0g>Uu zTaM4LB6IQ;>)-(jtZ3$t^QjP;ne)1BkYnV%B=58eF@Joq7|stRsRn~Fie-pQk71P* zuNiu?O3}tnjw2@g)VbjBNiv5MGpb^nkn*0r9mwEHH+bXBJ4pAo!-%Tbq^_$!>`q=+ClD)d`< zdPErPsa+LAkkeOKkL~UXdEe&tTFge~Z?F_{HQO?a{iA0Z@|V&(5svYY+XIc z)ilU_!7DfZ@s)LgCykAb)eb4?9*p%Y;9lMF4ahNbWPUi-h-G9#@BTWU(J^ID#%jD~ zXyohQ)uK9+;1aXVd&~~6Jecp|V#=Ro~e`>qgeMy%>GSjx%HZ1hfiFy6UkyWlKKZJb$U6`&wb#z?4m*Qg(JXI^z6un z7g$%ch+T6V?`Sj*kA;wiirE2&iTHGBz3l8JG!%#di)ctZ&*5>j$1X>By=g~MQbD>v zoYf}58?t%fgcGe+8Q5nImL+FhnC4OOYT-k5{9(10j>#>Q+k~le3)er*qB*)DEB0c@ zJED%UqlBy`I<^8oqlbp~Cr5S+t$DYBZFLtj(T&u$Es+L4u@MfJ)4SS>6LY90>W<Mk$1@F*UZnxC`6geGd(sgMieP|JmJt4s_^wOpQ30gKq5XA$MBLMclxMo(lT6I4_! zB$;yMMdqTuS0JvaoVR2;haK*irkb(!8=&RV504&hVuDFwL=A4gTm6mq3H&Z3&1Ahw2P~YTtT;EfY06&X>k3_fo#uPj9x89mj8oK^qzthQHRr(-;Wn??qS6bM3Ro;A_Mv zU&X$psJs$xFBnkNx;rxLmMQs}5Y8};8Y?7QqBv@x6;^Ja=xOOL!n6)(i6T=?pV{kA8N4o1e{KEW$=|JSDDV{){U zaIx$q0W#SKrre~vW0ZPGFOx2`%6pN|AjiLX!Hm_ACl7$EgiqRfr;=_XvdtT8bzi$WVE1B9q)Fneelqn1k*6gBKXwT(OkRd(B2nJ&K%8p@A zcaqn~Kr4Ipeecnfldud@ycE&wl$ z;7kwqatC`dQEZJ(?4fae$iR&!YMKMBL0_V2IwW2rV6R*djt?4bk-ap}FyZ{ncPGM36g)svUQ9bc(^N_BsFlI)mB*y@Lz~ z`3w)i`-njKla{NmHA1pH1WCD>vBnw25IV4-@bK^qb3H-B%Y0VvP2UH?3Eec zBIv&&hOqR`e*w=m9kmlq~lmY->@}71I>+So~bQ*z)z5%-oa{E7CAD zd$9d$&#r_USj4FriEv$!84C}9jvSHF;JR=RB99Pdc&dkTSGc|U@O5)d<>Z{)l!(hF z>U65Vra9)~P}z-71DuvOlbMC64Z91=RE78@%sv!980>>h?vKKwRl=?v_;hG<+S4i+bPRPm^oGzmW#@$=4XhX zXcohXG&LIgnVWrNQ$xU^V--`C-RTt~3SePZ-+M2TPCZsJ*Xw!VP@>B1^yAU}eUyWO zajK$}g$7cY9tL5f*JLzAlY&SAEft(4Dw>AT5%#8|Pe>xmNT{RUv>MYJs)i_H^FCpO zjD&tNedToo*6z?8*&WRlVj}Y-JD%O4&R8|MCK1TB6g8}4!HFk)IxHtf4gRIga4S3T z6WegtYha}{&DAAvfmP1AR*JVke6@dv`Z=-!2fOQCyS1?|>+sw9Uzbu@ACanw9w{P% zWKUW$tQ%RCz~@!>bGlSXXsL~9l4U8!QO_+;2aG>>{QO?d9vhiXPT12cJdeh6hx=|0 z3WAHzdu5*6@N2}GCd`PfI33Q)uVliPYx^avr!Rsvt{mlI6F%A*c(`l}V`1LKeo?M` zBmQvNs3(U`KLxT>RxX#KZ>e5;(!_OrLl^FyumF1<5TJt>VM4bLfjYJeq0gZU?d_-l zuoW!vBb%t8fKMCVMxX8N?F>)q7{vzx;Pe_UGSeQ=Tik0UIm%&3?HUu*O5HUzj=5@e zaoJXnYEYNHQS)=QI=;WJx~PAf+*RI{7&JP6m4V^DISU!Sik_aYlbM~-p*(dXp{#6d zO7V|hF8hraJD3hGO$j`f-!o)-%ij92)a@cmZKt$sw&DD*oxYRvG6)#0bE(6929LvK zgAeJEJLfcbcAr#DhAFWzGBTDrh~8~8cV;_gZSkQ0@G}JK6XiLuB|m>{X7P&1#($RO z_M6?@YeFkpgje2tS3a2@&CXim+0Dg$d?} zERW&7M<_kXXjNvtU5{v35%vO(A5UCqdn785>G=)KzmeYA-oJt=be~!?PecZ6;(4@q zqbEa;&{v}CO^)()OzPs%T4Fj`q`X-s+O$31_xQo`10t?{$oGXBFiZAOjr!yDWnmS`cQz%)X(*OEo;Oux8)70cX8%Kd7XSlP*5#6`3rdO=xE>dK|yfo zd7iI1#KGI-Wb#ToBIp6h9l=X43UaTw)N>{|?y=_uHB&RcT}VyjiIr(!2=!WlDmuy_}I zIMVZWfjcLqdu2E=AD>EL zV{Dto6Gz2lVNys~9u-&E3ncmQL3_sne2E7t{Ty}Z_gFaTmmXUcnLT?F$S7m?icH3N z^|0H1$+Z_pEB&Ne@?EfEP71joTCapgW9p49!F|lS)5F#FwbR3~#&*Em^9Sq+Qd*gi zRxHNES=~}(E_rgq5uh#VgWiIm?PFtevH1`KP+DkgE;k=S(a(KPUnw{p!F5WEDAQ~C zcF$7P`=XJi=4^6lLoD&CdhN5pO)IeJvYia#)mAX8iCQvg5IjH3M60a;jXBDq=}zA8a_4OFHI+`R7TyXtVxesbf%a>Z49bbm0lIdOZfDM)8WQEH0@%ZKhL|)n zb3KCmEmARY^(=kbkpDp@2 z`;O82mO_r2XJXnX4aAmTI|L@-5c3OVT=docqL~{AJJBRiNC#2v5hwWi-ANEDFO3ne zojgbqNYbr$g$T(911~*{PR&97)Z{_rMW!r77$1B;Ooj?lTOW9>!=K&_DD6LFyDG+X zg_@8UY2!&g0IdLqI1Lw^Uy9Q}Q(ZuEcG9v4b|wWH^G^!YDa*z|jt)$*4?1=+AlY?Q zGeBZDF3fQ^o|w?57|B>$3T3`xN7>Z=(bNg_bwVa6mZNz-Lke`dAdP#VHk+Ucq|~LX zrYd2+7`T;j+FcJbgXd0wu(<8&>o;T(EVVpuFZqMkm8mKzBG-JoeSS$z1HtJg3={|j zY4mjLfE@-{E*w8{k|G&;h9O|mGqe7aX3R-UOeDLqiAJy)*92sEOohMAN0?|4{OS)t zhZpJP%yjRFt^-m9%7SNghuwkmKe$z*_7Y^l#eza(J*ZCcAWen|p&F3cjFRgn;siLz zM-@@2a}JU-RgR@0VtYl3!chALp^Z91pnR^OZ9V_xf=d!B5d1RI-GC(H1<^V3Zlh>q zDK-OI93(kJ@wgQqqcu9L3w&|*q=?Q~#9dq@2Iq{%ukwOAWFIorZaAdHW&sjo{0VNv z&DPC#$v4SCZ$8`7m`!1Hl(Z!Kf>MK8R@dI%-q)-P%^1|JGpBp}P`6s1y1&+}{g01# z`nJXmU%pC9YjNv&?tg^Vx@j|Bj0{RD>_%_A54J$E8q#As=ny>>N31pk<&h3<=6zIp zuz3qn`(#O3*8ga~@jGS7-HS2z?c^3<;tgq635T(q&cOh)$14KB{l9>cXA29!VK zP&iFLUL0E7Vk5|W0HYAVGfjMaA>_tltULm=eb6k>uIMV4`^KD6F7+)j`&f^3!SiDP zV=;itYg>nrSojT9aZJSL0{D68QI2pch5OfmtjfVrs4wfz1?kCGpJ{P(wkkoRRneWT zbRbSek)3E4NIJ5FkAuuvXNMcPlDc{~&y0~WJ$4FkmD+-sJFiSp$Y)=pMtoaV z@zgeVHs+BJDx`QAxgdFCDe*~&dBk=oGj8(My7$%R+{U+~G4MDGOA&oQQr}e9ucLAH znzc0`kuG8hT0UfkYnL3n~0IkmiN48!5e z6t@`%n;9=H$zZiE5L<{!SF`ht8Te59rG`bRv+BX?yv5C~1soN>#mY3(Gsp`b28&RJM2|=A~{MZK!=y`H=ed>!ktZuVKi*?xlpG zu^D-j@jWxqja%aMZn?lcQ$vJVZ6-?5CE*u2AJrMT#>T!Ux2by7bqxlUHfgI%xxGKL zyJrg*bn#^ms&pml4*_ z?gmN_JVpqC;*z1`!cOAD`<}b`dg58vW&J7m>$rNwC+7jW+(b}=RO-@equXEir;IL* zS8K|++=Y5uED#FNr z&5`y_8K|Hu9x3qDZKqyM_viA7jEXWA90z^F z>jpO&Dm(G=@xGBWWM7j7=RA}uVw7-=&AiX3muOELVbkd*`C6Uu|Ex%&AuD zdS7>{^I`k}g{})dV>&69o~CYkw=C__COrFb+FX=+rZ2>yU3jxh2-^U}2&HW1M_ThE z%Ya7uP*KC}Sqz+C_&tF__}I*h$IMdLBXEGAU}!2L6J!m^95!mGtmBLrFrZqN0%d^uuRMh7#>hcy5(D##+`Ps0?*WGfSrm-)@D*Vh-H!tg z)Xoy9jmU!g(+KEFqx|eg1pPgW0XBM3`-jp0{+AdEGH}2PXdT@@`=$Q;`JPa0Pq%DvghQhPbvitX>$Ja(X44mZ*i#E~ zD*QHVZ!d5$s?R6m-$&yC(v!QAj3z&OoBZsjix&#M@5OBEf_@uK6E2tskI${F{~pi0 z&`=0c=U|v2F=0Pii9j8CkgyKKK`sL~DVF}XVT=9$Fo~O<0UVRoddsGPNZ^m0l=7`Y I34Ndc10S_#qW}N^ literal 29563 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 c;kTJ$UL^>Atj)vRiU Date: Tue, 3 Jan 2023 22:39:53 +0000 Subject: [PATCH 37/49] Ticks sync round improvement --- src/plots/cartesian/axes.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index d9bb64b51be..abfcc2fbf8f 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -1233,14 +1233,12 @@ function syncTicks(ax) { // get the tick for the current axis based on position var vali = ax.p2l(pos); - var val1 = ax.p2l(pos - 0.2); - var val2 = ax.p2l(pos + 0.2); + var val1 = ax.p2l(pos - 0.1); + var val2 = ax.p2l(pos + 0.1); var d = 1 + Math.round(Math.log10(Math.abs(val2 - val1))); var e = Math.pow(10, -d); var valR = Math.round(vali * e) / e; - var objR = axes.tickText(ax, valR); - var obj = axes.tickText(ax, vali); - obj.text = objR.text; + var obj = axes.tickText(ax, valR); // assign minor ticks if(baseAxis._vals[i].minor) { From 3ca4aed63ee6f23c3111d11e7066e4e46323e0ee Mon Sep 17 00:00:00 2001 From: Filipe Santiago <117312714+filipesantiagoAM@users.noreply.github.com> Date: Tue, 3 Jan 2023 23:06:50 +0000 Subject: [PATCH 38/49] Improved ticks sync calculations Co-authored-by: Mojtaba Samimi <33888540+archmoj@users.noreply.github.com> --- src/plots/cartesian/axes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index abfcc2fbf8f..e0d6594e09a 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -1235,7 +1235,7 @@ function syncTicks(ax) { var vali = ax.p2l(pos); var val1 = ax.p2l(pos - 0.1); var val2 = ax.p2l(pos + 0.1); - var d = 1 + Math.round(Math.log10(Math.abs(val2 - val1))); + var d = 1 + Math.ceil(Math.log10(Math.abs(val2 - val1))); var e = Math.pow(10, -d); var valR = Math.round(vali * e) / e; var obj = axes.tickText(ax, valR); From f28ee6c93d2bcbbec887b2777e4ec48e405138c7 Mon Sep 17 00:00:00 2001 From: Filipe Santiago <117312714+filipesantiagoAM@users.noreply.github.com> Date: Tue, 3 Jan 2023 23:26:48 +0000 Subject: [PATCH 39/49] Reverted "Improved ticks sync calculations" Co-authored-by: Mojtaba Samimi <33888540+archmoj@users.noreply.github.com> --- src/plots/cartesian/axes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index e0d6594e09a..abfcc2fbf8f 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -1235,7 +1235,7 @@ function syncTicks(ax) { var vali = ax.p2l(pos); var val1 = ax.p2l(pos - 0.1); var val2 = ax.p2l(pos + 0.1); - var d = 1 + Math.ceil(Math.log10(Math.abs(val2 - val1))); + var d = 1 + Math.round(Math.log10(Math.abs(val2 - val1))); var e = Math.pow(10, -d); var valR = Math.round(vali * e) / e; var obj = axes.tickText(ax, valR); From 9dd3003d27d900871b46ab6626c1fe234214f80f Mon Sep 17 00:00:00 2001 From: Santiago Date: Tue, 3 Jan 2023 23:38:43 +0000 Subject: [PATCH 40/49] Update baseline image for tickmode sync --- test/image/baselines/z-new_tickmode_sync.png | Bin 33682 -> 34607 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/z-new_tickmode_sync.png b/test/image/baselines/z-new_tickmode_sync.png index fd0c4a9c14393535118498527e75281bc08814dc..426856047e20901b3e4f2f9d4ad5c4a451ef6629 100644 GIT binary patch literal 34607 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 OKgtSf@_DkxKK}>v#3!!+ literal 33682 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 I34Ndc10S_#qW}N^ From 0e35a0f25b3d534aa71786ecc4323b8feab4fd02 Mon Sep 17 00:00:00 2001 From: Santiago Date: Wed, 4 Jan 2023 16:15:45 +0000 Subject: [PATCH 41/49] Improve z-new_tickmode_sync.json --- src/plots/cartesian/axes.js | 12 +++---- test/image/mocks/z-new_tickmode_sync.json | 39 +++++++++++++---------- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index abfcc2fbf8f..f53c187c8c9 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -1228,17 +1228,17 @@ function syncTicks(ax) { var ticksOut = []; if(baseAxis._vals) { for(var i = 0; i < baseAxis._vals.length; i++) { + // filter vals with noTick flag + if(baseAxis._vals[i].noTick) { + continue; + } + // get the position of the every tick var pos = baseAxis.l2p(baseAxis._vals[i].x); // get the tick for the current axis based on position var vali = ax.p2l(pos); - var val1 = ax.p2l(pos - 0.1); - var val2 = ax.p2l(pos + 0.1); - var d = 1 + Math.round(Math.log10(Math.abs(val2 - val1))); - var e = Math.pow(10, -d); - var valR = Math.round(vali * e) / e; - var obj = axes.tickText(ax, valR); + var obj = axes.tickText(ax, vali); // assign minor ticks if(baseAxis._vals[i].minor) { diff --git a/test/image/mocks/z-new_tickmode_sync.json b/test/image/mocks/z-new_tickmode_sync.json index 2f2d75b930e..3daeb9b9a65 100644 --- a/test/image/mocks/z-new_tickmode_sync.json +++ b/test/image/mocks/z-new_tickmode_sync.json @@ -4,11 +4,11 @@ "name": "Apples", "type": "bar", "x": [ - "Jan", - "Feb", - "Mar", - "Apr", - "May" + "2000-01", + "2000-02", + "2000-03", + "2000-04", + "2000-05" ], "y": [ 232, @@ -24,13 +24,17 @@ "x": [ "A", "B", - "C" - ], - "y": [ + "C", + "D", + "E" + ], + "y": [ 0, - 0.5, - 1 - ], + 0.4, + 0.1, + 0.3, + 0.2 + ], "yaxis": "y2", "xaxis": "x2" } @@ -44,15 +48,18 @@ }, "width": 700, "showlegend": false, + "xaxis": { + "ticklen": 10, + "tickwidth": 3, + "ticklabelmode": "period" + }, "xaxis2": { "anchor": "y2", "side": "top", "overlaying": "x", "tickmode": "sync", - "domain": [ - 0.52, - 1 - ] + "ticklen": 10, + "tickwidth": 3 }, "yaxis": { "title": { @@ -61,7 +68,7 @@ "side": "left", "range": [ 0, - 2506 + 2500 ], "ticklen": 10, "tickwidth": 3, From 685bef689899db7d5fbef0040b5ced11a97539a1 Mon Sep 17 00:00:00 2001 From: Santiago Date: Wed, 4 Jan 2023 16:20:02 +0000 Subject: [PATCH 42/49] Add grid to z-new_tickmode_sync.json --- test/image/mocks/z-new_tickmode_sync.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/image/mocks/z-new_tickmode_sync.json b/test/image/mocks/z-new_tickmode_sync.json index 3daeb9b9a65..7c2cbd91ed0 100644 --- a/test/image/mocks/z-new_tickmode_sync.json +++ b/test/image/mocks/z-new_tickmode_sync.json @@ -49,6 +49,7 @@ "width": 700, "showlegend": false, "xaxis": { + "showgrid": true, "ticklen": 10, "tickwidth": 3, "ticklabelmode": "period" From 6c363ad3ee0be318649933e3f0e19bf593686235 Mon Sep 17 00:00:00 2001 From: Santiago Date: Wed, 4 Jan 2023 16:34:30 +0000 Subject: [PATCH 43/49] Update baseline image for tickmode sync --- test/image/baselines/z-new_tickmode_sync.png | Bin 34607 -> 46425 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/z-new_tickmode_sync.png b/test/image/baselines/z-new_tickmode_sync.png index 426856047e20901b3e4f2f9d4ad5c4a451ef6629..e4db19d05c07b3d1ec7665bc745bf3778d053552 100644 GIT binary patch literal 46425 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 OKgtSf@_DkxKK}>v#3!!+ From fd78e8db88d5d8d89aa8c4bdc981815b732d2f8c Mon Sep 17 00:00:00 2001 From: Santiago Date: Wed, 4 Jan 2023 17:52:40 +0000 Subject: [PATCH 44/49] Removing tickmode sync from minor ticks --- src/plots/cartesian/layout_attributes.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/plots/cartesian/layout_attributes.js b/src/plots/cartesian/layout_attributes.js index a21bc96eade..f5ef3d8fb4f 100644 --- a/src/plots/cartesian/layout_attributes.js +++ b/src/plots/cartesian/layout_attributes.js @@ -949,7 +949,19 @@ module.exports = { }, minor: { - tickmode: tickmode, + tickmode: extendFlat({}, axesAttrs.tickmode, { + values: ['auto', 'linear', 'array'], + description: [ + 'Sets the tick mode for this axis.', + 'If *auto*, the number of ticks is set via `nticks`.', + 'If *linear*, the placement of the ticks is determined by', + 'a starting position `tick0` and a tick step `dtick`', + '(*linear* is the default value if `tick0` and `dtick` are provided).', + 'If *array*, the placement of the ticks is set via `tickvals`', + 'and the tick text is `ticktext`.', + '(*array* is the default value if `tickvals` is provided).' + ].join(' ') + }), nticks: makeNticks('minor'), tick0: tick0, dtick: dtick, From 795350abd1232b2aca6941815b03170fc7f80d61 Mon Sep 17 00:00:00 2001 From: Santiago Date: Wed, 4 Jan 2023 18:41:46 +0000 Subject: [PATCH 45/49] Update plot-schema without tickmode for minor axes --- src/plots/cartesian/layout_attributes.js | 40 +++++++++++------------- test/plot-schema.json | 10 +++--- 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/src/plots/cartesian/layout_attributes.js b/src/plots/cartesian/layout_attributes.js index f5ef3d8fb4f..5484c492f7c 100644 --- a/src/plots/cartesian/layout_attributes.js +++ b/src/plots/cartesian/layout_attributes.js @@ -12,12 +12,9 @@ var constants = require('./constants'); var HOUR = constants.HOUR_PATTERN; var DAY_OF_WEEK = constants.WEEKDAY_PATTERN; -var tickmode = { - valType: 'enumerated', - values: ['auto', 'linear', 'array', 'sync'], - editType: 'ticks', - impliedEdits: {tick0: undefined, dtick: undefined}, - description: [ +function makeTickmode(minor) { + var values = ['auto', 'linear', 'array', 'sync']; + var description = [ 'Sets the tick mode for this axis.', 'If *auto*, the number of ticks is set via `nticks`.', 'If *linear*, the placement of the ticks is determined by', @@ -28,7 +25,20 @@ var tickmode = { '(*array* is the default value if `tickvals` is provided).', 'If *sync*, the number of ticks will sync with the overlayed axis', 'set by `overlaying` property.' - ].join(' ') + ]; + + if(minor) { + values = values.slice(0, -1); + description = description.slice(0, -2); + } + + return { + valType: 'enumerated', + values: values, + editType: 'ticks', + impliedEdits: {tick0: undefined, dtick: undefined}, + description: description.join(' ') + } }; function makeNticks(minor) { @@ -506,7 +516,7 @@ module.exports = { }), // ticks - tickmode: tickmode, + tickmode: makeTickmode(), nticks: makeNticks(), tick0: tick0, dtick: dtick, @@ -949,19 +959,7 @@ module.exports = { }, minor: { - tickmode: extendFlat({}, axesAttrs.tickmode, { - values: ['auto', 'linear', 'array'], - description: [ - 'Sets the tick mode for this axis.', - 'If *auto*, the number of ticks is set via `nticks`.', - 'If *linear*, the placement of the ticks is determined by', - 'a starting position `tick0` and a tick step `dtick`', - '(*linear* is the default value if `tick0` and `dtick` are provided).', - 'If *array*, the placement of the ticks is set via `tickvals`', - 'and the tick text is `ticktext`.', - '(*array* is the default value if `tickvals` is provided).' - ].join(' ') - }), + tickmode: makeTickmode('minor'), nticks: makeNticks('minor'), tick0: tick0, dtick: dtick, diff --git a/test/plot-schema.json b/test/plot-schema.json index 80cbedcbb93..1863b863a2a 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -10278,15 +10278,14 @@ "valType": "number" }, "tickmode": { - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided). If *sync*, the number of ticks will sync with the overlayed axis set by `overlaying` property.", + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", "editType": "ticks", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "ticks": { @@ -11537,15 +11536,14 @@ "valType": "number" }, "tickmode": { - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided). If *sync*, the number of ticks will sync with the overlayed axis set by `overlaying` property.", + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided).", "editType": "ticks", "impliedEdits": {}, "valType": "enumerated", "values": [ "auto", "linear", - "array", - "sync" + "array" ] }, "ticks": { From 50165f6034227bc36785dd6f58b7ff3eb18bf609 Mon Sep 17 00:00:00 2001 From: Santiago Date: Thu, 5 Jan 2023 09:22:33 +0000 Subject: [PATCH 46/49] Fix lint --- src/plots/cartesian/layout_attributes.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plots/cartesian/layout_attributes.js b/src/plots/cartesian/layout_attributes.js index 5484c492f7c..213909ca334 100644 --- a/src/plots/cartesian/layout_attributes.js +++ b/src/plots/cartesian/layout_attributes.js @@ -25,7 +25,7 @@ function makeTickmode(minor) { '(*array* is the default value if `tickvals` is provided).', 'If *sync*, the number of ticks will sync with the overlayed axis', 'set by `overlaying` property.' - ]; + ]; if(minor) { values = values.slice(0, -1); @@ -38,8 +38,8 @@ function makeTickmode(minor) { editType: 'ticks', impliedEdits: {tick0: undefined, dtick: undefined}, description: description.join(' ') - } -}; + }; +} function makeNticks(minor) { return { From 6e317d4875784d1566a779c0b64b645820aef075 Mon Sep 17 00:00:00 2001 From: Filipe Santiago Date: Wed, 11 Jan 2023 09:20:57 +0000 Subject: [PATCH 47/49] Improved tickmode schema declaration --- src/components/colorbar/attributes.js | 14 +------- src/plots/cartesian/layout_attributes.js | 39 ++++++++++------------ src/plots/cartesian/position_defaults.js | 6 ++++ src/plots/cartesian/tick_value_defaults.js | 4 +-- src/plots/gl3d/layout/axis_attributes.js | 14 +------- src/plots/polar/layout_attributes.js | 14 +------- src/plots/ternary/layout_attributes.js | 14 +------- src/traces/indicator/attributes.js | 14 +------- 8 files changed, 30 insertions(+), 89 deletions(-) diff --git a/src/components/colorbar/attributes.js b/src/components/colorbar/attributes.js index a2e0408d208..9811ca15da6 100644 --- a/src/components/colorbar/attributes.js +++ b/src/components/colorbar/attributes.js @@ -129,19 +129,7 @@ module.exports = overrideAll({ description: 'Sets the color of padded area.' }, // tick and title properties named and function exactly as in axes - tickmode: extendFlat({}, axesAttrs.tickmode, { - values: ['auto', 'linear', 'array'], - description: [ - 'Sets the tick mode for this axis.', - 'If *auto*, the number of ticks is set via `nticks`.', - 'If *linear*, the placement of the ticks is determined by', - 'a starting position `tick0` and a tick step `dtick`', - '(*linear* is the default value if `tick0` and `dtick` are provided).', - 'If *array*, the placement of the ticks is set via `tickvals`', - 'and the tick text is `ticktext`.', - '(*array* is the default value if `tickvals` is provided).' - ].join(' ') - }), + tickmode: axesAttrs.minor.tickmode, nticks: axesAttrs.nticks, tick0: axesAttrs.tick0, dtick: axesAttrs.dtick, diff --git a/src/plots/cartesian/layout_attributes.js b/src/plots/cartesian/layout_attributes.js index 213909ca334..80a39a73be2 100644 --- a/src/plots/cartesian/layout_attributes.js +++ b/src/plots/cartesian/layout_attributes.js @@ -12,9 +12,12 @@ var constants = require('./constants'); var HOUR = constants.HOUR_PATTERN; var DAY_OF_WEEK = constants.WEEKDAY_PATTERN; -function makeTickmode(minor) { - var values = ['auto', 'linear', 'array', 'sync']; - var description = [ +var minorTickmode = { + valType: 'enumerated', + values: ['auto', 'linear', 'array'], + editType: 'ticks', + impliedEdits: {tick0: undefined, dtick: undefined}, + description: [ 'Sets the tick mode for this axis.', 'If *auto*, the number of ticks is set via `nticks`.', 'If *linear*, the placement of the ticks is determined by', @@ -22,24 +25,18 @@ function makeTickmode(minor) { '(*linear* is the default value if `tick0` and `dtick` are provided).', 'If *array*, the placement of the ticks is set via `tickvals`', 'and the tick text is `ticktext`.', - '(*array* is the default value if `tickvals` is provided).', + '(*array* is the default value if `tickvals` is provided).' + ].join(' ') +}; + +var tickmode = extendFlat({}, minorTickmode, { + values: minorTickmode.values.slice().concat(['sync']), + description: [ + minorTickmode.description, 'If *sync*, the number of ticks will sync with the overlayed axis', 'set by `overlaying` property.' - ]; - - if(minor) { - values = values.slice(0, -1); - description = description.slice(0, -2); - } - - return { - valType: 'enumerated', - values: values, - editType: 'ticks', - impliedEdits: {tick0: undefined, dtick: undefined}, - description: description.join(' ') - }; -} + ].join(' ') +}); function makeNticks(minor) { return { @@ -516,7 +513,7 @@ module.exports = { }), // ticks - tickmode: makeTickmode(), + tickmode: tickmode, nticks: makeNticks(), tick0: tick0, dtick: dtick, @@ -959,7 +956,7 @@ module.exports = { }, minor: { - tickmode: makeTickmode('minor'), + tickmode: minorTickmode, nticks: makeNticks('minor'), tick0: tick0, dtick: dtick, diff --git a/src/plots/cartesian/position_defaults.js b/src/plots/cartesian/position_defaults.js index cd693439661..5458ed7fb0a 100644 --- a/src/plots/cartesian/position_defaults.js +++ b/src/plots/cartesian/position_defaults.js @@ -83,6 +83,12 @@ module.exports = function handlePositionDefaults(containerIn, containerOut, coer // which applied in the calculation below: if(domain[0] > domain[1] - 1 / 4096) containerOut.domain = dfltDomain; Lib.noneOrAll(containerIn.domain, containerOut.domain, dfltDomain); + + // tickmode sync needs an overlaying axis, otherwise + // we should default it to 'auto' + if(containerOut.tickmode === 'sync') { + containerOut.tickmode = 'auto'; + } } coerce('layer'); diff --git a/src/plots/cartesian/tick_value_defaults.js b/src/plots/cartesian/tick_value_defaults.js index 479d033c887..92d83983186 100644 --- a/src/plots/cartesian/tick_value_defaults.js +++ b/src/plots/cartesian/tick_value_defaults.js @@ -26,10 +26,8 @@ module.exports = function handleTickValueDefaults(containerIn, containerOut, coe 'auto'; var tickmode = coerce(prefix + 'tickmode', tickmodeDefault); - if(tickmode === 'auto') { + if(tickmode === 'auto' || tickmode === 'sync') { coerce(prefix + 'nticks'); - } else if(tickmode === 'sync') { - coerce('overlaying'); } else if(tickmode === 'linear') { // dtick is usually a positive number, but there are some // special strings available for log or date axes diff --git a/src/plots/gl3d/layout/axis_attributes.js b/src/plots/gl3d/layout/axis_attributes.js index ae3805a3f44..9c2732ad375 100644 --- a/src/plots/gl3d/layout/axis_attributes.js +++ b/src/plots/gl3d/layout/axis_attributes.js @@ -74,19 +74,7 @@ module.exports = overrideAll({ anim: false }), // ticks - tickmode: extendFlat({}, axesAttrs.tickmode, { - values: ['auto', 'linear', 'array'], - description: [ - 'Sets the tick mode for this axis.', - 'If *auto*, the number of ticks is set via `nticks`.', - 'If *linear*, the placement of the ticks is determined by', - 'a starting position `tick0` and a tick step `dtick`', - '(*linear* is the default value if `tick0` and `dtick` are provided).', - 'If *array*, the placement of the ticks is set via `tickvals`', - 'and the tick text is `ticktext`.', - '(*array* is the default value if `tickvals` is provided).' - ].join(' ') - }), + tickmode: axesAttrs.minor.tickmode, nticks: axesAttrs.nticks, tick0: axesAttrs.tick0, dtick: axesAttrs.dtick, diff --git a/src/plots/polar/layout_attributes.js b/src/plots/polar/layout_attributes.js index 54f1e4888e6..41321f262a4 100644 --- a/src/plots/polar/layout_attributes.js +++ b/src/plots/polar/layout_attributes.js @@ -23,19 +23,7 @@ var axisLineGridAttr = overrideAll({ }, 'plot', 'from-root'); var axisTickAttrs = overrideAll({ - tickmode: extendFlat({}, axesAttrs.tickmode, { - values: ['auto', 'linear', 'array'], - description: [ - 'Sets the tick mode for this axis.', - 'If *auto*, the number of ticks is set via `nticks`.', - 'If *linear*, the placement of the ticks is determined by', - 'a starting position `tick0` and a tick step `dtick`', - '(*linear* is the default value if `tick0` and `dtick` are provided).', - 'If *array*, the placement of the ticks is set via `tickvals`', - 'and the tick text is `ticktext`.', - '(*array* is the default value if `tickvals` is provided).' - ].join(' ') - }), + tickmode: axesAttrs.minor.tickmode, nticks: axesAttrs.nticks, tick0: axesAttrs.tick0, dtick: axesAttrs.dtick, diff --git a/src/plots/ternary/layout_attributes.js b/src/plots/ternary/layout_attributes.js index 0664cf148dd..126ebdcea37 100644 --- a/src/plots/ternary/layout_attributes.js +++ b/src/plots/ternary/layout_attributes.js @@ -15,19 +15,7 @@ var ternaryAxesAttrs = { }, color: axesAttrs.color, // ticks - tickmode: extendFlat({}, axesAttrs.tickmode, { - values: ['auto', 'linear', 'array'], - description: [ - 'Sets the tick mode for this axis.', - 'If *auto*, the number of ticks is set via `nticks`.', - 'If *linear*, the placement of the ticks is determined by', - 'a starting position `tick0` and a tick step `dtick`', - '(*linear* is the default value if `tick0` and `dtick` are provided).', - 'If *array*, the placement of the ticks is set via `tickvals`', - 'and the tick text is `ticktext`.', - '(*array* is the default value if `tickvals` is provided).' - ].join(' ') - }), + tickmode: axesAttrs.minor.tickmode, nticks: extendFlat({}, axesAttrs.nticks, {dflt: 6, min: 1}), tick0: axesAttrs.tick0, dtick: axesAttrs.dtick, diff --git a/src/traces/indicator/attributes.js b/src/traces/indicator/attributes.js index 013e88a2916..56b349a945f 100644 --- a/src/traces/indicator/attributes.js +++ b/src/traces/indicator/attributes.js @@ -307,19 +307,7 @@ module.exports = { dflt: true }), // tick and title properties named and function exactly as in axes - tickmode: extendFlat({}, axesAttrs.tickmode, { - values: ['auto', 'linear', 'array'], - description: [ - 'Sets the tick mode for this axis.', - 'If *auto*, the number of ticks is set via `nticks`.', - 'If *linear*, the placement of the ticks is determined by', - 'a starting position `tick0` and a tick step `dtick`', - '(*linear* is the default value if `tick0` and `dtick` are provided).', - 'If *array*, the placement of the ticks is set via `tickvals`', - 'and the tick text is `ticktext`.', - '(*array* is the default value if `tickvals` is provided).' - ].join(' ') - }), + tickmode: axesAttrs.minor.tickmode, nticks: axesAttrs.nticks, tick0: axesAttrs.tick0, dtick: axesAttrs.dtick, From 196b7ddf8e8297698088deff3b2b6422d7e5715d Mon Sep 17 00:00:00 2001 From: Filipe Santiago Date: Wed, 11 Jan 2023 09:52:48 +0000 Subject: [PATCH 48/49] Fix lint error --- src/plots/cartesian/position_defaults.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/position_defaults.js b/src/plots/cartesian/position_defaults.js index 5458ed7fb0a..907501830ce 100644 --- a/src/plots/cartesian/position_defaults.js +++ b/src/plots/cartesian/position_defaults.js @@ -84,7 +84,7 @@ module.exports = function handlePositionDefaults(containerIn, containerOut, coer if(domain[0] > domain[1] - 1 / 4096) containerOut.domain = dfltDomain; Lib.noneOrAll(containerIn.domain, containerOut.domain, dfltDomain); - // tickmode sync needs an overlaying axis, otherwise + // tickmode sync needs an overlaying axis, otherwise // we should default it to 'auto' if(containerOut.tickmode === 'sync') { containerOut.tickmode = 'auto'; From 25e1389436ce7105499de8382287d0750bbd0ec5 Mon Sep 17 00:00:00 2001 From: Victor Bezak Date: Wed, 11 Jan 2023 14:46:22 -0600 Subject: [PATCH 49/49] added commit file to draftlogs --- draftlogs/6356_add.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 draftlogs/6356_add.md diff --git a/draftlogs/6356_add.md b/draftlogs/6356_add.md new file mode 100644 index 00000000000..929da457d81 --- /dev/null +++ b/draftlogs/6356_add.md @@ -0,0 +1 @@ +- Add `sync` tickmode option [[#6356](https://github.com/plotly/plotly.js/pull/6356)] \ No newline at end of file