From 7c3a412887b83a76e0acf784937ed31db1bc6749 Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Fri, 7 May 2021 09:03:37 +0300 Subject: [PATCH] Add includeBounds option for cartesian ticks (#9020) * Add includeBounds option for cartesian ticks * Types, test and fix * lint * Improve linear tick min/max collision detection * Update comments --- docs/axes/cartesian/_common_ticks.md | 1 + src/scales/scale.linearbase.js | 43 ++++++++++++------ .../edge-case-1.js} | 0 .../edge-case-1.png} | Bin .../edge-case-2.js} | 0 .../edge-case-2.png} | Bin .../edge-case-3.js} | 0 .../edge-case-3.png} | Bin .../edge-case-4.js} | 0 .../edge-case-4.png} | Bin .../min-max-skip/includeBounds.js | 26 +++++++++++ .../min-max-skip/includeBounds.png | Bin 0 -> 21863 bytes .../{ => min-max-skip}/min-max-skip.js | 0 .../{ => min-max-skip}/min-max-skip.png | Bin .../scale.linear/min-max-skip/no-collision.js | 41 +++++++++++++++++ .../min-max-skip/no-collision.png | Bin 0 -> 19803 bytes .../min-max-skip/rotated-case-1.js | 34 ++++++++++++++ .../min-max-skip/rotated-case-1.png | Bin 0 -> 21357 bytes .../min-max-skip/rotated-case-2.js | 34 ++++++++++++++ .../min-max-skip/rotated-case-2.png | Bin 0 -> 23853 bytes .../min-max-skip/rotated-case-3.js | 34 ++++++++++++++ .../min-max-skip/rotated-case-3.png | Bin 0 -> 26146 bytes .../min-max-skip/rotated-case-4.js | 34 ++++++++++++++ .../min-max-skip/rotated-case-4.png | Bin 0 -> 27526 bytes types/index.esm.d.ts | 6 +++ 25 files changed, 239 insertions(+), 14 deletions(-) rename test/fixtures/scale.linear/{min-max-skip-edge-case-1.js => min-max-skip/edge-case-1.js} (100%) rename test/fixtures/scale.linear/{min-max-skip-edge-case-1.png => min-max-skip/edge-case-1.png} (100%) rename test/fixtures/scale.linear/{min-max-skip-edge-case-2.js => min-max-skip/edge-case-2.js} (100%) rename test/fixtures/scale.linear/{min-max-skip-edge-case-2.png => min-max-skip/edge-case-2.png} (100%) rename test/fixtures/scale.linear/{min-max-skip-edge-case-3.js => min-max-skip/edge-case-3.js} (100%) rename test/fixtures/scale.linear/{min-max-skip-edge-case-3.png => min-max-skip/edge-case-3.png} (100%) rename test/fixtures/scale.linear/{min-max-skip-edge-case-4.js => min-max-skip/edge-case-4.js} (100%) rename test/fixtures/scale.linear/{min-max-skip-edge-case-4.png => min-max-skip/edge-case-4.png} (100%) create mode 100644 test/fixtures/scale.linear/min-max-skip/includeBounds.js create mode 100644 test/fixtures/scale.linear/min-max-skip/includeBounds.png rename test/fixtures/scale.linear/{ => min-max-skip}/min-max-skip.js (100%) rename test/fixtures/scale.linear/{ => min-max-skip}/min-max-skip.png (100%) create mode 100644 test/fixtures/scale.linear/min-max-skip/no-collision.js create mode 100644 test/fixtures/scale.linear/min-max-skip/no-collision.png create mode 100644 test/fixtures/scale.linear/min-max-skip/rotated-case-1.js create mode 100644 test/fixtures/scale.linear/min-max-skip/rotated-case-1.png create mode 100644 test/fixtures/scale.linear/min-max-skip/rotated-case-2.js create mode 100644 test/fixtures/scale.linear/min-max-skip/rotated-case-2.png create mode 100644 test/fixtures/scale.linear/min-max-skip/rotated-case-3.js create mode 100644 test/fixtures/scale.linear/min-max-skip/rotated-case-3.png create mode 100644 test/fixtures/scale.linear/min-max-skip/rotated-case-4.js create mode 100644 test/fixtures/scale.linear/min-max-skip/rotated-case-4.png diff --git a/docs/axes/cartesian/_common_ticks.md b/docs/axes/cartesian/_common_ticks.md index 12c911467..9f2575477 100644 --- a/docs/axes/cartesian/_common_ticks.md +++ b/docs/axes/cartesian/_common_ticks.md @@ -9,6 +9,7 @@ Namespace: `options.scales[scaleId].ticks` | `sampleSize` | `number` | `ticks.length` | The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length. | `autoSkip` | `boolean` | `true` | If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to `maxRotation` before skipping any. Turn `autoSkip` off to show all labels no matter what. | `autoSkipPadding` | `number` | `3` | Padding between the ticks on the horizontal axis when `autoSkip` is enabled. +| `includeBounds` | `boolean` | `true` | Should the defined `min` and `max` values be presented as ticks even if they are not "nice". | `labelOffset` | `number` | `0` | Distance in pixels to offset the label from the centre point of the tick (in the x-direction for the x-axis, and the y-direction for the y-axis). *Note: this can cause labels at the edges to be cropped by the edge of the canvas* | `maxRotation` | `number` | `50` | Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. *Note: Only applicable to horizontal scales.* | `minRotation` | `number` | `0` | Minimum rotation for tick labels. *Note: Only applicable to horizontal scales.* diff --git a/src/scales/scale.linearbase.js b/src/scales/scale.linearbase.js index de1dbe967..8e4440aea 100644 --- a/src/scales/scale.linearbase.js +++ b/src/scales/scale.linearbase.js @@ -1,5 +1,5 @@ import {isNullOrUndef} from '../helpers/helpers.core'; -import {almostEquals, almostWhole, niceNum, _decimalPlaces, _setMinAndMaxByKey, sign} from '../helpers/helpers.math'; +import {almostEquals, almostWhole, niceNum, _decimalPlaces, _setMinAndMaxByKey, sign, toRadians} from '../helpers/helpers.math'; import Scale from '../core/core.scale'; import {formatNumber} from '../helpers/helpers.intl'; @@ -29,7 +29,7 @@ function generateTicks(generationOptions, dataRange) { // for details. const MIN_SPACING = 1e-14; - const {step, min, max, precision, count, maxTicks, maxDigits, horizontal} = generationOptions; + const {step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions; const unit = step || 1; const maxSpaces = maxTicks - 1; const {min: rmin, max: rmax} = dataRange; @@ -97,13 +97,17 @@ function generateTicks(generationOptions, dataRange) { let j = 0; if (minDefined) { - ticks.push({value: min}); - // If the niceMin is smaller or equal to min, skip it - if (niceMin <= min) { - j++; - } - // If the next nice tick is close to min, skip that too - if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, minSpacing * (horizontal ? ('' + min).length : 1))) { + if (includeBounds && niceMin !== min) { + ticks.push({value: min}); + + if (niceMin < min) { + j++; // Skip niceMin + } + // If the next nice tick is close to min, skip it + if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) { + j++; + } + } else if (niceMin < min) { j++; } } @@ -112,20 +116,29 @@ function generateTicks(generationOptions, dataRange) { ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor}); } - if (maxDefined) { - // If the previous tick is close to max, replace it with max, else add max - if (almostEquals(ticks[ticks.length - 1].value, max, minSpacing * (horizontal ? ('' + max).length : 1))) { + if (maxDefined && includeBounds && niceMax !== max) { + // If the previous tick is too close to max, replace it with max, else add max + if (almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) { ticks[ticks.length - 1].value = max; } else { ticks.push({value: max}); } - } else { + } else if (!maxDefined || niceMax === max) { ticks.push({value: niceMax}); } return ticks; } +function relativeLabelSize(value, minSpacing, {horizontal, minRotation}) { + const rot = toRadians(minRotation); + const useLength = (horizontal && minRotation <= 45) || (!horizontal && minRotation >= 45); + const l = useLength ? minSpacing * ('' + value).length : 0; + const sin = Math.sin(rot); + const cos = Math.cos(rot); + return horizontal ? cos * l + sin * minSpacing : sin * l + cos * minSpacing; +} + export default class LinearScaleBase extends Scale { constructor(cfg) { @@ -232,7 +245,9 @@ export default class LinearScaleBase extends Scale { step: tickOpts.stepSize, count: tickOpts.count, maxDigits: me._maxDigits(), - horizontal: me.isHorizontal() + horizontal: me.isHorizontal(), + minRotation: tickOpts.minRotation || 0, + includeBounds: tickOpts.includeBounds !== false }; const dataRange = me._range || me; const ticks = generateTicks(numericGeneratorOptions, dataRange); diff --git a/test/fixtures/scale.linear/min-max-skip-edge-case-1.js b/test/fixtures/scale.linear/min-max-skip/edge-case-1.js similarity index 100% rename from test/fixtures/scale.linear/min-max-skip-edge-case-1.js rename to test/fixtures/scale.linear/min-max-skip/edge-case-1.js diff --git a/test/fixtures/scale.linear/min-max-skip-edge-case-1.png b/test/fixtures/scale.linear/min-max-skip/edge-case-1.png similarity index 100% rename from test/fixtures/scale.linear/min-max-skip-edge-case-1.png rename to test/fixtures/scale.linear/min-max-skip/edge-case-1.png diff --git a/test/fixtures/scale.linear/min-max-skip-edge-case-2.js b/test/fixtures/scale.linear/min-max-skip/edge-case-2.js similarity index 100% rename from test/fixtures/scale.linear/min-max-skip-edge-case-2.js rename to test/fixtures/scale.linear/min-max-skip/edge-case-2.js diff --git a/test/fixtures/scale.linear/min-max-skip-edge-case-2.png b/test/fixtures/scale.linear/min-max-skip/edge-case-2.png similarity index 100% rename from test/fixtures/scale.linear/min-max-skip-edge-case-2.png rename to test/fixtures/scale.linear/min-max-skip/edge-case-2.png diff --git a/test/fixtures/scale.linear/min-max-skip-edge-case-3.js b/test/fixtures/scale.linear/min-max-skip/edge-case-3.js similarity index 100% rename from test/fixtures/scale.linear/min-max-skip-edge-case-3.js rename to test/fixtures/scale.linear/min-max-skip/edge-case-3.js diff --git a/test/fixtures/scale.linear/min-max-skip-edge-case-3.png b/test/fixtures/scale.linear/min-max-skip/edge-case-3.png similarity index 100% rename from test/fixtures/scale.linear/min-max-skip-edge-case-3.png rename to test/fixtures/scale.linear/min-max-skip/edge-case-3.png diff --git a/test/fixtures/scale.linear/min-max-skip-edge-case-4.js b/test/fixtures/scale.linear/min-max-skip/edge-case-4.js similarity index 100% rename from test/fixtures/scale.linear/min-max-skip-edge-case-4.js rename to test/fixtures/scale.linear/min-max-skip/edge-case-4.js diff --git a/test/fixtures/scale.linear/min-max-skip-edge-case-4.png b/test/fixtures/scale.linear/min-max-skip/edge-case-4.png similarity index 100% rename from test/fixtures/scale.linear/min-max-skip-edge-case-4.png rename to test/fixtures/scale.linear/min-max-skip/edge-case-4.png diff --git a/test/fixtures/scale.linear/min-max-skip/includeBounds.js b/test/fixtures/scale.linear/min-max-skip/includeBounds.js new file mode 100644 index 000000000..c1a180856 --- /dev/null +++ b/test/fixtures/scale.linear/min-max-skip/includeBounds.js @@ -0,0 +1,26 @@ +module.exports = { + config: { + type: 'scatter', + options: { + scales: { + y: { + max: 1225.2, + min: 369.5, + ticks: { + includeBounds: false + } + }, + x: { + min: 20, + max: 100, + ticks: { + includeBounds: false + } + } + } + } + }, + options: { + spriteText: true + } +}; diff --git a/test/fixtures/scale.linear/min-max-skip/includeBounds.png b/test/fixtures/scale.linear/min-max-skip/includeBounds.png new file mode 100644 index 0000000000000000000000000000000000000000..afb6fe407afbfc0a08537cb2d4def15dab5f247b GIT binary patch literal 21863 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 literal 0 Hc-jL100001 diff --git a/test/fixtures/scale.linear/min-max-skip.js b/test/fixtures/scale.linear/min-max-skip/min-max-skip.js similarity index 100% rename from test/fixtures/scale.linear/min-max-skip.js rename to test/fixtures/scale.linear/min-max-skip/min-max-skip.js diff --git a/test/fixtures/scale.linear/min-max-skip.png b/test/fixtures/scale.linear/min-max-skip/min-max-skip.png similarity index 100% rename from test/fixtures/scale.linear/min-max-skip.png rename to test/fixtures/scale.linear/min-max-skip/min-max-skip.png diff --git a/test/fixtures/scale.linear/min-max-skip/no-collision.js b/test/fixtures/scale.linear/min-max-skip/no-collision.js new file mode 100644 index 000000000..7d2b3a3e5 --- /dev/null +++ b/test/fixtures/scale.linear/min-max-skip/no-collision.js @@ -0,0 +1,41 @@ +module.exports = { + description: 'https://github.com/chartjs/Chart.js/issues/9025', + threshold: 0.2, + config: { + type: 'line', + data: { + datasets: [{ + data: [ + {x: 10000000, y: 65}, + {x: 20000000, y: 12}, + {x: 30000000, y: 23}, + {x: 40000000, y: 51}, + {x: 50000000, y: 17}, + {x: 60000000, y: 23} + ] + }] + }, + options: { + scales: { + x: { + type: 'linear', + min: 10000000, + max: 60000000, + ticks: { + minRotation: 45, + maxRotation: 45, + count: 6 + } + } + } + } + }, + options: { + canvas: { + width: 200, + height: 200 + }, + spriteText: true + } +}; + diff --git a/test/fixtures/scale.linear/min-max-skip/no-collision.png b/test/fixtures/scale.linear/min-max-skip/no-collision.png new file mode 100644 index 0000000000000000000000000000000000000000..dfd65961313ac6eaeb56d68694c1cb0d97af7d1a GIT binary patch literal 19803 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

Y%4A#`;pMCZ_jYIh2 z8!cRW=M87d3|-6`LP^_@RvCquK&uI;N+Ikjs5Q$~pkpYp=ZuX?)SQZ{G;+Z`RJf zVvV&U5Q$Uc{PWM3Ysd8n(1I_FYtKFR++hZJxd3qk2Rbq(scd$hIdkU3|Ms`PN!J{0 zRaB6W3W4W=>{z^8bUkD-@P;&K&>)>!B^ivg;7{~kBF96943S+H+4xS7V63vRhaP&U zWHgtsa8hw1)u>S;t>j>1;0ngW#-d$$<&}jUJ9aGi>Z`Bh6>AvXHb^j1QR9dO)T>ud zf&?R$@3w2#u8@m)()F!kbMnJ`G0K-NT^euLuwe|FLcL-QNdnKwY^7wkdiClu7Jz4t ze59sLn|hKQ*c^D;NFlMLYvSUIFD`Y(nhg@vQ=}v+S11%p6c!dnsSrfk)TvV^EiXyp zBoYoEaaxctdF{2=7QFuY>k$q~CrD7!Np_@AjJ2CTe}06uK-Jn~k3Dv{TIFhkB$G)( zv40kcTPFhP%}5KPv^Ge-|Ni^<@y8!u3M8bCfPOZRl433I>Zn<>W|;-${mEpqq*~54 z$YCbNG9D0Y4o;efAAUH|w{PE4Ai?`X!W@fe8FZ4-8#Zi+)T~*v%z|3<=!7ntBoRws z^AYSr5+Oyb{#T{0SYtCI{@JXkcx(d8^(aA7TwI(?Q3*(b67*zS6eI_<*sN?q8zi%4 z%_?=p8j=J<8mWTBw3}HlWYn!{)vBf9WvR7uf`c(2m7ja=xia?<;%UO3M4Bn7|B3bM z*HfLBmX}C#>@`#=Y!?ni0(-doJ9X+*@W224uM|i)Bv2KxQBhOvI7v}a5!n?L3LFfs zl##A>Bqt*kZ&fAo+Tki7Zw(_LQTXIhmAwhA!-?8 zV2-rKW@ z9DvP@Gla1?nyjVcr3`i=fhfuX%vM)*=}JaQSa-Z9?z!ilC=Lnc!>Ml{HV)6<6QNM( z&yLrQ$L8hs?b};%aIkhb9Ps4vUiJ>PJyok#l_0@RE#-At zcN<4G{;!M|%LWOPM6F;0;sHU0QbB^c_10T&#VCLxIT1g8x;Tg1gf?v0F!f@p!i5Xt@4WL)jMEo2im{}N zbGY$x%a$!&$BrF42!kH*6C{PE)c`@-0!YIJ3l=24{`%`EnFhFf$(T(S=ST&T5hF&l z!u|x5xW#diyErJihB zJY~w`stTk!{iaNrGP-r^)>7TVYlUl*6m{IKoT!%ZT=>f`zZCrO#~;#&RBF~;y;Z5^ zX5EE2def#&wJA%*nSiv#5C$X!P|@3?(Wvxpp|UU*Q(mrGwW{lLQ)rd+)u% zMT-^{;7-S}VWq6t^eUWMr7}NdBppezdGqE$7|r<3X&T@L5|=z8EpR9*2`Ra5nQ+Mk_=ro3~Gv1SK$m28u4=G%$Z%^c;k&h==-QY00kQany9Bpdh88a z4>|5=G2-RGfdfbP@87=_DjK#Os-0aFg?0fTBaw((OsqnKgY`?7YEmkR&jUz|7Sst6 zHZ4X!Vi;8lj}wcF4P@mX*$b<^pl%>h{!i-3*d?fZc$<`DJMLUA4wvi--g@vO> zjvQGVLmfK^dx`@HNkYuPvTtmVWW>wy|3O6o4q^RH} z!5(qg94U=R4O%6V1l5NP1PDo^!7fn@@+EFp5O}3ye{TKy^+&$@?z^ME`R1G2czggM z_5yZ?!{+ddmn8=r*Q)_WK#6zE(eS_*UILO)qeivDD~P&9ZVeeSWOO_pZv{BWra&U^EC#tTK-?rrP~foNJ7&z7!S~;P|5exnL4iXB$+&Uj zMu$S7R(PsR4RWs=dCQh9M^>p)MY@0;-^oa=N<|-a3l}i9oI`T>1`d^%OO`AdjSCn_ zV#PY_U+)xZmC8p?5=5E2v#=TN8lO|2nOC@|?P^ToRRH>4E<{9 literal 0 Hc-jL100001 diff --git a/test/fixtures/scale.linear/min-max-skip/rotated-case-1.js b/test/fixtures/scale.linear/min-max-skip/rotated-case-1.js new file mode 100644 index 000000000..bc9d26e98 --- /dev/null +++ b/test/fixtures/scale.linear/min-max-skip/rotated-case-1.js @@ -0,0 +1,34 @@ +module.exports = { + description: 'https://github.com/chartjs/Chart.js/issues/9025', + threshold: 0.15, + config: { + type: 'scatter', + options: { + scales: { + y: { + max: 1069, + min: 230, + ticks: { + autoSkip: false, + minRotation: 22.5 + } + }, + x: { + max: 1069, + min: 230, + ticks: { + autoSkip: false, + minRotation: 35 + } + } + } + } + }, + options: { + spriteText: true, + canvas: { + height: 211, + width: 415 + } + } +}; diff --git a/test/fixtures/scale.linear/min-max-skip/rotated-case-1.png b/test/fixtures/scale.linear/min-max-skip/rotated-case-1.png new file mode 100644 index 0000000000000000000000000000000000000000..c23af54932ccb28208ee97ef738c81aa788ac11c GIT binary patch literal 21357 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 M07*qoM6N<$g3FqJw*UYD literal 0 Hc-jL100001 diff --git a/test/fixtures/scale.linear/min-max-skip/rotated-case-2.js b/test/fixtures/scale.linear/min-max-skip/rotated-case-2.js new file mode 100644 index 000000000..7179518a7 --- /dev/null +++ b/test/fixtures/scale.linear/min-max-skip/rotated-case-2.js @@ -0,0 +1,34 @@ +module.exports = { + description: 'https://github.com/chartjs/Chart.js/issues/9025', + threshold: 0.15, + config: { + type: 'scatter', + options: { + scales: { + y: { + max: 1069, + min: 230, + ticks: { + autoSkip: false, + minRotation: 22.5 + } + }, + x: { + max: 1069, + min: 230, + ticks: { + autoSkip: false, + minRotation: 35 + } + } + } + } + }, + options: { + spriteText: true, + canvas: { + height: 214, + width: 416 + } + } +}; diff --git a/test/fixtures/scale.linear/min-max-skip/rotated-case-2.png b/test/fixtures/scale.linear/min-max-skip/rotated-case-2.png new file mode 100644 index 0000000000000000000000000000000000000000..335a03b4d1bbcfbc66a67e809792f5fc871f0f59 GIT binary patch literal 23853 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 sRJ&OW@)GRDqC? literal 0 Hc-jL100001 diff --git a/test/fixtures/scale.linear/min-max-skip/rotated-case-3.js b/test/fixtures/scale.linear/min-max-skip/rotated-case-3.js new file mode 100644 index 000000000..22d8426e3 --- /dev/null +++ b/test/fixtures/scale.linear/min-max-skip/rotated-case-3.js @@ -0,0 +1,34 @@ +module.exports = { + description: 'https://github.com/chartjs/Chart.js/issues/9025', + threshold: 0.15, + config: { + type: 'scatter', + options: { + scales: { + y: { + max: 1069, + min: 230, + ticks: { + autoSkip: false, + minRotation: 22.5 + } + }, + x: { + max: 1069, + min: 230, + ticks: { + autoSkip: false, + minRotation: 35 + } + } + } + } + }, + options: { + spriteText: true, + canvas: { + height: 216, + width: 520 + } + } +}; diff --git a/test/fixtures/scale.linear/min-max-skip/rotated-case-3.png b/test/fixtures/scale.linear/min-max-skip/rotated-case-3.png new file mode 100644 index 0000000000000000000000000000000000000000..790f5525efe2db139223ab811358a1aa9a183446 GIT binary patch literal 26146 zc-oYFby$_#wm03i=oDBiLK zx$&O!e9ztI?CT$UWDtF(4_yr8PVacJy(x@AdukkMka_T>Z=*ay;JW@F{AdGNm9(j~S+yltOpK9+9 zL*k2vLqi@pPuHIcJdk6|Bf5{phDM5lgB&U)iDiXD78)QU^*{ghjB!aACOvgrn_2Q) zD_7~?KK)Co(>W<`+sh5Qr36=pA0?Got6ZQ`PvHK~_b(iomME1*+~|t(a3O+jKhabK zRc$XjE|pS_z{CFf)E*(49W!>=1QHA>4ONHefJ0C~Rpkevrv}gO86iHj*AX4S1?J$U zgKH!haLkYufilmy*y6#1j)C!@$z|=O)o1~Upz8K<$4{k{)qfwElL^}i4lB@tlP1Sc zFzkQni(cl?D$lDiefwagKlUaEM|89Mj&dxupjd_V=iw{l_^r_YS^AX+gy*7kG*-TZc&Neuzd2be{2QB*k(BE2U zyB&K&BD0{du+)4o?X~Cr7c_?5bh5kpar@SWx7=x9=|w8MMm1DQVAQgK0{bN3g|WVmw3~ z#oT=)(Z=|QS6)J%R~Jv4_xov-rjA3_2GbRM&eqb8mc!{Eyh~!h+cz3aXDWqNp?^tJ`@ptB%-3p6}itI1Xk8!=%QnlIG z*doZeA1kV62^9|vD84f6@RK(%Fqi;eQ(t>8qRueqkheaZ_3&ekgfzRCZ6^6P`dAdq z6FF%~p)pm}>8F+!D`GOmib1J`U7wrHCzWgy`L%BgFQ6x(^*|uf@lJYOZAHZDbU)~e zii_zSrYiM`BBa9!=&VlnmIeH;d~7COk+uC;@ScT2q1`vUzwt#yMC5_A7+2wGgM%mIFPdTo z>L?CF_Is0L&6Kb^h+g;(^!Fk0a-4J)c7r)YNmi_c3K*_fXDa8?rY9_OI-pE zb0QYj&&1re>O*lU!UA=cULt>p1+i_pOTqPsR8z9Z`g54f-hEhCcK7K4c|+~l*t6l? z_v~5aE;o~m4v`?!*+XJCiCBy^omYIhR8V}7b7F1^%?68_hZT zU|mu~D06qQ2nbkC895Exv(Z(WSK@AenXR{{!49gn8ik%8PZ^d<2V)4hZrm4P`|>M1 zol}?C_2Sgo!o2a<)z5jzK1*&e6uaAXU^}WYb$C1Tx&M8w8M9QCM6|DOV`gp)lqXy8 z)f`ATv{uOxFX0BPU_5GZ=Q`vIFh|ltDa>XpK$`NGJY5RzHSP%uC8XpHm^agD_2heF zKbs~aBeRsAaJf}hh2gi~NAcQbg1!0jWVY1**VWN_mgB8oAu8$IeTLxE2Vpc01BBVZ znI&W?U%QT5q1allG_TyAaAaNT3(Oak*S=#~*_vL8t6e;+(2;{YIGj*lN$jEN&TIGrWV!l~oWridS^6~Mx zUR|8^Vw13h7&bZu`d#cRc&%qxZe0FYe4(7mzC7x`_JpCJ7*4v~r;fUy4eRoATh$W! z*<#f!r)!?9$t_2Gx2$=E=Y4r{T(Ip;C8@RMN**d9JDsvc|6kAFr*Wy|`W#^6=HhW6 zL(Dz<6|E-Abw8i%%m%Zn<=p*v=a+bNUgMLm_uK_*-FH5}19Qipe`8A#9Z5vJwMqCc zj+f{O^76B*v`FQm(_FcV870bc_#Q{?_1kNA}PHSy|E3#&ctK-UCB!tB9eS=Q|J}%RK*avMcp^Q3{k*SNnlPIw@ILX z90iMb2z9jmq9x?WaT5I1ELByjiBxGXSlYA}7d%Euk<&Mp#?es`<$;7k;Vf20j1J}= zlT?UYA+5t)qw`1_mmV88cbtLGeqYGY&=6LLQ9mS90h#YKH9`_ydhb?dfpEmlq$PZ1 zliX!3p_*a6M_JdQlSY84!jZ1a%7y;HY;DfdTb8(b%(6)gZM#$L&gCi;?bP`qhKe6* zY%En%W-(-y#9L3dIG}y*mvd0GJ(Vz zRKg3PNocNjr`$wHppK}+&-j9i-Q{)G@M)&Kax1pI7``xdY9l9-0qEE~&=j!}fqqE~ z5*DQ#`jV#@q`NxQ@wUQlJ*)Oo^*X@p=%L-zDY~qofv{?*Lu(r|wrZr6gqYXn7;{?g z@{DC}aixAs^Lb7qfW5tgwZS^qj{uF%k|NqC1@I*?-AUz$ze%0t+B^Nn4DyyE#V=i0$Ok~0 z@K#C(Q3f!GXo7FhKh3~wxPH({yuUgZ_-Fwyu`Z$Tf_NI52yeGc=Yc2@1P~yBk(^UA z8whBMrN7OqGG^r1&E|zcD^dug!WF)XuAPWx(Cg!Gu-?UW9i6)?Go{pKlS(gm+q7E1 zYV4Kv6s+gZixh({=_B-JzU>xllAHe(V!RbwaUE=R_rwS)chb=OQ>HhP!6f}@|8~aj zlNgAv{HOXZrOS8XMn0$7$t=GvzI8lo7pUvWwAF$ge&k;-^Mj0Yi~3H^R><*ui0t_tJ;nxZkh&F>PX0u;EljW7nX~ST*q7e*<<~PJUx+w& z=w`gktw_*IzX*bDG{&I`C{ZY5W(ngq%uyW{NWr(53%FOgC?5e@lsk1l#ct@GsW>dNo9iGqoUKJu~E zvv_`lPi4EX-aqRCgtu5ZdLcoB)@U|&cRVvF}lkxiG^_gUSZUeyZeC<<}NaLuY7_=NQofvTrfpB8wFf(#+ zaF~34ZT;GA=9bN5ITc{&$o_bGwdZ1P1!Ki3Q%ggzQV>1wd-PBnYWIbfmJa_+R7A(e z?h%+Mgj&VmYrh_wlG77-$VX`?B(x>^>A|WJyJ5SyUyAQiCvt^mnHI8aI6*PcqodnZ z9rrdjH$PSA314^@lvr1aLlzjoG=^_@8F-$RBi&Zk zOmxG`$xj|6p+&DSx3?U{c~9ZQc!OPDE9WMDJ0&m{marwZeCzR&*B-kDpIe{uw*j91 zRHB;osb#ml4wl-yosRAtaO<|?9`mu`zakjHF3Z?&D`Za!Pj0s=JAW%0`wGE8PL;Wt#`J%gP%?FbN zReQeds;a}fXi|D5dn)WqvKn3sUB^2o9YLBFcip{5IN9&sH|>*46Po}*SfE|`SZTNI z#|?@7UXql|OyxH39~P6rO35tGBO@cRb(&po%E95hxxs)IQWlp45gUn~26EMSOwPP>b!b_e#xE@y2#4PTv$^H*SiEJOhj-_kL*T?glUfaA3rSb0o6r z?Pj_!h~KAjyp5w`*L>y50;1XoXz_2o_U;OF#x{I}AwR#XsHigr7Oh1m=9&lm)WgS*Y29`{r+)AF z(;{L z6ck!kJ7%JN2%=!mM#$+60rAq$)*ZTCAHz3VI+IxdJAF{*5+R4y(1Z|>IB$UDdP_0& zN;CTEbcGOjDcXs0-Q;_@lEXd_;2;|8*M~BU3*}=At}cJ_M|bZn_srx10ri(F>Ww6E zUI_#`O)etW37AekdJO1Rh4mvlMgSHJ@`0WHM^=Wo$TR4B_x#d9q}u$xPXt zCoUs4(F?g~@=YZrr3oXYfHy`zPj+4#_h8s8w2EF3)k}b78yBmjmn{1IjMXJ|N;d9~ zp*lJmS9=&q%v=wQXP7<^jWV+Hj_SAaTHk#I1a2;-Y1H@ch707rwWh~~9N2qjr^8Jo z;e~F+ZhHTVQQN^ZE)prcC<>krP*%y4X;U=A&_pJMF>OO%H_uNm)ukKz5|Wc;!Hi7f z;sCdY(#}S(anc785Ua;fXfu*2RU6VZr4CMSx8C_IEls|r zre;rYKwcc(gLs*7>;bgf?X3|Uq3wG1lHfUh_SMT?TB1u>`n!e@~dL3^y zMPsQTi<1~@223Dp1-tg(s6XdFEc9*zs#Fu^XtM%TDf@A<+?w)jFSk=}B1pl_FN>Ak$yL&cXqK7@ zdNbKO+}hjMyx~;ZU?{;^cki5R|W;OY1hJvdpsgJWh_<+O8 zg8p@c+0Su(tn~q*p;MGCto6^btH|h1;iIqEz{)Y&=E^ZFBiNAGmc-1Im2oCYABMlu zD3uXj@GNXNqXq}19NSu!t~b+KHp!EdbiLC&VX>w6fF&$JsyStLXysx=6u$_fB=DoV z{ZUyj{FOw23+}x*JKP)=UNqY$jiVLqz9n04Gl8QOPMtl)kh)UPmzk<|{I|&>H#FO= z6qLpEB{oN$wCZt_43M?b9sF^0x3!Lo(+y0dQximMP2a|ml9Ix!Ihbo};w0cJ-ivQjhW-FrxYYsW z-MoD}tKMN=+1S{auqo8M@-BP`O?*)?8v%JAJe7+`YU|00JFPjup*y!#*o@!k%HLYU-78W#Oj7|;Q630F#5 zP;fmGAPV}v*pX}V>17udN~H|+iP_HQH{n*9nge-jv>CVLGK z$CfMWC~^4hzplKuKEL7EnQuvVXgk)@As-_qCJq7+I#??c1ot_au@tcR#OAeC`Xb5l zLpD{^EWXFQ8wHnPdp4b*_{Cn2*{c8EKdl0VCZNGJvn9OU&&ze|rboLFHCflqv2S8b zar7vts3i2BOMyHACTs+L=YUajrin{%C^EU)|!lEA5<*7&vjFq=2~9wY9zv&u=%daw41d z$K)IOorR(+cE9OoQiwAnq`C#q5`XH_2_(z2P^0DU(2$i#41DUPV>lFt2T9%0K@>R7 z4l$R%bHv9SNeNk5dcNRrFrAW@fy}7B!7z!uGgB9y#-)d`E!7Pc41MtMp>YX^IFf%b2oTH1jZXROaimUUwHl=la+W$Xo!&8E zFkp$x=@NU65Fc`a#IT-Bd-R7+&2@CfA^@FY8%b)tk8QZ0RPDL{WfBCPK}?)$&`qyL@aDp zwS@R%MULXG2O_{HMIHvO8f6J$fDTlUQc&eKpQxzlsQLSpn~Ke95mtd5Jg5%xlsAhD zBe16Egr5a~b>0nFU*VX0zi#U7-hR!YLC*_i?eqYL>J;^U>W^(8gXN1s==Kucu0>F8 z*HUjZFQh~?6F~+7%X+Od*RT8?je#xDE9#YaTVeMlv%Zz(k1e1lP7`DRwg4lOkPP^* zY*^l5B|>4uGoh=FFFgs!?XlUT^r4MpdyORBHaxX-)eOa!w2FPF4P=+u?R%{(*YhDM zgx}2q^Pvpso$QWn(1anQExjIuj4IxoAFrlfB~sV)Xd8zAla2ez}t@+KVL}lWw zZ=5-398n1*d9DWv4(@wf0wRz;zh>3#H>Glqy6V3jMFuhOddYy;O`q@=09vcPrLLix z{SUWyi!5_}$v?y`tlI*GMND_l{J_Edu-W1(eabaSpYfU2V}hya-Yxfu|4VLAH%0`q ziaKHE`kWtaj{I2k&;8!GLO|Yrw)rBr1bD7-8pqZ^T7rdD#F)yO?5z$C<{Yic9ZzMh zqBbm$j*@dKn#{Kw^jwE#w!(=IQ2Gu}0-%(dHiu-ntCMMMXtDJRKJ<_W?5N zoVz#!s_VH_~)jFLA62`R6=; z0&l7S*TMIKKpX@cDadU^xwyEHs2F)3H+B*WckSkR|M;#^ten~luppe`=7SJ){qw_* zcdA(2#auUtG%FrW%m>!of{-;~d`XR98z=0D=r~b9(@++Iuzl7GKessf!u3kFi6*Vub-)+&Mgx}tzY646{AOu3=mi5hzME`O%ZavVSm8y8n>Vh}PahFNca zzgFmO*Sloa&3+n3v$y!~-n}~l0(lhJA`(n|YSOEdS;uhzRJu9gLhUITNKN*bE5$Owal z-0)mNPWzb;RQ7@xFME=ajGm8AsNRf^-Nz48*EP86C$16pDi+U4qf?%JZrne~faNWc zu-?1tI8~|tCNGbnd$b$u<-I*w&(r1bO`w!iTfgRbcW+Nssoi$}miOfA2ZU_Oh)3bX zdHCXvK3_g`sO`JFCx1xrUnBYi=N?oMJ> zvHCV$Q!NCGyCES)i=B_S{X3-*zOmGBztz*Z^(ukljFwc1H=j$gy}QCrvflFRAK5-F zD%M-iTz4-@PWi6=oM$u?TbqvZ>&INRHm_so#r$jQhuu4&p|}+N4UUVFwP0C8@2h=( zx_f=Ad20m_@@VeK$I*P*@DCs^Sd3QsV?VV%ed4v>M=`(r7h#)_M!X<*FkdO1TeiI3 zW+%_i(~(xdIH;UyZSN7piR7G6B|UY_4YZ*pL5zr`Q~)exFrCNJ6)bA2KrVXYMXsMo zuQAYVpQ;S+tTzPE5;iq8B?`|u$@&eL*=B}i6Hc*5!E{OOpSD zcDhF^=_Aq=9~f~<{7{tgUH-aNrqEm5A~K~t6j)ch6Gzt4Nk#d+YaHTG2!7)R%={$O zveF%aLufsj2|3T6=~Q^^E_^FNb>LfCM|lr)R}w!zzib20*VU8(Ql2UHaE;S%PU(0c1@hc?Udmq&eOo?M&>je#NrrX33UF2|*lm75reb4-{i%xKc74+# zAc64Hd8P!z1(G7jy{IU<4t;?seMrmi_=F=XL!Q=4;ZNBCBPzfGk{vdgaeAubG*`(6G)tLd4@PbwX8t19f*#I%H*ky4M&6NsN zt4Ocua7$CsxJG;LA2{5PX)9KeBz?cNmT0g`#I3*eBVCYC<_P8J^ z^irmWN=>=-Y6MImp>-YFFsUIhpL3M4iepVnsLIy;O8SpArRTTs21K0M*ZclQ<9>Y< z?6nY9CviGcLFM)-)qphF3VF|+0I6pdJ?}<;8(W=H<%CPfjdX)Ybbq1=mU2Yizn^6@YB-Vo%59Cb={8LVZ0S8iXFUZeOwP(D6W8>qx zlHuA0Pea4-sALfLALrpba9y|AHN8DJEc< z^T;5_P^bvBTOHzuUCuyuv^oBwRIB3Aw_hEXC$kv{5H~v77)A7DR2SWE6q>0qRiGAi zDH1-TPGRoSB?BtUvSo0h`C4T?-rCV71WDnC{@OGRtp~!F8S&T;i`z)&6+i{*oSfoQ(c$QOOGUY$)4OD$O7vi2UbaPvXYz_3GL>hE$g zgF$4(t;@aWQ`-)>RIwRJU_qPPOGgWyg@Q*97gb4Un0Sa+y{|0Z4d$)?RkaSFm^*VQ$h4MzFYH2Of=A8j*4IckW?hV+%MgwAzDBzythF zdJGuOJRVVe-OLZaQGjS2u+7x!;i!ouRoWwF3ygQ>$m*=Gs8qgAnKFeCw_^n8({(CpU{dG3wkzxfRAsY6{~=#P6=h~ReqG&`U}tBq z1{&oX`--9eWoTJU`7Z=hA}*VIlhq`Z0KmVH@IE0@M8@I7A-r?3w|x2Y2c|FJj&Jjl zzULz~rf;n-PWLqmjZgQMHR|njy;c(ybdp|B@ms+9dwWBEY){4a$56=v$|<}d;ZCJ1d)YdTN73N1~OwWp2_T~!=z(S_CEpU7Eir>QU1rd5K_`- zrUMHU&{wP7gpdjh_cSy#4uJNO%@nl7Fhp55tv2byK~#->fnX^GG*=Pasr2*5uBA4u zG=qt$X~v?={+B)yAcd(7O72oMZspENo@rO^SX}c61_hr;q|NAR|NpXMH>C&h(|JT$k?+bpB|VoR0<1OkA)a` zZ88HhO3`xcG^Ovs%)-nZS_K?E1TDn4eI@SpoVg+s)KlOF8XxbNG80FUuv{V z%lOuq&VKj|Xy&%_Q9TzpJ6+^d9PWV>rIz_5c-hxsO8*rbs1^75@k z-yidVh&qpb!+cnP;t&<&3X@qmCEzhOoOGGRs6J}~NjhVQT#k4MYI!9A_;oR5$MMgW z|0IG;<^g`ig9VZ~|K`_(!>=ECW*Qs~%YcEd9*A_3cje&B4NknUjw`W#^0;H%O(H5H zt#QqEsS7Op#_L}3!3sN*%s0j4e=b|8$kPO%Kxd*ni%)eyxXg{_xFv%(pMrP@7@ZQ>uM!?wxFkP8TY{A>9`HV!PC@C!!Q^ z_xl+wFh{+jjW*1@5oiN}mI87)2zrdrX2_v#N{xNt5}uoSea6ekE3${c2ohH7oUj9` zPee;Vfy;I$c4GvKbUr{b*~5ZJY+@rrZ;{{Zu9d#C>J^U4Vy?7=q%u+nKDohTvdH)zgB^2+hgs1TsE&$Sg zpR|-!dwMR^P7SE5UXmQ!W5n%l_+015aH^EN_K$csbe47brCBPbd+~Mad=5y*~ zQf1KAz5gqbNukygXXo>q!j|238g*)kLqQD|=z8`2ze>DFTehiJpLq<|x_|y}zEt`K z%x)2ms0krtq{o6nCaO-b_vL zJfwPRVI`Vlz!L)hUw@4CJo6*rx zWZTJdy1J7A@~H@fAr>@$0_f@>n8sp@$8O-#lF`;g8HLI>*Kt*0{nRZ) zhvmkn(ucieRqe_M3q_6=VjCv63=GT+7=PkJjs(r#xZ0gj0Lve-WNJ+M*jQLFtcz9z zRG)N+=@LDPf?-WCRk4F*SJ@oLhyS@=igz|Gp#Wh^C0_0qPUD!XgaQ)-yc+g>zC{6A zI-cd&t~A@=Xi1Jd_o#8dpN1dgfbJX5{V%Rxda>PG7&$p({I1R{AJv*+r?P9Z8xK9> zg8(^D-0u5xOnA{pHl4??#JDGnv5`3LmXRtOr}=BJ)n$_%+h6~#lmI1TXk*jDTa93n+^NiUfMf7yxtqKKE1) z{G}V{x?Tri;1Zv0eJYhj^a;Oln9qzN=gK?)PYY*=>kcNA+_;%8jBw%AhIHmP=Kk34 zJ6CdV*ns`+Ry30U+PelO6-0O2y|<{OM7{?ba)r_2zEj|Jyrn*zDM-clOxST@d9+Xg z^Z5IG7Wd=EPCp^1C8_4a54ZQd3M`kHQB#BEuP|4G8nu9AD58F<4Y1;=c7>rh^EDC~ z;?X>Oo}kOBifpp4@>}XRS26`YOlt`MzOM*`?C8d5;pWM#W4vLFiJX~?3`%ivu{zKP z&yoxDnle8IMtq4)8B^ri`G-9X^28&?`cq#S##d(QEU83KkH*!k57&o}fG+4s)p4pVSi&Y5q0C~ zDr9{~r?W;TN*Yg!_y0huU=Lus0Bu(RG`x6`;}r#kLg&_0+y`-}EE7;K@U$YfGE4R! z5j}R}NMg7j-C7={H`7`^MStVZH7~t&zhk^k5%5mO{ zH~z8E?%aFDZa`F1JTCW2r*T|PLrX92lt`(q+!j#|SVL04oq>nAqwalcdh%6=@+-BV z4N(wRDyQz)UrxAKeqjPAjs?wa3bj9IM$yx+!3xgrVSvsB@o$C>X47CT$O)?od@;em zCoC*X`;NrUM%?J$;#E_BVkk&Jx&L0o`3rnv%FzFLj{nuu=IzQB9V2GAVedyM6Vp>V%2c(W z%dLU`Tqz2HQGSTZiHp#d<=UNXi2w5C%f|PXT?_0yqWUvL?Qat#BGv%12|L5mgO529 zx_3hbZ6`hd-1YwLY;T(=@eXvMttc|yks@GaWyM6?%h^o4lGCnyY;2teNosPKZ;rJ8 z{2E)~MmT^1-o+3geeXLsa5J;AK2%g3kj*TqnI(d2WJE+gM%`D2r)-8B_8R_VMqy{p z!Xn+NkoD#F-Y1{PJa;Ha&^VsE3-8$PTuNp}Mox&>2=ES8JofoE&6j}G3`p~0D1)CV zol{q4yhOFIP$9niYXG&7ogy$MJ^S6uM@L6_^nRy-H~dbG*OPhOwlutc?lf3`>5UX8 zh}mik{8|?MRBN3s;QAIef@=KUCm<=s0xga0uNnIB8TFo{nftfTZ#Yu9^wJRbfEV1R zV?|1uKaaN+L|hto>Std*JzPh75U>&omf8Ee%4qsF?x>H#kT+UJM~6}Z_=VR#XD;ko z<hMg_~d^qLS(JK7YL5q(*$dRVY%7yt6j{2LX8z&nLrrbWac<=yE z=j*yYMD@Ap2`l0q62*g*Q-E^eh)QxnVc{mA(4u?K#rPIOa{bP476KB}WVDi($4HV= zud^7Qc2g`$tkf)B0Y*x7%T5u~n81JKjTNf|GmPL1&mom{EkD2Qfx)Fy9gySwUG#h@ zn2?f+Qo>6>;%qhf9ligB^9G{GFD{;~RjwnAATx=RX;Y0>PiKY+`SI7xp;9IPsG+Dp z5iGvAO20*jsK{s}Pa4swm3hk?rwwR@*M67hAr`}#az@L)KvL=8Y>tfF&*Zlxcw;>t z=HlW);5b{)wE?osToRX&@fTLrlBy);f92^Irf^XXt@4c^+c+T5v@Z#abYE&!JaYea zb@>LEZ?w)JBq-mL^}Ad1Ey5Ceov5A?(o@G+s)Oluy|$Sc9pScQzaR0pEw?h9*a-~6 z!VO*z9*hMdUMc~JQfkr{bp$3lswzAWrxA8Q<5SEQePSVUfiFdifk)XH#FomTO;GiV zDK~iEpO&u|2u(u;;1h6qI=>?#c%JSkU*a0@eeS!58>RvT3KLpf|BF4J1AKLeh>wqt ziH~PRQ|gXIpEEnXIQ-~LckB4#?9k19cVW0v2AYwqARW?wOMZQT*}%ZpRWqLx`=pHN zKRfsPNqZp4;2`20gdA?pd2Ls?zNPc1mh3Jt(!qOxGw_v20sdqT%6Sk}rij90(thV- zg!@*RM3jKWrOC&YrX6B67+p+8)(1;z;Zk1AYMjNrg5P{5z znXMIk;q(9|9dP2L)m34aeSG_@@y}gu9QopBkhs3G{h19-`}ILEhEw$;!BssQ9sKDx z@=U*EIiOo|@HW*)BtSjM=T~ZS{O6UC!Ilkwo6z)$08uFQQ+g?ugh$lcZ0eo|f{lY! zivJ1wr+Actq>+r61Kf}#u|)16NgK&c9iPCDs3Byo6{G*Pfl05Cxr+fM|5R`MwV804 zGzC+!D<9m#U4en0KN;xbcf_)g#Q#h4l7kki4({XCPW=;mIBD9mXNo;x_=SV%Jau`> zz&!;OUUx$2WZ{(N{B1v$yyai&K>jg*p9S6eG1O@xAqs=HUrn&TOSxG+L= zD@|1D&t_dO@^358?!T)AOkp_=aS@36g$y=w8c|#m$Z3(Vyp)ub9-h`c8KPQw_sy}; z1^-{Z=c~zTF9FR7c%OVjl=AXNXA5X4+T@hyp8RVgdt+@|Y?E|ZclyV&P8#=5W)MBt zx1_pVmNp{>WVm)0JMJJ&1_omiK4|kg)=5CTUeFzsu=k#$3f@U!e0H$*+VbNK90CFh znHzWf5Dho?d$?dv5U<|hqY<_9jnjnK`Sl}c65~J6B#9DlIi^w$zCo+!XzIG?KHvpB z!zLHzE|Wd*BX2bFm|Q&FZJ`#O8k0aptYaYV>jG2;u$s)?5mWzFw)HP4v5t7Yq^h2V z_K)vZkMZH8k^W5GCd$e`-4t3<5s9c$K^@y$jHbZqK6$(i7PDvu}_GL#>ljaN$-dE- zhZxjd!(DfHfIS%?mHNPeQ6fMpib09t%Sd84&^@3?9s;Yp0o>6G1$y5UA-m~>kv8ui zSVal_HE5hTjayi@U56jvIhB1a38XH;`=ri%=AavE zT0+u0pVecpAL<^1WBVBxzY6K0hDX1P#UqybQ@ZV8Kw(xhp%VpKkC&(`Dq>YUZn{;d znkA%ZEOENiu&5K#*RbFfje$?ys~A#ZP4OW|LT{@i%i+D+MQ~;bqxGjZh%3RHaTyK3 zcHCtmXk)t80QcA2FA8pzr zvNMtR2W>-br0wT}%s;J4K8iY%0YhTeR92E2L$M83Nh90SHKrs^b;#}L5upKv;Tszp zw(ng}zUhiRS;w3AT#0o(92PzdGn1c>f}Q3GvKWGGPu>yP&-_DeF~ofK;H*uEi1l!R zBvO)@d6&#;$=Lk`{7W|nLxc|+KpaOeJ_zP&we_hKEh!+2NW?FI$uyFfc~170H)kZ5B=@;Q>KRp2VT%%rVCu6A4q7(+O&FaY*L?R zWRz;Y(zuEA5h^KDWzaUgOXSOU^XAR{tDn1sj+5n7m!~W7Lj_K=_6;?r;XuRQH!{j= zAc(mVi@11W2n~x)Qbmh8napp`X!DG=QS}v8SA6Bw=%$3G^fD(W#}BE2(!g^W-RpEY z+*zYDNw}}CZOWW$nu{pJ0_&3E6|C#8eL&CK;)uGf7fe0W2psoP83CWzfg(rlXE>H zO(Zu~W#jw;ZCDc8jOsX12|4}WYS7D*%#5(*-Hu-l`UP-o@+2xVBn83fTh3OU(m@hWPJd3Q=I5L4tY4Jz=MAh}W;$)qr2D6B){p$TAP+d{CtL z-m&A79OZ3)_>J@Qs)Da>0~eC~|8+fyFyyZIg7NY3jL;>(NUs6NmnD*a%#rZ+{QTNl z8i*)!>12>xI!MKz-`M_&hBx{uz@BEV$Qc#mz+JluJ39WhlkE5C`Q??{x`>9cN}(~t zOJRz8AwGC)-ao#_{@N<5f-a9lBn+cs;N=YrDC$5S=i+w}2gUsArCBwKJ1_a4-?wld zOC&geH!0w|VY93CJv%$Qblp0O-<3naTCPC@iKOWayH+8oz>;^LxH9^!*jd*>?f zXe6^_c|+#ke**?BT#8L;V0hU6d_vo>0wMC;b{C#cRvD@xUWaZr1yGaNxJloR9X97= z6T@7`bU)TkL@$w9ve^<9Imzit?GP(CQT1x5-Ez)tRfx z%Iyf+&kx66FVqV=I0rXZ3Nsg!7|_n^&XMd-Y&YMKgTD||)q}RXTiR+IM%0}Sero2! z46(@!JD%Kzroi$hl#*GB<0<(H9_i>%wt;*Z;v20n>cSJeqPL{IX}8zh;6O-y2DKo8 z6i6Phgxnf0(%z-S#Xk>KqB@X-4Vu`nQJM9a;5?Y>=eS=P93B&D5tOgi_7pSePP7%L zKxK&ah{8kD4~u33SR6-?xKLNrpPHwj)~0Yy!JMhIjI*Hfi!cpiUFTYzPSYzJrb4m-&U?^B5<)FNIs`QCc?VcX%y zdi_Z2T{veI7S0#<6n4!hho&`h769H8tv3`4FdJvi@n$TDNBO_I`CRP3MO^p0uTlEH zPv!8K-&w%xKIewGIlT*8vNiNQCetj}NsN61)KoV2gCZ=&Gq*KdGuqttWyyGiPVoa$ zxXhGGK;TnNY=W+@z$EG^uN$nuNL#|t|5DK0(z0$htVRnk(RNznc~C6bF15l!Pvpzw zGQWhoA+S!b$bG{)3sv@qB{AAh0yIIYvpp$!doS%wARv%{>Q)HA)!qZR&(EEPPj76s z({2|4#bto~ef#bH^r#t$ItvD}gG-*8g!f4iPsc?P;`Pmw7n)^SQ^O2<)1wUKLgZrs zKqS`Oecnl>&cEong1@?+S6yAb-A}reucjCI(%8X)8|cw^bR=8EU4JYIP{Xti9NLvW z^E!dz7p_jRBE->FE$%xT>sgK#qDZKGPASq#!H^F(HJ7` zm7?*l<^dsXuj4JQoRS_Y5(vpW8-ctbr+RYdY?TDjW4MXv4F=1aZin2ut?hMcSxl@> z$EjudHqQJI^N6UI_TKk|;~ekrO%4@O7JS5)Id5q@4_Gb%pC187T00vyFcuR;tE8^3 zZeVW!%yt3V$B$;p@O_0i+DLdO3mXMX*pCHo!qVaz)3*c*99_PfrpRB#OVfD_D@kZ* z23btdqLh`DO>o&!RE&{rKD|s_%w6_o%fKyBotc?YC7MNvW~+7gJDIVxtJZ#bKM=hi zaW>#H6ieEP2{}18kY^Ata0c<<4}A1k^nF|4&#mA5Y1hMXYHwU=w%N^gF9e%pno=6) z2a9TEH7$FB+v(o2pCdX*-N)wqsD4*q zyhcy=SFF#EHW9@jsrv0G5Nh!o9#zh(&k=4*-0}l$eb=}^Y-}>v=9-Y`U7#uRv$Q*4 z*rCsdi@~4cjZr4beR85?5=~IT4#Q|16cO(g(&@F_e^3b7x3=pBc2Bb5Ujd~FWqr5%S;OsVn&hlY>4>OwET^5{?>ds<^e`@K&7Z^V0 zn=kAd;;^gaqRGFJedEp)vS)Wa;3ucfuF!AOM0Pa_A)%!t z2^$D$o>^q0xBTwkbOy0vbl3P(@Zub_cgp~kq-#|f41d6L4%6)LyZi=nQIQ5HWhD3c z(?dk9qmMM1=9x`8xBkU!?Mc!W|ZY27Mfu2&y3`BI-2j^iWY%RrR?%p6c1J1DjCu)oG2o#OrR*qR(OMqHZ7_ zhnYY0yvil8*urug7@-;A;K!5?55Im?qY-g3;*C>tnsfR-CwlV4?4z7Z>&Awa|8s?_ zSkmU!m7<;(bj!&6Pcm4ha|8 z69N$zGk1+ehlYmkdM*WGLfN$|huYBS^5OGORGSTk)6X%K1!SrbLlbp++KkE9>n%M3= z7whX*>j@zzBTH4Ux0?xg^7R9{(F5<}32p0@{#Z^lK@4&CSAw>aM_JNKHHAvShUhGh zPc?yP46V)z>_hT(94k_CDOOI^$&T*rghk##W@gM;=KF zjp%lEO}*pdjYaMj;2K2%8{l+L)AO020ZS0URl@L19n=3Ip8%kxv2@r4Z2@yEwT#PEv8-E~ahTLii&>y^m ztHlw+XZK8MZsgbP-PR|z!>` zBone_&~;kv`$AYo8b`VJgQKc7DJdm|G{}vZ`~l3k*8+L_rc=jm`%fH@ok1{CSE2Nb z463Lnj-0*sdB1(F;j3|Zg z|10Xe|` zFd$Qs6eq4^kg>K74n=;T=XZkq9?MWYABPlOaJ8~=wm4Y0hiz;$h~dfdgmy{0`qwef zw8!6|c!akLk36zsrrJ2^pejz?F6Z8P8@*;4cH$(1=jcmmX=$367#)?&K{Mp zB@iXf0BR|(K-g4ZYB@UG9vUY>?8B$qOf;49uHa6yl8xEFy6HvPqxj}4 zeE2q6qhb*JMH4J&vLop7pG`w*rWnLnQ}z|@}z6`G?%<;>3BfS*xS>u*G%Ed zWD_|N31}2n4c(j!-rfO3s`(ZGj3ImsF7|OAm_9IMG5a>lud>>XPh>6Wt0uy^#7C*uwifzA zwrYXmn!_?NQ>?I_OMwNcK-SfJqJLv!GDpwvJw)i_6$6ln8keHyXwp-e1={Wz`AFYA zmx2nOcjMf~lUQ5*@43d)>{Nd6E4U5{jkvYRu!?CMetep(DZblXCr_GzIYGgOXZ;8e zLcFpBhD*AS>+SIFOcXCM3iU}8#x(WNY0dGQWH$F=s}$f@%)_s*@NsOVd+OE|V7Vx< z^vzC84rytbJttLQxwkh<*rD7w{HiLn&Z>(T+XbWSVfe@JczhuXr$~zBg$QU`ETkS+ zFz*2uADX|CD7-l&VG`-9*dceQj!}ewvrXo3Y|>bT8!T=y6|v&vqC-Rxd&N)n%VPpsA{WnI$rMmZiulV*j#$dF zN|Rzy2011^waX1+@1?j)6@I*r`^dhZ{IUh$9$a`4ijKy} z1AMhE9ktj60nn<#JYj#cG`#bu$fO4~M`@8?&= z*K}!pUGz+O%A#|@O_Z7=e$N!3tC%$22V(@U5580a6eiaDs|5O%ps=nwxZ*~ZwN$?3 zE0y}=_=*t_!}sS)fw`4+JS!U_3vzRuU163wZcsMLm4Y{A1{-JXA@5Vd-qq5>SUyHe z=_1~eeq&Rmi(Ukcz9c`(Bi{Wz2>~>mTH{DLkP|Zp_Vp!z9<7_hrsNrCvZH*3 zpeI4h2~UMJTznA-L@=kQ78fWmm4yXPexUC^_iog=_B*YZs{E}}86UI zKL}3_>6qW}V96Gs>K#(Cv1O*wmuPuX9&9Dxeh;w;x()U}^gt5tnPgV(rsvO|rOeLk zi*z3Sk}P41=)W=yWvJR)R$cc(2vJ?cWH;MVMv=>dWhrGRS$lgj1;>xBm}O`3!zYgW zEzW(F<%hj)1s2#`<+&2dtP1F|Mt`q#YW$vmLSe5PJtB=;=SSzi#HNOxJb~7A|B72i z-vO%UOtWQ@Vezj7Nz=G=-WUSt9}6(TV|rkBVTKeIkvV4Y-Fsy8m5ZI%80uxxQ+Y`e z?0i?!+}5ArX!BN|-mI^E_f(iMgls%7>Za4OES>l<_Xj%w2d z&y5~oP9;qkNw*>4AkwHMN%NI=XE{I~k05hdeax-lnvTQm7Po%;{+MjhSJBngWoIIO zZ3_L+@xlYg(e`GlMar{B7%o%5thuo{M=QnlN{f&IVhWQym6#x=nMIf|9JY15D+|AH z>gamVrAwFYr=+BS@FXYRg&P_fwV?5kT%K?81UiU(ilgL&8>sG4QvdPU&wjmPJYI}T zLoFso_6;79l$3LV5=R^y9s92ypJ7W# zNZ`}cOD@G(-t1>O1CEX^-DkE}jo+AT**VSul)^ML^UX~ka7u&Bpzzw~7u`_&q!Jkm zKAjY}+wo@uod^~M;7!kwLO|Tn01GC+SP2FI+!H{X&nK8glZCV83MF63@UL%>=JRqS z!`pNjfF<_J5dhlEX-7HXG9_DEj^CD3QBeWI*}OBejn6I)=%>x0bh*h3EL`MiCyWKl zlcpO#rfc5>kA-Da;2Ke5%+Rji#QC&&kC7*~mj}z>qF_(6Le2Lt+}7#si%Uz&>FMcg zJ|CITRBPTROFkcJTxzp^0NSiL_`MEKA+kZ3ir8Q&qcyJiWuoZFsEH9v8%=|PfkKPe z?NGulSH@azwx}rjMs8B3*z)McbHH`g0N&>%LzrZwh1?`Imyh;lXoGO!<=%qvsK>g# zQHoXFz>4uHkNfr_U`3cJvBOs+P+)w>)nf>Q!Tf(rw_D+NWI1C--5gO?JyFIp2~m`T z?PUdq&AJoR&|`UVF_hjE>Y=y<;gfKK*Ifj%Vd|;};9ZxQ!C<=GyUh*%B6Cf=STN?7 zhI_rQ51>;dni<$UH$q+ffo{IyYp>QO3248S4eCzvZ4o0|Stf2tqsimMZAgaVh^%XT zXW)lAST+%@bDusA0#Sbb=akM3^eg*2IsN_gv1lp(ps3uGID$GpT=-Q<*T+SV)aXyq zHlxoSiW`q{Mr^G>Lp`EBZkIkHzw;VU>plQ<9@o+1_1R$O1%~^8sPY9s*9{+hHPRZ= zO;*HuL1IXD^{OI%+(W?Zae%v!{5pxZN9U0279(Pol`7_3Nr22)#O{6@9o=+dJj$5o z!AE)FQh1=Sg5k!%Pwb@!NZsB+==2l%Vi$smF5lt)tYdv9VuIa>f+ynUO4KVO=*-$#U z>yyki;}z~0IN<5sGlBGW)D7lOhMKncI`VsBvVMY{r?|t<+rYOK=PVCZ}R(BOOoJ=ax_O@UE>HisX(|e;P@p9!(ryTImB~0U8Y* z4Ar@eZo@VDtOLPE*_GgFB1Fr;OX_UM35s~QIp$EpxW)ec%1&k7ewW0;`7wU?n{dYV zjTLC#c}91NZh9Xa5Uh^SiKaWSYpJ6=3sTL_816Bc-dl;>kx*&kl-``l7l49}J9aVV zuN1}n>voX+WEsc|M^xX=>ZfKvDo=9x&&Vd?5lC*Pappb+`Ti;AN$Y2Sdd=j0wDdgE zBi``Ssy5K~oq@p763Xbpq3Y%+k;zH1+&vP%1w=(@2{lX5nw*j<#)K&ZOHPv_=9|Jh4wSh#`D1F`0x*fZ z!5L1T5URF_ge%~1`7MCL8~B<;%s~_aE-E_uh^=4*k9Qv(JnlhbRDits++yn{$i#dn zjMb5}$_;}9wO=x~4~f3?I#ez4Ep?CuaapI&&(~K+r7U8e`kY5x@7epd*lmUot+W#P zuv=CSde!M9tH9vtg1Upr zvj%Czxuq)Rxrb{h9377`KOJ$&m~sTmv6rktWqts-Y$~Uvr3FT4!CKR!IS~#86RLzY zf>=YIpo?qOmsjqe-U4EntvmQAzit}Ghjb)Qa@KEuZ=R{tbgx&0e9=g7SO?EKfK@`D z*46D?Dt)*XO6uhqLN+We zRiqMGsj?v(TCZmQ?*9RYWs}17#@p7nYAK{NCGIsjc2P`fSZaE@ietH%37Ga%)^}5e z*@`7L`9hA<#UD=0+u;1!!!$*bqbt5}HXqx^eIi|7bL`ozU+d$w4c7*OGNR0(8Vga> za1Q3^vf0xuvsm_J+s51|TTL?{Lk~=M+-gnR9`5gVy!JLtZK4*5*iNbp{Fl2whp-*n z<(4!K%jt1Oa0MLV3?Vdin2#6?gWOsgC^u*&TO0zkS-Boc9T zVDb*DxNZTGNFj3M5$ERTA1KI(T!3AUEj+N*<5nOmX>?QUHehGx&mW&7s$kLJ zm{TMPhiqE%h3twGC98tpxOR=&waoq$fVC%st7)+$qPgQvCsv2R}fXVHmg;h;+YdIB1Ak#2VIWYLtQ{Z|JfbGZVkwy?o}DDCDu z)>~U^QUe8Yr+w^lC4{*1#v2TYQ5^)D^b*w%5t9b_6ELfKWaARl#f(wM26^f`I|^8otwDGE|eCQJ*oT3XMiu81$3M zm(3E}he`kPXzL&lOYd;$Wy1_F+v%)p!VRRZXo%;73s(M8I$L(T9~AKHNj4W zM=~B3t(BXUQgT{qfc;OEqS2FGD6Zy&t?io4d0gWvkVzV(d)WN<#exgCqoiUc?IQMSHsdMZ zeoe)BbtJ?ltw~!LMUzgZ#7Z_hb7}B?C<<#{OkYTsy|cJv4I_DX&1_L57N zxGPO3mMq>sAlL7=W$np%^FR2v(v|OBF;fd}K+a;%BVeXEHTV*)Vw6LK#w_1z9lHcC z6n61=AEUnG#MX2Evv4D;g|3@hZlqWF?wm3Wpjwe`1Vm7}zX}7}Rdw^d2yKm+tCfCx z$~bJ2gukPJuuIaG7&jz9QSDI=Gyp_Ww5=pUi+lQ7mFPA^Bu4$zGd)_@9MPHw2e(iep z?0bmY8AhXTam9Jmk-*P*$A=EZTHiB!1!+jPi{|eG&V6Fd2>7sJ`i0nde1dFqV6&76&c|O7=RItM~8UHza?TcFY~@Tan!ZuaDH*4myDRnr(7p0}AinQ%#JX?~!!hdf-{K zu&~g$RR!OwVL3NqbVliQNdn~ShX^}qtr z;DSlil4C~6E@;4eJLqZi(YD835R+M{$>CDSpm6R8_rhA@O#l+RXfk4-_%TT6Wu_0dUodwOjk|v zI`OUc9n?T$@Gd;e^{ejfe;2$%4U*sdNn`D>+vM*ay$(Gkdjv1Nd!ZD@|2A$nNM!0G zNo(CSi_es8-_Tx1Wd7UVn>W6QK{hSgwV?Yqg@m(Tobnk|IBhj_R?EX(e0QW`naMl) z(ttvTyz26w@;)*nC#TDv9hx!E0-2!Pp8>=eA%B%Ote{ZsGF4zky;FrF@+J1}+5bJ3 zghhezKuP?-tpLeKZswcsRSg7cgls&CN%rfA%TiQ5>HPnmb%K?VXKWOwmvCkL&Suz$ zu^jZy5cT+rJCC$fNY8u>Hlj>i_kKowAj!s9Cip7{zH2F Mw&!gK*2tv)19X?z2LJ#7 literal 0 Hc-jL100001 diff --git a/test/fixtures/scale.linear/min-max-skip/rotated-case-4.js b/test/fixtures/scale.linear/min-max-skip/rotated-case-4.js new file mode 100644 index 000000000..6da47127a --- /dev/null +++ b/test/fixtures/scale.linear/min-max-skip/rotated-case-4.js @@ -0,0 +1,34 @@ +module.exports = { + description: 'https://github.com/chartjs/Chart.js/issues/9025', + threshold: 0.15, + config: { + type: 'scatter', + options: { + scales: { + y: { + max: 1069, + min: 230, + ticks: { + autoSkip: false, + minRotation: 22.5 + } + }, + x: { + max: 1069, + min: 230, + ticks: { + autoSkip: false, + minRotation: 35 + } + } + } + } + }, + options: { + spriteText: true, + canvas: { + height: 217, + width: 521 + } + } +}; diff --git a/test/fixtures/scale.linear/min-max-skip/rotated-case-4.png b/test/fixtures/scale.linear/min-max-skip/rotated-case-4.png new file mode 100644 index 0000000000000000000000000000000000000000..df57d4f918274d76010630acf6b74b4f1a453ca8 GIT binary patch literal 27526 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%0AMJ7yD(f!FiXV-+`saj43QJRbqceX!! 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 EAGEa+2mk;8 literal 0 Hc-jL100001 diff --git a/types/index.esm.d.ts b/types/index.esm.d.ts index 3066472c0..85c317a4c 100644 --- a/types/index.esm.d.ts +++ b/types/index.esm.d.ts @@ -2831,6 +2831,12 @@ export interface CartesianScaleOptions extends CoreScaleOptions { */ crossAlign: 'near' | 'center' | 'far'; + /** + * Should the defined `min` and `max` values be presented as ticks even if they are not "nice". + * @default: true + */ + includeBounds: boolean; + /** * Distance in pixels to offset the label from the centre point of the tick (in the x direction for the x axis, and the y direction for the y axis). Note: this can cause labels at the edges to be cropped by the edge of the canvas * @default 0 -- 2.47.2