From 201fe46f4aee461da42868a587b055afb43e5b3d 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 beec61ed5..50710180c 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 47adc0801..350e53999 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 000000000..f69182d1f --- /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 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 literal 0 Hc-jL100001 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 000000000..b4a4b0c3e --- /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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 literal 0 Hc-jL100001 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 000000000..1ab631bb4 --- /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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 literal 0 Hc-jL100001 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 000000000..7c6114a9c --- /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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 O|L!PjD3#r`4EsN=R3F6v literal 0 Hc-jL100001 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 000000000..30751446a --- /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 zc-rlIS6EY9xAqDVLN5Z+yGWB>rArm1C`c~?B7(FaRRIYd6c81Zrl3?Q5v2D}MWsp! zQWHc#X;EnsAZNw4-QW41bNAo<++^{D%M=S^4tMEsf~IZ+MIHn=AG{=4~w@8=`UcJqT$>YE~%tQE{ERK8>T2W`b3UED>@U z1%60D9r^$KVvz!o1;niUIbQx=;Yfy(`~65=#tU@?EGm{2Tz>pFaS=7b{r4lQ)oHRm zpv-aDtM`vYHelo*;gQto5UciQQz=Q1U+ZOo!rzaV9ZA`wpcRq2b$lGqU+Y}~!{3iR zC`uVeGDp%o-r5Skwe17ae?KNhFuS0rQIyAKVm*Irn+}npVg0>ctQWzCU_RMM^Zt+N zP)GLvXNGH1LE%$pGK0vF@rmW^+h)Ntfw+nigQDY8z+AW}=U2V@vyCrKeP`+U#$Naq z;}jHymd9W$mr(cOP~9|pnd99Z4FjAzhp6uvUMypV0%&&WxIH~=>oIjW@R!YSLBaLbasV`RL?@D3=!%J!Oh)n>BYZ#Lf-7rqNtyR?5sMFa(mLNL`US{+`f)#h8e2y*j zx+_y6Wf57BUS9FM1dA~0`E48@2FsRBEq?>_Gk)H|8j8V6SK~Dg zLtuoa7#sdQdghBdge)!9Y06z0_)2PEM&%sYb|9{^Z~IigUS|M*uq==eeI?do?3LX# zcObNtWb`of`zbgF4DEtzNwvF*tFV4BNh;btvML17(UBZd)Ssrn^wur`J3$qEG7id~ z7a7~Ni}6<@vJB`rcY`pkv`FtE%Vp<_c0!5osWnNgNuSzmNxJ~EB&w~5N7hD{K4ZH2 zn$NusIKh&YS)L8S&1j2YcltTf?z0T5hc?Zi+a>v(ZDSI>`Gb{?>;?;HZ|h5Z%3q@6J z&GE|J?O#X@9wo1kNGQnLvwhicM-N~_~gM*90?fNuDyPDhE%|sV6(ws-_2HC)EPhT+1A1}FU zO@^^Xy(KLU$r1}MbbMZq?EdnO12LNx>vI?~%I{_T1apxt0QZS3>|>zx9;hM|CEy23 zpODz8d6w?2H@KB}Ivo=K-1|nNMVM#AROk4C4*}c%B-1iDcu#`1)gs;ByMmqD7Xr(jb6Z>$+@*hRy^(URTW7i7HdqawGkL`D zHA~+V1MNWB^dm}SQR4e`;Nr24M1PyDN;dDgmJI?8CYhvq4U2h6dE-&!3Z-gU4;MhU zL7I#-nn(;C48kcU?TN1G_3Pj&)NrJZJMT{GR}+}wDN$7X&X=`E;Vs^pu7IW zKiX1B5!G$mE`IH(w18#5A9U1r#?P57H)5!IpHngBwo&6YoX%x7crP&uD)#X7iXBsT z%SE!>FNcRqv$Whh_T(Xb9*sJrg1TKW%#eQIl;YgQlDi4bH3Kx~UkB`pbQwcEb7cev zKTxwG;3#V)%YyAK%$valx5sy$)j#S1zow9)~(U8 zeUC;d+fK;>Px)En(KklNtFSht9Z8Mdx!EfgUVvUjTicHfy6Xf5 zm&n{cPEu=rG|6H6RQ*|i6%iM$n0v(S{>=g#anQ)ZV$b7vya!X7UZ0uIBhg=`A5ni_ zm_J%_*AeKTEe(2ZXf|<2AQazLa@}D|qmCT+bVmr$gU7=za4TF64^LvW5?IV&tpCyg z5mF9z?{FD?Q^SUc=4Xj68GWS-@0-OviS!-3wx=f)M4x^ZS&+kcVTTb#vb~d2r&~tU zQ*{tX{5}no+hsxMcl~W2ssL?>@b`rw=GBWIBkZ|COI_b3*x4*S6ZSSIbBxC0?;Lw| zqQjNCZ{cPaXx*qj?+i6!Xu~c+Zjl1piN6YG{PiqH^o56q45oY z>p7y2+3-IrWV%a%^jw_fDoGLb0$Z2eZSC9^y}pRphWfiPS#1;p)9iuF7|*abmmWj) zxk*?gpQ?AHbbQKKQp8lcvakn~(|$9-2&$ke<*8V%htYETYSw+M8!bp)q2TY@&UAMI zoT(aF;IGRt_trNgKMy!3oJ$;uKSk|Jze7Gq!`hW?)ntJUgyqtVlx$+1I57GoO}-AF z9Zj6xnER@=#|V2flc9pLjG~Q%Z0vaa;Vv%v&$<)3QrHU_{8Az0rw>Y>Ize-|%o1M5 z^C|w!5z-}TSKIo4-8_~RCR)W3B1-~$zcR=A7fyWoQ zU8q(P(LCxb?`%vIZB-rd6CxDm^d)*c+{cX%@PcqLn1&ces`fcM(sC9ECa;5Qz^W(a zG&m0$H@XfFD_Ci=@|j5@8v;Oe<*rHu60O!qE3ms(X-mf+X)(rJeT2iV;; zKX+oL2uh#qjJqGl7{Nky{^g^naOPeW@q+ON;oBh>$xxj^%d_RJVbBZvBol+}1*BmK z$BF=Sb0NDl3mal6`1H?g1JO7V2tx%4^~8>tbcSrozo4?Ko6{*hM`SZKb|{>e6E2ZW zxjL-L@NIj?i-8;37sc8@b+GA#;p>s!ZTnvs>jkq~dv}GRF3~@FZawGo0qvlg}ZJhGKMmC0A(? zaZ7-FThic%FLJO~UB$H79pU8MU&EXsWp8_YY{iG<2@mj zuE1o9`eeg0)*r){=3d`db7LrkeRcSHi)j$Rw7QY=>_*bFck$MJpf!#f7(0xfNcUhO z4Xk7u-9DDFW-BKP9g6&TZx-wX4KlIY;lUn-i(4)*pOOqIzDMODcUqxC!Qq5sROLjU zoV*6=Ua{;4JvuJ)<-9B~&*Zb}nCds&DI4)X)C_J!_mQu7nskSeIvuKw#EL49RP-LI{MFu)lD4Lgj zhr5+z)gdFYPB~cXW46dAz1IOGxWc)E9Q{LxJ?9z(zK#QKO_xUX} ztwXBKnRZa4$OYqk?lHSf_{br)Ez6wyu*$CP`4In$3%-vvqlMRFSP{1(XxhSW(UaR& zJ#@G;dELBPsUW}4?FGX(ernATKPcidSF>61;&buk2F_YODh!O z!U&xvRd<^8x&ufUp4GFs5*al)YM-^jo`i2ii=`&`_OYUr2iE=a&fXvv!;qgFAg)04 ziMht=yv#eTD#9zcH`*FA0a=vdd+f|;3Kwv$DTXYwyq_agXSQ=D5qa=*&=>c$ueP9H z=Z+brw_Zq6It%Fcuv&FRj1(;ASV@?tjVw@UnAV--DsgiHvdaLEddcTCyyrxF`26}n zwtpU0nW0&D9h~#19oM&laJD9qbaV9~k_vl`l(PYMyw72E?Ny+bCriHd-I8~v)wX9{ zzuKNG8F6=p_d?F8tuOGkI83|%_GR{V+GMnf-(rj94~$n?04b18ulR4OSp&0Oi0fv5`YT zzVU3JNgbk!IvtF1x%bG;H=3-F;adldCV+Xm)d0aO?>=+mXEgSHAt zEzH>072d_NlcL#l;^(>3Ab`Y|nOm#aH3V#sS1fxr5D|6BHO0Cq!Oizt)Y><&m7#fNIL=wKR<1t=Ixc>S5cBxdPYe@^-#eSGsdZAYxl z05Y~`_4@9>_?fR#4FR~ih)S*kQJZY)$}YL#_#0r?tOyCGZWf5eQA%TlUci*=TeXns zOkm4zC3@F-7v${DnwmjF3gwyC?dBhu%->ePk+S;yw?jrj&D;n_gUKp#qI_KL3y&FA zD{1A*J99sVEY~!YEs>=|=rcoC-bsW?+}yo{nzQ6yXQgYjQ9@^M-kIla0l_%QrMGwj zeNDtB+pwKlekA@zDp@Xiu{5HH?w-RZ!i%7pNb#@?NQ!Iy+csRoGT*d)WB5m``gni_ zHu)2A9}v_QPJm2;$1qVebSVA?)18lHH+Q`&RcwkKRz_;UA%a>n%UQx7487YnJgaqa zQ3DOZQcbaPzk5g$WuN>_$lYsbOH z&vmmNZ(G7b5<))aE#swhX!DsESsKdvGe$c><+t>Lj=;;s+^&bfuvZb4_IZ~yT=AScfqeyOcp2#Vj3M2V>)${%Fo*QDnF4BH z-z(2((O2MGevB}GnJm}PiAbAOyE?)T+84{!_K(4R+bJH2z&lQ@;FWe=&*nu~$pXx; zvmab@0ud&LN0)jeZ+@YjwUBk{wxjyc2&evGi@8407O-s6hhK14o1W=hvfs(C*<@CD zU2?-40ea(hz;~9~TfyW_C9^H_Qk@CmD$2VC-P!VH;)yFAr{m`ppyw^PhUZgH%R+g( zF8NQIv}@DG?m!h2yi<9sz7d`AJ>ZOcL&{cXr-bI3fUCv_3@Wu%6Pb+kTk3FY>z$^Qc`NTK9Kq8SVuq% z5+pE^4YP_kx6nYvm#+jCrM6`?5xcFt9c zD{*n!5hf?*IVm-|+rMa^raBDwLy9F?GS#smUW$V4CUqtoz;|f+&im=zo+Yy8p>`@$ zUnN`-Tk9lPBp4ENaH+P0LCvf)z>;^^{hf>$!+5a8HLhR(`B{ zgZ7XD28=a7`HUIOq=>mL|FLnN^`|DOL`~jv{cy*?*ej54m4*W95OET+fHw8m_wW%A zP8Z;Qg!-#9Ddj!4dkm7p=34^G-%7)Ya%sUr6t4fE-XnPEmYSY)GH>z}RNZK-|v9 zKh*HJQLl!}Ns9|8i7K)f5J{7`CUG{vA>~J~Bi~eKqpnCPdWee_-&R5wy^B|2uZlZB z__06X0C|~bu=o)haGK8~KY3hVgpAi>fY0~uuQ%3`=R67K4hjxg z)Qty`Gub!JE*;nI*7Z30edhtk6Aqk@rW6EieBm}5@bq<^gx7ubv%EKg>EMP2$pK!S zQ-XDHctCgd{pXp!_BZH%=D@jsazMeF=b!0r?kCX@Gxg zu>Zb(x@BsiHs{^CGi;|M-9*`37AZ!j^8?D){(`dWr_LagYjHxgwst&6xIglS=GiuZ zbAV&(u)R248#J{1Yl`u8-0GWCf+JV@bqzG{HRyuzk1y*;l=>^DJ;Q>7+18FtY!U0z zndjGUdDg0%Hg4jIP_|~1I$hk0pL0a$hrI&NFe0ml`@Mg%O7~x^a%U5ZT|-rha2@M1 zegYPWTtshlq3&M%+N(~Lh*#Y``du+e1>TFip3t(7*E(tdwx1p`{Kq4;XLwqtUT$rY zW)o{n!JF@u#O1Zy8w7Ma>6GS#nAXTxvF&D zqL^Q;Vrfxz*OJ#@xX+KVlGheJQ_f|3JeB^*X7YboF1oioNVCgXarNv{MrGS~mEfM7 zPLYf?ma#HQbW;1B%iA;M1RSGg%?e5I=Hb>LQ*o@19=|U#hK%=z561rTK`F>f;t`T0 zO@%;j!VG}+B8BNZ;Yb;Y(aE}IcMf4Y8h3w#`;dwbGTwNrN^RvO@IJyK3y%8d7^wiSbYg2tmzrP zciT$HEWxjwfe4QhcjA%Mym7rD*;=1PxHswsidHLKXe3tm*77uhOzK(VP_f5_z61L_ zvAl^pbT<>C&>$j&%A`y$3b+DqN(5}OW!%=(Q={QX6A!zc#9eP#?O^i4G(ztq&uY(R zWime<9ZX%W*Um;Wm_V2VJN0`O^x`ER#E#+KVOZgBXx=uOWq8by(h=uU#)^*2)s+qj zW`=9&?qd%KUR!Ob%Ac=(*4Jcx?9rs{h+41DT&Mw+9h0E(f0h^aLXQ#AOKvDoA1dVf4@nhL0s8y!U59&5to;GAvyBu zhzj=r3HSL*B@pm4_|TpJU1ykS!ga48;0>h+(ab>DkMd)*RhjDtz1HUXu;azHPcZ-9 zazADa71-cn?7njhW+DeYe{Z<{B0szJ$|SX>9fPaxUu>a()?WdKELie_-R`1Y5xJ9I z8M!N62yh9B@R8}RTyGm>qHnin+t~95$?j*i6e|CP$(ZH5j|~u1K;nmKL=5~ff2>F) zf4Z6~cknsB+O7T|Kb(9M*jSBW{rTA|Re;W}S32OdNT#WmNW`O3)T{IpR3C1V4$@e$ zqNTOmLSdMG6eA_P+~;ON)Z-I}Zg!T(gLu<~(c~;vkwC+3kX@|8$eyRy2M$1H)Jb6OlU0}yN~})Iue!1a*mG6IWmSBU z%_@JHG5r!tL2F#A0x+{BnV8!PJg^6|M6#>;4ACE1?`;HJLBKm(-SdOWeQs2CrHcay zcD#?=jW#}DzPSRTRqT(Dje31R7XuHYpiMR_z$VQuodxL?-gJ2YavZ&J51}Im~_Z4UzSGYrLzPP+GIuO`LmY;@t@fQ9vjm~1{ac)r`7YtjN@ph$g%*RK%9wY9ZO9SBEW zg=G~~VeowDYd@&o+bzz466b9=CGKj5eCGJ7KCQR>M;>!u%Ptj3ko}xge-xPKCV#b^ zqkFgt8aSll>YH4d%bjKm_m{{LGgsKM&AV5zs*Z%dJwuPc*eHQM;G&D1T3XrXZUA7@ zCVm&d+&pQ53$aOZGOLt{`J(+z#kYkFJIm6NVC$B*Wb-wunqV#D2{0Mjm#^r+B-6U= zsoZq9llCf90EQTQm-rvYOX>{KI{A?+peYr@=TKr{_CE+cO~tf*t5Mpra}~>tDo8t} zHrieU%6F9)x0g>cTp7Pbaz?CY&+RY7X*pY+TX9mvP@!l$>|-{ae7=Qog%&wq0%1f` zwc$_~YOAZR2q^l^xZkZ^H$Sc*Z7!b#mUI_&e!FTVhJ&SOw=PdI-lBI2Ua2`8xnT6A zLV~$)qh0q0soMJ5xn)U8u*moz;j~}yW4+(MPxx`gG0*taknF8ronSTx2I~n^q@Q<@ zS!;vfPu16I{gS@@xh;s48*SP=(hfG&qB5C}N;36UX*C@ni#12Zjl=3WWUqCVG1r|% znnbnTq;95n`$CGf%k61^us0wh8^QtHBh)xEI9obP`O1Xa9>ar>5yVmuZbc}R2 zg>)b%{G{0xUj>FYyXV}?(^jHXr%8jg-#Ah^dt`Iu-dhn(5338j^&CNPH$vwCN^EAN zL06i!Kgl^OK&38@krFQb$^|XucW(kFIG63{B*~1K=3T=k-+@_t-JY~6PKd;(#Hz?$ z2*`vKpMh(Yh_Yvl<;+0N6nCYb|5q5&?*-;T$O+$Yfv$vOb{u1GIaL*9pX=FMwy$E7 zP!D8oWR0($quqY;;00($@GmTZZzdzIOc7H=Yk6_vreRb~pX8{*Esa zuX(NoOpr51wD=TIk-5lg0(X5`|}dFu61C6#nIv1@O-akZ5$92{P>|oo_dFp z0vqB`LNmC&3}ok5hNmLDi#^#JBzjh{u_#GV4Pf^O%m=J}#~V%%B*%MIQv+eSWwFG> zto5Heo8-ZF+R&gW1F~$S`PL7LgmGgq4=A)948nHTv%>44=f6#k^v{{Y1sjkCa4m@o z$bR7XMd!1{|8!vGdSRZvFh?(xfQF)`0J=LpY-cKbz~n@gKj*d!xe5@=$a&SiyWZ@? zg#xRj^v)q-2P$m#h`53H*aCA7dC!(BHF1ZIBh#&OGP?>|*+zve%Gusan3wUb7S|;x zRe|6qQFt0$%Y8e2xAXiusVl@2Hr~ZawtD^(a2@H`27Bqml|Z{Vfh&VKV>2okI z!Z}0q4r4&-m7&Gj@pxN-#q-e_LBNUiBhys7C*h3knJ)?s$tv!GBgCh30%+ZIJPhch zMcA5`wey?`-qCF3pJuKs%zqbuD$#`4sxwh|v566Dw=A*OP-jS7>1Sn?1NfA)Ie={4 zo#Tz0%mXy_IZ-)-%V+YCccellSn4Zez61r}m}P-9>wXi<{CiKm`vGccIRfD?CS~7Z z=wZ16++@U&W1vX`G~^oRI2U+VFV-Et>kVLVr89v#WbyY#On7ij%kf`gSdZU7%EvB! zC;W>v*ksE84L^%&;x)npjvNl$c^I~N@AbJKdIYoJ^qFh$lC-qRy_V4`{B1h%KNtaQ zo}Rn^p@UK{P=%qd(})pH&dX#7f_{*jS@}vD?Gv_ph9B6UF;wj~UM1tzTJzJAyM0!` z^-IF}6Hr;8g~IKIH_CwaiCTNJp8eI!+Z9~6kvEND)luPzy%|X={B;-q2y6I9m@6>O zikpG;-qQ+2n&ACmFFp~9FQDIp4I0V5-<2mD3m995Q&qnD3lAxWLGxz7LUcm$kEtkX zR5YaiG@+g8iGZ6g*US&{d!HT_bZ!2e=+XU==rFFAVDZSxB*?XBblQb z6rA%|fF>$mm5l91Kg@6(ij8Kk>dIRDIap0hnQDZGXGMw2i{?vr#)TXC?pA>fb>(E=8b)0gBMd*4;Z=|eVN zKpgpB^>gi?l(~9ry?5Hw=?`!e{{emakngT|-@AM8Ci4!r z18MeoU-%pxr$X`lC0uCX5&77EHH|);n|5`M*3B0j;CQ9d5!Op&)a_ndgtCTZtRE^& zEHX4FDv$B&6|8ZuBtywhK;;@<`*SiE!G>TxR89OijbN=8cfP;$EUv;ejuEIslH-oR zgoGB(^*m0o6}|W?rWw~2P{vNnx~^f%8sF{m5C2!unYyV|!X1pY6f&-ZUAF)K;b*t_nF zajJ?{mAh0efVQ^eA2?`46SQD>8q#unxXgOj{!uLG_!lAIl#^e0;Uf5K5-r09mhz7; z2;wT)9Jt=m+KewIzPQ-FTGM{e0Al&o*3~RhQc{<`^nYy7iyhPkd0qj~S5lINm7dSa zZ$Cx%W2fU7E}2R%T0NA3C;W|V)nB)NDS)5 z=EV&PeuY@aH1{u+g+IO^jvbbJ;!!U|y6q>_iGl~Z)u`~$mss{qL9DTn1k;P( z2=V$GA?!r8c{xMB@z#Ced>Ugv3}#I~B8SA*TnEoW>+txVBzusa_wy4!+$Bz}$*caq z3d;sv_8hW_u>R@f#5eeEZj@I(zU`>-428qVnZfM+;mlTY+DVRCGscx73}0NwBbn=Z z9|n5G$8-c1Fj#F20sZ~}thny8etl&(qKtY@I-wko@E zfBqa-cDi+)@N`B)LFTW{MfgG1U&IEMA-GWP7|3n00)br7G*LG87eKeRql!eMZX%-Y zURg}+c${HdlJQ@eJbHI3eY|rj;<6xq*{^N9Jx6}|YWbaFFcEZ7-$dsrPb@7Wn@Uss zbg=^lCnxm&D;Tx*%h?bW#x=@{7*<%3LGo4ppiz)htueQlrS0e6Y%|7p*faPfUHp>- z1%Dxme%`05np>TMQ*_#LLSk2)R)Tq5=_(9rr$>~?Q z>Z;Ahf^Bp;ot8RnmFgRLmw4ABr%jFIi6{UY>c1!@DxMR6c8S=U-cB5se zo$81R>uB7@fcQiUf9xHu=~AgV-t~_Cqy6%~aAaWg2S-xiXg}9i%}om%C~H3 z`xwQQEhg9600xu`;bXpz2TQtjy4jzSp6hwS?O)N%${O#KMOaeqgbBifU`|!JljszP z61P&r^`h`)3}ehGc_iQOIJids8%FKb+_NxFc~+}qaBg^R)XLj;p2IhLfo$mh>2CGT z+E>^E!X@U#(fU}oUpUO7_$#>qzQbqlZjv|cu5mDD^IZHe{(W!u>VPht3ZU^iPNn8b zIgI0P+3Ek5U0lr_I0;;urR=!(;yxNntL{)4b%PA^1!XI`&1|YR)o#Fi{o0@6p4w0L zckZAZrEJu=qsB{9_9Lgf^2p)J=lt%)ntJy zvReO&9q~%0aT~{tNl%Sst1MCuzNXi-W#kHKV6;&xwvc1^#n^H~Q!vTncT@G!y6|6_ zASt+(38}x(W-z2?#(uR+eKG*Xlx9~&jbag*E4!+OWDiFF?F7S1Dpa|NE!E@fLKS*_ zPet=)Dd4f53chRDx`=QZ+u1^clOoET>`YH!yVp!h`=jcH;^OQhUa%}=kNL-Stc44G zyEa;**XIfxIib~``a2&)ZYS8;G+1~6Bm{2S+^KdSv8R)<)sG-M{`9ji1{(_55KCs^ zcx)AysuT>9^1dY9OgWAC&7!GwkQ9x7Ul+coMx?O1=9~KvTVqv>ZpUa#|LNc>l1rJc zKt~+`&XT*h^@?`ZT>2?7xqq_C`?8@wZQjEHPw^PyAhb5KS;&kJZ(PTAj(SuzEc2<> z!F{jYkJ!DmQ$(;glYa5v*Z(?c7>5Sb9g!$d(X;wYsR3F2fFT?Yte6Fw8G=onlb_<~ zRD!$CpPwiE2IkL_L)jE;&%mhkjJ0zb$=Va3g4}@(_@M36p16Mg09G9cTp8Xes%B(x zT`hEp0S7DUlsvjO5&fN_;vlOD#?om^J%)UXsaL}!UZZHzQD6~cR8CoMGM%ZB0xBnV zew}^kSw3f|s%Jd*?tumJ(V`Hdrcpup6pk9Ef85ReYkv$2fQ6tk(E*yldm1}@-PTre zpKX3y=|A$vO3>49w%)NJ&hyb-g~m~h-4tI-pmkt>|4J`x*Bd_%->KU6xKng0!|2{W z>lX|kGyE^uwEyAo_j9-oZ3nFe!4YI6WTJ462QzSAheVc#vYFGk zUbgvcE`jgEg~@`yFn94kF{faS=3XDypo5R3CLg`rsU1P*kE?tg$X)v$n46^xH0)zx zyp_fwxrEj%`%VH?$>R=KuZ_X(tzI9?--nA6% z>i2lWx*1Vn(9+Xw=D_`?w5Xgh<7SCV4Csyt z*8=n}UMD4Kkd6WE?ZsL4)t%bn_O{~{d`Bdu%4vi*3*Ith2p zUZd;B8A+~Dw9KKY4F_7pGp!rBU;=og-XI@@ghJ}iu_g7}HY0{wCWe{^H!Dr<*a`?#&cI|`v6aGptew@Z^@DG@k0JVeN?9( zyM&X^@ci>W3>w*%GcBBm|+D_sHe$D769`UoCB8;ahG4`v|30up&O zJrrdOe!@vJkaYg@bah7tc-mJY#A)|46m{i4|2Xzz<6#od`qlcJJ|jo`8n2W#J$E3< zp}c3aKz_#4>Py!vcFw2Z2=YIf??pEkLNm0l#?LUN`=8gGI#A50pn{&s4xq~!y*xzi z=Na(!L*mMH+RL&NTnMYeH}i7WZ1!#4*$QNBInZXs;P73jK!o@EV~=GX7uG63Q{GrP zH1~I_&R(}+L%Rak{blQth^>t$S#G2M(g``}P^?eZ9k1Z=##`|pYE^(MB%{Q}^+(fS z)i{+5Hf={LCCdA|6;wTbfsHYjX#U^4`lC)Ou$W!6<`ydfo8T*?M~P7^z@L{v#vG9r zET4h6b=K$^WkKBXl4=}uVs5Ot;AN%tT+esMI6?mAJtU&qymHA)F5O@-o Vm`5mg9Hs#9$3WLu2dU*4`9G+u`9S~x literal 0 Hc-jL100001 diff --git a/test/fixtures/controller.line/clip/specified.json b/test/fixtures/controller.line/clip/specified.json new file mode 100644 index 000000000..5885240c7 --- /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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 GS^on0Mak>{ literal 0 Hc-jL100001 -- 2.47.3