From e0c01037170b1e26c0ce28602915ea00369b4458 Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Thu, 31 Oct 2019 23:16:46 +0200 Subject: [PATCH] Versatile clipping for lines (#6660) --- docs/charts/line.md | 2 + src/controllers/controller.line.js | 59 ++++++++++++-- .../controller.line/clip/default-x-max.json | 38 +++++++++ .../controller.line/clip/default-x-max.png | Bin 0 -> 8796 bytes .../controller.line/clip/default-x-min.json | 38 +++++++++ .../controller.line/clip/default-x-min.png | Bin 0 -> 9136 bytes .../controller.line/clip/default-x.json | 39 +++++++++ .../controller.line/clip/default-x.png | Bin 0 -> 9085 bytes .../controller.line/clip/default-y-max.json | 38 +++++++++ .../controller.line/clip/default-y-max.png | Bin 0 -> 14898 bytes .../controller.line/clip/default-y-min.json | 38 +++++++++ .../controller.line/clip/default-y-min.png | Bin 0 -> 15473 bytes .../controller.line/clip/default-y.json | 39 +++++++++ .../controller.line/clip/default-y.png | Bin 0 -> 14728 bytes .../controller.line/clip/specified.json | 77 ++++++++++++++++++ .../controller.line/clip/specified.png | Bin 0 -> 19952 bytes 16 files changed, 362 insertions(+), 6 deletions(-) create mode 100644 test/fixtures/controller.line/clip/default-x-max.json create mode 100644 test/fixtures/controller.line/clip/default-x-max.png create mode 100644 test/fixtures/controller.line/clip/default-x-min.json create mode 100644 test/fixtures/controller.line/clip/default-x-min.png create mode 100644 test/fixtures/controller.line/clip/default-x.json create mode 100644 test/fixtures/controller.line/clip/default-x.png create mode 100644 test/fixtures/controller.line/clip/default-y-max.json create mode 100644 test/fixtures/controller.line/clip/default-y-max.png create mode 100644 test/fixtures/controller.line/clip/default-y-min.json create mode 100644 test/fixtures/controller.line/clip/default-y-min.png create mode 100644 test/fixtures/controller.line/clip/default-y.json create mode 100644 test/fixtures/controller.line/clip/default-y.png create mode 100644 test/fixtures/controller.line/clip/specified.json create mode 100644 test/fixtures/controller.line/clip/specified.png diff --git a/docs/charts/line.md b/docs/charts/line.md index beec61ed50f..50710180c01 100644 --- a/docs/charts/line.md +++ b/docs/charts/line.md @@ -51,6 +51,7 @@ The line chart allows a number of properties to be specified for each dataset. T | [`borderJoinStyle`](#line-styling) | `string` | Yes | - | `'miter'` | [`borderWidth`](#line-styling) | `number` | Yes | - | `3` | [`cubicInterpolationMode`](#cubicinterpolationmode) | `string` | Yes | - | `'default'` +| [`clip`](#line-styling) | number|object | - | - | `borderWidth / 2` | [`fill`](#line-styling) | boolean|string | Yes | - | `true` | [`hoverBackgroundColor`](#line-styling) | [`Color`](../general/colors.md) | Yes | - | `undefined` | [`hoverBorderCapStyle`](#line-styling) | `string` | Yes | - | `undefined` @@ -117,6 +118,7 @@ The style of the line can be controlled with the following properties: | `borderDashOffset` | Offset for line dashes. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset). | `borderJoinStyle` | Line joint style. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin). | `borderWidth` | The line width (in pixels). +| `clip` | How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. `0` = clip at chartArea. Clipping can also be configured per side: `clip: {left: 5, top: false, right: -2, bottom: 0}` | `fill` | How to fill the area under the line. See [area charts](area.md). | `lineTension` | Bezier curve tension of the line. Set to 0 to draw straightlines. This option is ignored if monotone cubic interpolation is used. | `showLine` | If false, the line is not drawn for this dataset. diff --git a/src/controllers/controller.line.js b/src/controllers/controller.line.js index 47adc08010c..350e53999ca 100644 --- a/src/controllers/controller.line.js +++ b/src/controllers/controller.line.js @@ -29,6 +29,51 @@ defaults._set('line', { } }); +function scaleClip(scale, halfBorderWidth) { + var tickOpts = scale && scale.options.ticks || {}; + var reverse = tickOpts.reverse; + var min = tickOpts.min === undefined ? halfBorderWidth : 0; + var max = tickOpts.max === undefined ? halfBorderWidth : 0; + return { + start: reverse ? max : min, + end: reverse ? min : max + }; +} + +function defaultClip(xScale, yScale, borderWidth) { + var halfBorderWidth = borderWidth / 2; + var x = scaleClip(xScale, halfBorderWidth); + var y = scaleClip(yScale, halfBorderWidth); + + return { + top: y.end, + right: x.end, + bottom: y.start, + left: x.start + }; +} + +function toClip(value) { + var t, r, b, l; + + if (helpers.isObject(value)) { + t = value.top; + r = value.right; + b = value.bottom; + l = value.left; + } else { + t = r = b = l = value; + } + + return { + top: t, + right: r, + bottom: b, + left: l + }; +} + + module.exports = DatasetController.extend({ datasetElementType: elements.Line, @@ -173,6 +218,7 @@ module.exports = DatasetController.extend({ values.spanGaps = valueOrDefault(config.spanGaps, options.spanGaps); values.tension = valueOrDefault(config.lineTension, lineOptions.tension); values.steppedLine = resolve([custom.steppedLine, config.steppedLine, lineOptions.stepped]); + values.clip = toClip(valueOrDefault(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth))); return values; }, @@ -275,18 +321,19 @@ module.exports = DatasetController.extend({ var meta = me.getMeta(); var points = meta.data || []; var area = chart.chartArea; + var canvas = chart.canvas; var i = 0; var ilen = points.length; - var halfBorderWidth; + var clip; if (me._showLine) { - halfBorderWidth = (meta.dataset._model.borderWidth || 0) / 2; + clip = meta.dataset._model.clip; helpers.canvas.clipArea(chart.ctx, { - left: area.left - halfBorderWidth, - right: area.right + halfBorderWidth, - top: area.top - halfBorderWidth, - bottom: area.bottom + halfBorderWidth + left: clip.left === false ? 0 : area.left - clip.left, + right: clip.right === false ? canvas.width : area.right + clip.right, + top: clip.top === false ? 0 : area.top - clip.top, + bottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom }); meta.dataset.draw(); diff --git a/test/fixtures/controller.line/clip/default-x-max.json b/test/fixtures/controller.line/clip/default-x-max.json new file mode 100644 index 00000000000..f69182d1f51 --- /dev/null +++ b/test/fixtures/controller.line/clip/default-x-max.json @@ -0,0 +1,38 @@ +{ + "config": { + "type": "scatter", + "data": { + "datasets": [{ + "borderColor": "red", + "data": [{"x":-5,"y":5},{"x":-4,"y":6},{"x":-3,"y":7},{"x":-2,"y":6},{"x":-1,"y":5},{"x":0,"y":4},{"x":1,"y":3},{"x":2,"y":2},{"x":3,"y":5},{"x":4,"y":7},{"x":5,"y":9}], + "fill": false, + "showLine": true, + "borderWidth": 20, + "pointRadius": 0 + }] + }, + "options": { + "responsive": false, + "legend": false, + "title": false, + "scales": { + "xAxes": [{ + "ticks": { + "max": 3, + "display": false + } + }], + "yAxes": [{"ticks": {"display": false}}] + }, + "layout": { + "padding": 24 + } + } + }, + "options": { + "canvas": { + "height": 256, + "width": 512 + } + } +} diff --git a/test/fixtures/controller.line/clip/default-x-max.png b/test/fixtures/controller.line/clip/default-x-max.png new file mode 100644 index 0000000000000000000000000000000000000000..8bb7d981c36d8322c93d572da7f1a95beaf4f44b GIT binary patch literal 8796 zcmeHNc{r5s*B{IIhST1$i4b06UUd9!rg=5VQQQRogG6kad`e4NOp(G8{_VhrTYsWtlkp3(F z!5A)NYb1Qc+K=*!3)dxpN%>T+k9qiJVLk8Ldhy%^bm43bac#t0ShG}t|4xdst>F|7 zz$d)ry%yIdWipjiJdG4M?O{T0wq+ou+W+6E{~}V7mB}&#L+lE@l#k!CHQG++PCVxQ z0OGc>ddo#;SNy*p|1S}L9NbK+Lkfw`9--|3lm&8+D%2W7FZvAfv^XfRhFfy zC80*!d)NIf@^O~im_;r@RiA+>{SL35HO`b0?$p=14SQ~nnbBglc4Dou2b!Z`_8=kA~T zTiF%`qAS$NyRs{{B?HK!-|<%d)5BgofEZE-M>JGS8W*&_W!IAOXK*!c!;O8I`M|rf z^)xFPFtK`7Zt`bMxF<gpWA?9-of&TpiFvy}A}zevIV4A+jvNMnTsUssK#3JYP@rnI2lL z$r*n`H%v)xZa@bcn91_|UbUV*+k$`(L%Us++&Je9$OAA%WGZ(y*WF*eg~QP&ayTS^ zcjh}?lPsoXH zd;Scw`@1p6L3vtn;E-cI9sNd$U0kf$W364!R&oi;uyY1K%|DkWKDj>Vo9Gl!E_4I31e;r^4i6&q_@fwnqX;H`;9MP*M)e4nbO4aS&QUYFg zneQh!8$`5DKhFs)ZRP$$(}9Ov>9VtNioLHJ^Y52UY@i)fQMd1IRiU;9$p+H*dwS0V zElhQwO@DXK%f%Rde(VhsqAiHgDk$Hyd#~({sSuc!)U`SoBj6pQ2*uKJNM+qhx9J)c zzuL521OzY&G#msQdxNqEdW~Mb@ayiN<_s7nZ;_5GX`Y_jiH9@#f1v9<^|M>7oKT1a zt%)V^P5UZBznVe*1BpemC1oxo0s~*!bWjbT->ysb^Y9-zS)q>M&-+N04#{MA|B zZs6x1Q(%)vo4g*g;{u1P=IaR6E(C@pn~A&i+L6@+M7{D*$Ca{9{t69;#iQZKX_&Br zylG*trX@SIYFto!0`tyIQA&aILnWbC!8fbYO8T~0FB>dn*~x3zlr|Mz8_&nlU`+x8 zY3_L_LW2v+K$Tb%pP7P{bIMVd4XjVGvRn@J-Pd7H+dxlwS2J3YWPujJ>5b)E#6Iqa z(G=4)B8T!2R^#*LH69LzNpO(OsRz)O^@~2T(+X*w@HS zxEtsf4z>c-;d@$8zk=%NO9a|lIQnip-*`Do5U3e)KF9r#aR;aotbb)V+LF@FZ~cV2 zc5hGU%3sZ|(m{mQZ1X}N@9H}(DdXtXrLnnV%(P(bk_2gV&RXiV_`1yz(T+!RMLt%h zDBf6(-;BjwdCuu}t7B%$;!;3x!xyKXIlomh1%qAOX@q;)%_$YAnLIM~VHr!}7wVh3 z5do25On+SD=3M_;7xF6y!QSJWv-Xgu?&woyp6IghnIBq#eV?iEzk*5-4k}N{=!fxq z%yL#BCIr%n_>2lNq_(OMBOJ?ajw?}vqg|n4tH&#yTEc&+deMzQkCj9;d^=cpV&Nb# z@WHi__vGt4z(Ct)y1gQ_ffgfqTDmd?{|gFp0sB{>;XKRj3T-6{Y4#x%PoE1o!wlBm%-?TBc1h~$muy}Wej zPc~u+jM6C{WE=HOI1WLpdqoeKrK9I}lWQi8ZoyedI_k z>C!c9*-$AY^>u<$8znb8E)xokmkXRa+??T}2(`g)R`?|wE`y-pWlrNk);QjT%c=B& z!4?SAju;W0y#f{uCE;q$^Z2`4G|`0`NaN=oek~7UPt#)Rw1mwTGkdgZggKnf+Um;8 z0AKgQL6(DD>71AL5N%-$wQ^o>zr>e^*`YiY=HP2R0(ZqQ{%woX;$06Ul`8^S0`+zC zxV5&;1RzQq0=KkBrhzN1np2#f42LzVqQ^E5*idGsbXjr$fqT)x5T#dyW-vP3uV~vm zESx>i$TQ&Qod&K@otIuXrXhHAZyWJqf72AI4;fL z?FaP)@3}#AEWD?;5?@@~sMlZ|={W@Myq8)`eP`DtRa>mdPP9EG41{h$JYRWn-e=}^ zhOx(UY}$2wPaM&WY}^)};rvr{Cs~Y!a@*^6I6G9lJ4(VUEkWBmc}`~G{(i|rV3JrT zSuXyrzW#c4El69}Q11GEjPf@vWUzk_IF+S${b%t+ClH;_mG^u{>PDo619XbPyQp)I*Bj5qu?gFSsn}j zTO(!7d~K&lUKKt1ocyH~?72c8f877o?Mlq&BzlTfLK!A+I5T6eY9fc+-K+c}^*YOfc)b5~$1?n`HK?~dl+1;K=GQ2$%W)&Ei=l61#xsmHT*Zjhy=lyEz zx1vHSI;gT$jDm>s82D`Gl#9|-{Wx($qIBC&6XEcMi$_4+No962FyK(0^__D`fHZ$S zi`Oe`043z%b>XgXttHuE6yfH4%6OZ%FHq=5Z(46+X z(!}s;R?pZ+stQVC9$x!^4}6+R?J{aE4q{FkAU%6q_PZ+)&B&&$JJk05&@3vWQ4_01 z0*}k-s6BawzP=*PpY)JX6c)Ix5Hx%4!K0NMY8j=C5b7t1sEO3tk}qXm%4%F>d8CU5 zSHDxw-s|+k=z+}X8}VA5%&z-)XFhFj^%IvV;@2;*YQh#(#*D`a&lZB!fHXa`KL+dasO8XUb@rv~Et<{TEQiL^`eX6O2FX~uoqc$qFo6SLA&nESr?%*80S)Bw7 z*;H2@*zB#g#7zZtK}n61a88}Khtfro4OPldUnza8U#b^hcYqqKRJTq$+4sfMCDMwL z1Y3FvklR9TOqFGJkk1V!$PwTq01Dm|9mlk$cFHGQ|Yj44?36E_e zF32Vrah3Ih{A#+2^-pd*rxS!+9j-{Mf4s)=LyYTb367|aHez^*MB5B|*AGZ5E>xF& z$lWG68{CEpIzDqi0f;-ob5D1PRr}CJBq6O=xw~?X=Xpn)K{~)(*rxryZ;DU>k*PcG z&VBnVp?P(QZfkn9sL|?GC!QPLhMm2d7f-E?Ukj6 z`WUDLu=v!kEjayxqlKs0SVCsQI?-$*_6mK-1-M z4ql&b-28G0lXP9y9g)bRuySowL)k=?RPY&C3>Tbog~Xh57sOhHEpd%*<}|wsb1(nJ zun5fs-?@`6!h%XTk2lZ0zU*;xd*XazNpBxMFwz{n0&M(&@+3-GFgQIbMhT3`Jd0*cTp)hO12kbbKnS?qljcKEV{X3tMLGMTTZ z5LGq?w-~wLC&0wA48G$PVFTDcRw;E4OvuiHSke+Jn*SlIBt@duob3C<)C*vSwC-{G z+n8+{vscGyg|ZWjtgd zHAunx;L;wo(n5RCwH~s1it<#`rlEgAcJF(dS+b9Jo%HcE-+o2UH*YPEOw;KChr|dbR${LWhKAW#iHz`G6OQwQM5YH#qPk z_jE&QU$Ry?7knTQ<9A~kCpAYCw?%OqZxvX!Vw;by)%4%N~X*C)Hd#5#2Rw5)FU4lhL9kToHv7wPYbBl7ECA}R63-M zV7_o*a@sYL_uNthdF8ob7Tn#OR@%*sLaKE`tzqZ1xCaBNLVcP7vD)^#+B3pbN^C7) zypS-X-J1ls#bDo*)Q>5Wi$NPLW(@LC4_Vzs6TW9e6YN#xI*pqpe&n@9id>Xo4EcW^ z9^f0QhC5oEaXl|MnDKdL4=q;JC+Na5C$G0)LcR>{`4R3z2awi%1#rJ;@`R4azEm9C zP}O+YaT))Q*skxeG#-=pv_1SeU51s2t0#GR!mT3CI3Wq(^SRx91jSc*zI@M8+`#nD zmhX~qI#`GEI8qkV*xrS%H6*h=>|o~pixwj9nM0wn8u7+2B#t#d=$7k%P@C0rW$*qd zDx$PW|HbtmJ;tIMGK88#Vv22dlM+X}Xn*bx@e$8!gQWd=3hdaQXLp0^ z?AMPyJMY_|W}ZHHlXjp!OWXH(FVFJOVv&D2L5TJpIrXD!I0{$@PUi*6s$|^eVh7y} zpYP(oDLLorzLeGBk;Z|~4dfoQt_#`dhk_JP-@eSu$ZFjFJ%_Piy=(GoTW8rngk|^- z&A$hf;j}; z&Vb^W+tD+#4X)%83C-!p{{hjySZ*yf|NAj>kPm1Hm{%_?-ZvPdLNtU*caqpwVaa8< z?LW!Exjy&KU@k-v`li9E0P;50S%HvMnx#%^yyJS#O^PM|PyZ#yrO?Qw@@)uOu9-}8>9}}&}S^cES zwCb5+uo95-cg^c^ebT#e*+&%RdvD+pli43<4xV*sdiiMANr?jp{i_G|#;&3I3Sy() z|F-fLO?ba=j1(a=n(Rh(x;w`KdXh9ekqM*nVi~_t{vb2*t%PwL^;UdSY+>jXP`sNH z9N!7=R`Gq!-pMO~BFTRwXW2ddVp1g7>-LZ*Mush&3|IaekG{OgtcNb{}VwrR*U0JBCC z(be%M;^v4JVuqy7Hr*75NYTIx1)@Hcl0IG5yu2-;IX79%q|4D;f7Ir1!i zTz!%JOtjpC!@d$Pq<(kfdM{6#R5^vnFrLKu`sNzs5s$Tn2|DYprn9h@9Q@*wN`6+x zCEEL5pU%5D7jp0qVP#Z<9?S*goccg9Ay1i7GAyQkKfy3<<5klBL{6SP~CBqh5kZ_` z_TIxYB-~wN3V*A%#KH&l*Tk9VC54*{O82Uh~)Pc97PyRpHjNG=?~|+CLz3d_%hBUy8oq1cFr}EqD?S-<>!D@Z9vMT4&ZE zLH}dYe81ZkZdDfoz{cD|(WYeEy977me=j6Y!ob{O?v04?wZwLI5(r*X(k_KR4v<{@ z79e|=@)uNw7jS`8xrHcc;$unKg*8;WGZa_b8Twnex2s8nAB#BFYlyvZu$Fh_RHrvz z^mjGL3TDsGb;j^)cAUD_IT?>P7g-twoTb|~J?FNOaNo@#Gxv{3WZ!;R#g<(xd`ibU zK7MP&7XF-UbO)}dW`LN$$*YfaPz`pZgA&4UbrI7Gn2H9I?0$}GKEvLzgXVcx&grq- zfV|>5wXoYBExQZ&l5>T!HO?-@X2(tpYN0gV94rJB1Izy5&Mfv0?mS`M&etYowlstZ zxSIg5kY!@-t`N9z0o)NdJQh0{a5tseR0yXhNAwn78vb1CgB`Fb@+>%JxxDWW%P&Qm{sB^(<3d##4uBnpwtj_?KCGF$Bhbwid10N@l+3Rhvfn z*k|gkk4A+h^)Z8bRzZvo^hJ>;?P}8eV~u literal 0 HcmV?d00001 diff --git a/test/fixtures/controller.line/clip/default-x-min.json b/test/fixtures/controller.line/clip/default-x-min.json new file mode 100644 index 00000000000..b4a4b0c3e40 --- /dev/null +++ b/test/fixtures/controller.line/clip/default-x-min.json @@ -0,0 +1,38 @@ +{ + "config": { + "type": "scatter", + "data": { + "datasets": [{ + "borderColor": "red", + "data": [{"x":-5,"y":5},{"x":-4,"y":6},{"x":-3,"y":7},{"x":-2,"y":6},{"x":-1,"y":5},{"x":0,"y":4},{"x":1,"y":3},{"x":2,"y":2},{"x":3,"y":5},{"x":4,"y":7},{"x":5,"y":9}], + "fill": false, + "showLine": true, + "borderWidth": 20, + "pointRadius": 0 + }] + }, + "options": { + "responsive": false, + "legend": false, + "title": false, + "scales": { + "xAxes": [{ + "ticks": { + "min": -2, + "display": false + } + }], + "yAxes": [{"ticks": {"display": false}}] + }, + "layout": { + "padding": 24 + } + } + }, + "options": { + "canvas": { + "height": 256, + "width": 512 + } + } +} diff --git a/test/fixtures/controller.line/clip/default-x-min.png b/test/fixtures/controller.line/clip/default-x-min.png new file mode 100644 index 0000000000000000000000000000000000000000..5406dd5eafd00d6fb06b074c863d9c2451b9807c GIT binary patch literal 9136 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 v3B&cAaHACwbm;&0dnf$|G%zt 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/controller.line/clip/default-y-max.json b/test/fixtures/controller.line/clip/default-y-max.json new file mode 100644 index 00000000000..1ab631bb4e6 --- /dev/null +++ b/test/fixtures/controller.line/clip/default-y-max.json @@ -0,0 +1,38 @@ +{ + "config": { + "type": "scatter", + "data": { + "datasets": [{ + "borderColor": "red", + "data": [{"x":-5,"y":5},{"x":-4,"y":6},{"x":-3,"y":7},{"x":-2,"y":6},{"x":-1,"y":5},{"x":0,"y":4},{"x":1,"y":3},{"x":2,"y":2},{"x":3,"y":5},{"x":4,"y":7},{"x":5,"y":9}], + "fill": false, + "showLine": true, + "borderWidth": 20, + "pointRadius": 0 + }] + }, + "options": { + "responsive": false, + "legend": false, + "title": false, + "scales": { + "xAxes": [{"ticks": {"display": false}}], + "yAxes": [{ + "ticks": { + "max": 6, + "display": false + } + }] + }, + "layout": { + "padding": 24 + } + } + }, + "options": { + "canvas": { + "height": 256, + "width": 512 + } + } +} diff --git a/test/fixtures/controller.line/clip/default-y-max.png b/test/fixtures/controller.line/clip/default-y-max.png new file mode 100644 index 0000000000000000000000000000000000000000..c317ed0cebd2c467a01f7ddb2e1ec050c44e0ce0 GIT binary patch literal 14898 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 KY8GqQhW#%g)H>Gy literal 0 HcmV?d00001 diff --git a/test/fixtures/controller.line/clip/default-y-min.json b/test/fixtures/controller.line/clip/default-y-min.json new file mode 100644 index 00000000000..7c6114a9c29 --- /dev/null +++ b/test/fixtures/controller.line/clip/default-y-min.json @@ -0,0 +1,38 @@ +{ + "config": { + "type": "scatter", + "data": { + "datasets": [{ + "borderColor": "red", + "data": [{"x":-5,"y":5},{"x":-4,"y":6},{"x":-3,"y":7},{"x":-2,"y":6},{"x":-1,"y":5},{"x":0,"y":4},{"x":1,"y":3},{"x":2,"y":2},{"x":3,"y":5},{"x":4,"y":7},{"x":5,"y":9}], + "fill": false, + "showLine": true, + "borderWidth": 20, + "pointRadius": 0 + }] + }, + "options": { + "responsive": false, + "legend": false, + "title": false, + "scales": { + "xAxes": [{"ticks": {"display": false}}], + "yAxes": [{ + "ticks": { + "min": 2, + "display": false + } + }] + }, + "layout": { + "padding": 24 + } + } + }, + "options": { + "canvas": { + "height": 256, + "width": 512 + } + } +} diff --git a/test/fixtures/controller.line/clip/default-y-min.png b/test/fixtures/controller.line/clip/default-y-min.png new file mode 100644 index 0000000000000000000000000000000000000000..515dd3f1882f064d44d99f5a06248a61efc1b6ca GIT binary patch literal 15473 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/controller.line/clip/default-y.json b/test/fixtures/controller.line/clip/default-y.json new file mode 100644 index 00000000000..30751446aa3 --- /dev/null +++ b/test/fixtures/controller.line/clip/default-y.json @@ -0,0 +1,39 @@ +{ + "config": { + "type": "scatter", + "data": { + "datasets": [{ + "borderColor": "red", + "data": [{"x":-5,"y":5},{"x":-4,"y":6},{"x":-3,"y":7},{"x":-2,"y":6},{"x":-1,"y":5},{"x":0,"y":4},{"x":1,"y":3},{"x":2,"y":2},{"x":3,"y":5},{"x":4,"y":7},{"x":5,"y":9}], + "fill": false, + "showLine": true, + "borderWidth": 20, + "pointRadius": 0 + }] + }, + "options": { + "responsive": false, + "legend": false, + "title": false, + "scales": { + "xAxes": [{"ticks": {"display": false}}], + "yAxes": [{ + "ticks": { + "min": 2, + "max": 6, + "display": false + } + }] + }, + "layout": { + "padding": 24 + } + } + }, + "options": { + "canvas": { + "height": 256, + "width": 512 + } + } +} diff --git a/test/fixtures/controller.line/clip/default-y.png b/test/fixtures/controller.line/clip/default-y.png new file mode 100644 index 0000000000000000000000000000000000000000..46ba6299512252724653304e1e54d0aafa5e6ac9 GIT binary patch literal 14728 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/controller.line/clip/specified.json b/test/fixtures/controller.line/clip/specified.json new file mode 100644 index 00000000000..5885240c7e9 --- /dev/null +++ b/test/fixtures/controller.line/clip/specified.json @@ -0,0 +1,77 @@ +{ + "config": { + "type": "scatter", + "data": { + "datasets": [ + { + "showLine": true, + "borderColor": "red", + "data": [{"x":-4,"y":-4},{"x":4,"y":4}], + "clip": false + }, + { + "showLine": true, + "borderColor": "green", + "data": [{"x":-4,"y":-5},{"x":4,"y":3}], + "clip": 5 + }, + { + "showLine": true, + "borderColor": "blue", + "data": [{"x":-4,"y":-3},{"x":4,"y":5}], + "clip": -5 + }, + { + "showLine": true, + "borderColor": "brown", + "data": [{"x":-3,"y":-3},{"x":-1,"y":3},{"x":1,"y":-2},{"x":2,"y":3}], + "clip": { + "top": 8, + "left": false, + "right": -20, + "bottom": -20 + } + } + ] + }, + "options": { + "responsive": false, + "legend": false, + "title": false, + "scales": { + "xAxes": [{ + "ticks": { + "min": -2, + "max": 2, + "display": false + } + }], + "yAxes": [{ + "ticks": { + "min": -2, + "max": 2, + "display": false + } + }] + }, + "layout": { + "padding": 24 + }, + "elements": { + "line": { + "fill": false, + "borderWidth": 20 + }, + "point": { + "radius": 0 + } + } + } + }, + "options": { + "canvas": { + "height": 256, + "width": 512 + } + } +} diff --git a/test/fixtures/controller.line/clip/specified.png b/test/fixtures/controller.line/clip/specified.png new file mode 100644 index 0000000000000000000000000000000000000000..5c765a1162f067934b00b5c12f101139753a8620 GIT binary patch literal 19952 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 literal 0 HcmV?d00001