From bc1c5c840d1a6a3f1601918b1ed092895fb60f4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Thu, 13 Apr 2017 22:26:06 -0400 Subject: [PATCH 1/6] :hocho: arraytools dep (sorry @bpostlethwaite) - and replace it by Lib.extendFlat({}, /* */) --- package.json | 1 - src/plots/gl3d/layout/convert.js | 10 ++++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index f5b0f7157a1..fc5a7dac605 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,6 @@ "dependencies": { "3d-view": "^2.0.0", "alpha-shape": "^1.0.0", - "arraytools": "^1.0.0", "color-rgba": "^1.0.4", "convex-hull": "^1.0.3", "country-regex": "^1.1.0", diff --git a/src/plots/gl3d/layout/convert.js b/src/plots/gl3d/layout/convert.js index 1bba5caebbe..a86c35c4767 100644 --- a/src/plots/gl3d/layout/convert.js +++ b/src/plots/gl3d/layout/convert.js @@ -9,12 +9,10 @@ 'use strict'; -var arrtools = require('arraytools'); +var Lib = require('../../../lib'); var convertHTMLToUnicode = require('../../../lib/html2unicode'); var str2RgbaArray = require('../../../lib/str2rgbarray'); -var arrayCopy1D = arrtools.copy1D; - var AXES_NAMES = ['xaxis', 'yaxis', 'zaxis']; function AxesOptions() { @@ -64,9 +62,9 @@ function AxesOptions() { [0.8, 0.8, 0.8, 0.5] ]; // some default values are stored for applying model transforms - this._defaultTickPad = arrayCopy1D(this.tickPad); - this._defaultLabelPad = arrayCopy1D(this.labelPad); - this._defaultLineTickLength = arrayCopy1D(this.lineTickLength); + this._defaultTickPad = Lib.extendFlat([], this.tickPad); + this._defaultLabelPad = Lib.extendFlat([], this.labelPad); + this._defaultLineTickLength = Lib.extendFlat([], this.lineTickLength); } var proto = AxesOptions.prototype; From 9c76d7af1680e0bf20472ae26bdfa78ac94b7350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Thu, 13 Apr 2017 22:26:44 -0400 Subject: [PATCH 2/6] exit early in axis defaults when visible is false - no need to coerce attribute that don't have an effect --- src/plots/cartesian/axis_defaults.js | 29 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/plots/cartesian/axis_defaults.js b/src/plots/cartesian/axis_defaults.js index 49691e9400c..631255c5a9f 100644 --- a/src/plots/cartesian/axis_defaults.js +++ b/src/plots/cartesian/axis_defaults.js @@ -47,7 +47,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce, return Lib.coerce2(containerIn, containerOut, layoutAttributes, attr, dflt); } - coerce('visible', !options.cheateronly); + var visible = coerce('visible', !options.cheateronly); var axType = containerOut.type; @@ -58,6 +58,20 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce, setConvert(containerOut, layoutOut); + var autoRange = coerce('autorange', !containerOut.isValidRange(containerIn.range)); + + if(autoRange) coerce('rangemode'); + + coerce('range'); + containerOut.cleanRange(); + + handleCategoryOrderDefaults(containerIn, containerOut, coerce); + containerOut._initialCategories = axType === 'category' ? + orderedCategories(letter, containerOut.categoryorder, containerOut.categoryarray, options.data) : + []; + + if(!visible) return containerOut; + var dfltColor = coerce('color'); // if axis.color was provided, use it for fonts too; otherwise, // inherit from global font color in case that was provided. @@ -70,17 +84,9 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce, color: dfltFontColor }); - var autoRange = coerce('autorange', !containerOut.isValidRange(containerIn.range)); - - if(autoRange) coerce('rangemode'); - - coerce('range'); - containerOut.cleanRange(); - handleTickValueDefaults(containerIn, containerOut, coerce, axType); handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options); handleTickMarkDefaults(containerIn, containerOut, coerce, options); - handleCategoryOrderDefaults(containerIn, containerOut, coerce); var lineColor = coerce2('linecolor', dfltColor), lineWidth = coerce2('linewidth'), @@ -111,10 +117,5 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce, delete containerOut.zerolinewidth; } - // fill in categories - containerOut._initialCategories = axType === 'category' ? - orderedCategories(letter, containerOut.categoryorder, containerOut.categoryarray, options.data) : - []; - return containerOut; }; From 85d6b8af377ab7212f251cab314fb42e1f55458c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Thu, 13 Apr 2017 22:27:02 -0400 Subject: [PATCH 3/6] add axis `visible: false` mock --- test/image/baselines/axes_visible-false.png | Bin 0 -> 15137 bytes test/image/mocks/axes_visible-false.json | 9 +++++++++ 2 files changed, 9 insertions(+) create mode 100644 test/image/baselines/axes_visible-false.png create mode 100644 test/image/mocks/axes_visible-false.json diff --git a/test/image/baselines/axes_visible-false.png b/test/image/baselines/axes_visible-false.png new file mode 100644 index 0000000000000000000000000000000000000000..3f12542a06ec24443c4bde44172876d4bc63898a GIT binary patch literal 15137 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

~Y`id?NUy^tX`$)ST1uO!NE^&xeK83bNQ zN+ZO}nPXi)YLaJ^v*zn2-P!~D0%vBAS{Ry3hq)r)$L#_+F6j3LOOKi5T(K2qDN0w@ zcUvVZGU}(Ge?A8t-IjLbEdWTc%BDgmbw4~PotUj5X0AUcB+N6oWm5k!%QE}Wj(sh1 z1i{`)lDz&ee<3EG<}c*Lp6r2x;%B>2{Ch7%!Cy>i)+p#Il@9VQ1I1LU>Rp9wFb~Hx=KG3EbE7Lhbvf+Y3~5)W!mOz zw*fnGA#NBHBG#yF?g}hC(38(DieVZzm1LA7SJ8xMx5;C%NryFef;XZUU8-Wm}hN`D#KGYLf6l zxO?OGMS#u|BYcQ92XXhVBkA3{RjT)W!%I8lqx{lvoYEcv0OE81A0e^$_H!;GVzKMN zYU8qrFB8ySOX%6Y0lfXS%7wRjMr=$sm)cF-o7*2^uMCI7=7y&yOw)fb()7c7V7P@G28Tch14t#c#2?eQhug%rhdeI!q;284!!30jrFM(? zxfl)0jp)^YK98Pc84Sm7SWUbxMa$xsqC4ma`C!_+cg8I-UQ)d<)^`pn**DWxL$9BY z*S_`jG;|voOk{R`wFy0+XgHtD(C7$!D0ah>T;9@=OE|M%qfa#oYDv%z3w z7VuxHGRqcN63o$gY43;dlPj$UMX&K2IS^v%(fWEtk2w*;0H6SxUzlJ12LAji{d;%W z8ml;Z0TIecF8MnPh z_U%Pz=cftK&fVEYmdQxlB`AK-VavU3~T-uawh z&V@d$ppGfURb18?cXU??V8+H30qiJ$Hxu14G5gC`D~@jLa?O@( zX-qX5D2N_7J{dk}@Krtnul%o~EqxicszI%=7l2O&(pLNZ z+X?fEaiwTGw5n)(V4$@g**DM_b(PxYDBCLWjaLv~`QFL2Z~L`H-x*CXY+s=J8eLg1 z@K5oZRUSh}5fp9E$a6or_@>H{6Wxmtm|2E5#iHW>qFh_eohxA+&b2jaD|o=rF?*gx zkFF1kJU1ioGKG+cw~kDY4HC*XrusMBs7`8$yJLSRmv00Z*S45cwdDmIB20jv4}kH>pj^uuui{p+UI&<-JcPQCm}=$ zQBx@;E%O01k>f6DLh!Y#Nu4=}a4e{{>fXDu9-np9;Xm2 zuHQ6)8!7Vew&{H1+?bcjL{sO`dh}NC&_cnChP*OTjq_OP=@L9M(;=Jw>Tl3Xy>%Z& zD;)uf1`jseE}>QJhj+hd(m?iu_yfwd^djzFhJAhFF2uzJTM^;dxK$kcKwgJJo)1(& zyH%%XMBPK04?Ww%XL_r@E2*{t!K#sjpjv}#DF;92k$u0QrfSzr&@r>oa8Hp2q*fzJ zNJ+fXdbtM50~Gdq;gO~zKCXNfO!wH+%!RW#_j;(~A^{5rPG4ssY{spCwSflK&F#a8 z9R#0@I}7KRd@0sYc=^r2{)y!`2VxKX%_ua?1(I6S?u1qj>Mkt#rz2g5Lo`t!AamgA z17sVxjZh_u%>`EKbE4itKNG0gXV;fliwXpWTC?8^PV%au`^9|&c8x8FRZthEJc!AQ z5UwAEPFd$KXgcWXu$xoD+y*e%(h)wge-|QV-}Vm^_2pY>%zEXedNO(}^q3-Wtvv*B zUZHsMqypp`uom=E6covNkU&MR_x((p1|2Z*n`*7|o`bm5@uuw_zcRcIP8U@)c(6a;u z8$Jk4U8K_ieKPOI=FnO~Pv#lmD)CmTlM9wwhyhL$O(-~Zbcy=Thz2MBJ`w14p0%+P zzE>P=k#ZC2-FN%zz*&Gjfo*$YOT8%N-qPXTEcNZjo)q34D=~eNgtswG6J1Mk*0|kG zJrV{0C{y~Wgm0%15dhH(mO?p8P+>ja6VF`BE9#t4M(3%&@ij$y&?_1ZN z$-s(lAVK5T$u!qQ?$5B&AP$JMLAaYDNb&qVuz@n}X9X>cD*&aZ0kmb?09r)?OJ>11 zJN*~qoq}UkIUmN#wIt3gtspc2ZQ?)y3rbzAyY9C9AIh_>s^;gOph1DvN;Ng+5Bfk$!I1CAnJh3%5HMW^l~wV!H>TPRQhv9mlALMe zMWno{=7u*~#EGxzXp;xZTj-n##=j|hgOpdLRYfyxmeYK*BZ+TcT^?Lcef-**kg#Gr ztN(safLh5Fd2gUII6-}=Wq~w~DYH@pL`0p-B=i%y8;Hhlz7^4)#28y@Fr$_W7N;2F zS3K|FGm>%->4Uj-OH^wp41X+CV*VY)rT^-NIW-n38s1B}k8k-^OkFMYRZRJ^Ai(~C zxbE}zmm49|p2c917d`OOz)|sTBQ;t@K`fnbSNq^8PkXBM0O{GHPqnzcu2UYOK|X`< zw|p6q-UrIm?DL1B$b*Y*zIE(SOQ{QAw4v}JKO?}GvG-mRVh0q}gU1!OWBiv)Q$WPQ zRNRAS%EC;7H=3z6?|aBU3{s?|25%s?GCt za%uhedFe0fQNU#I#t1wYPC3v#fI01|VnSR~4p9mH3&hLatmqmWcv`T*vtwyC-HJ3%7D^X4e5}2W_V@|w zlLu!1;NuL0F3si%MNeGFR74UdBkhp(BoZ-a48g+6yvkS=y`n;k_779}axZH0qa*)7 zP1I*=zIWP_ib$p8+eMz24bK%`^(l|tOT{DGj1{D>`;t46oc?w~V#%d7L!~fpuZ`7t zd5Xo4hAHLg&*44JD&Saw8`cO+8Ai?Mj+%lsf|Ov^b^+WDX%&w?CWHJeNm9x?mvgcD z(W4pbGDzsBk(M?x@TW4ITjlF}*6Hv{D}OAaKXH@dyHVCsXvuz+j;FE~K28me?IHhd zhi_oN*39<%O4~j-)@jL#ynDGh{*C&r2WNm~27mZ^4?(LS2-=v!OBn|2RP;Ls$lw{0BlQ6_`b?be>otWXd z^IL|77Ua8!S;D4)$3x7f^W!%clnZh*05B#{&AO6>>NW(j6eH8IWS+T5Jt0XwzA%gi1yNuCzb6jsJ3#N{oXefHa5FlYO)0xRwU0$-hM8 zpD?Qw&MO7NLjp&s(6h90Utx1!W%Zwzcalpj%$mr~eKJ*1bB@KjzFf_e5)nC4dpJ@# zPvNCcWS{-**^a&jO{t1`f?iEBd2(&fT&TSA40z?)v!pZqFA*;)tSZJlX9_m%2P?GjV{4gF2(3k>OR=JDo}?8 zqse&+L;N@3zjOEx4+sYSiwiV&{C5tN9Qwcb9F~0j-4-?_%nFRde|@Dpc|!Ae%Fzoq F{ttgNB~<_b literal 0 HcmV?d00001 diff --git a/test/image/mocks/axes_visible-false.json b/test/image/mocks/axes_visible-false.json new file mode 100644 index 00000000000..8caca6b9d5a --- /dev/null +++ b/test/image/mocks/axes_visible-false.json @@ -0,0 +1,9 @@ +{ + "data": [{ + "y": [1, 2, 3] + }], + "layout": { + "xaxis": { "visible": false }, + "yaxis": { "visible": false } + } +} From 54f092d95d0696f65da911dba6187a4cbefe9766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Thu, 13 Apr 2017 22:27:18 -0400 Subject: [PATCH 4/6] implement axis visible in 3D --- src/plots/gl3d/layout/convert.js | 11 +++++++++++ src/plots/gl3d/layout/spikes.js | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/src/plots/gl3d/layout/convert.js b/src/plots/gl3d/layout/convert.js index a86c35c4767..20b9c0298b8 100644 --- a/src/plots/gl3d/layout/convert.js +++ b/src/plots/gl3d/layout/convert.js @@ -74,6 +74,17 @@ proto.merge = function(sceneLayout) { for(var i = 0; i < 3; ++i) { var axes = sceneLayout[AXES_NAMES[i]]; + if(!axes.visible) { + opts.tickEnable[i] = false; + opts.labelEnable[i] = false; + opts.lineEnable[i] = false; + opts.lineTickEnable[i] = false; + opts.gridEnable[i] = false; + opts.zeroEnable[i] = false; + opts.backgroundEnable[i] = false; + continue; + } + // Axes labels opts.labels[i] = convertHTMLToUnicode(axes.title); if('titlefont' in axes) { diff --git a/src/plots/gl3d/layout/spikes.js b/src/plots/gl3d/layout/spikes.js index b835642f7cb..4d63677f25b 100644 --- a/src/plots/gl3d/layout/spikes.js +++ b/src/plots/gl3d/layout/spikes.js @@ -28,6 +28,12 @@ proto.merge = function(sceneLayout) { for(var i = 0; i < 3; ++i) { var axes = sceneLayout[AXES_NAMES[i]]; + if(!axes.visible) { + this.enabled[i] = false; + this.drawSides[i] = false; + continue; + } + this.enabled[i] = axes.showspikes; this.colors[i] = str2RGBArray(axes.spikecolor); this.drawSides[i] = axes.spikesides; From d9cb011819c8d9fb663a4eb06ab6791010d2d2a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Thu, 13 Apr 2017 22:27:30 -0400 Subject: [PATCH 5/6] add 3d axis `visible: false` mock --- .../baselines/gl3d_axes-visible-false.png | Bin 0 -> 8485 bytes test/image/mocks/gl3d_axes-visible-false.json | 22 ++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 test/image/baselines/gl3d_axes-visible-false.png create mode 100644 test/image/mocks/gl3d_axes-visible-false.json diff --git a/test/image/baselines/gl3d_axes-visible-false.png b/test/image/baselines/gl3d_axes-visible-false.png new file mode 100644 index 0000000000000000000000000000000000000000..dab999eeddbba477ea6304b5cd88e385c1d7af10 GIT binary patch literal 8485 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 Date: Mon, 17 Apr 2017 09:28:43 -0400 Subject: [PATCH 6/6] extendFlat -> slice --- src/plots/gl3d/layout/convert.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/plots/gl3d/layout/convert.js b/src/plots/gl3d/layout/convert.js index 20b9c0298b8..19814841d76 100644 --- a/src/plots/gl3d/layout/convert.js +++ b/src/plots/gl3d/layout/convert.js @@ -9,7 +9,6 @@ 'use strict'; -var Lib = require('../../../lib'); var convertHTMLToUnicode = require('../../../lib/html2unicode'); var str2RgbaArray = require('../../../lib/str2rgbarray'); @@ -62,9 +61,9 @@ function AxesOptions() { [0.8, 0.8, 0.8, 0.5] ]; // some default values are stored for applying model transforms - this._defaultTickPad = Lib.extendFlat([], this.tickPad); - this._defaultLabelPad = Lib.extendFlat([], this.labelPad); - this._defaultLineTickLength = Lib.extendFlat([], this.lineTickLength); + this._defaultTickPad = this.tickPad.slice(); + this._defaultLabelPad = this.labelPad.slice(); + this._defaultLineTickLength = this.lineTickLength.slice(); } var proto = AxesOptions.prototype;