From 188da82206f5cba480b43f70ee3e37a1910e066b Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Fri, 28 May 2021 07:36:59 +0300 Subject: [PATCH] Fix clearStacks with custom scaleId (#9170) --- src/core/core.datasetController.js | 9 +++- .../controller.bar/stacking/issue-9105.js | 49 ++++++++++++++++++ .../controller.bar/stacking/issue-9105.png | Bin 0 -> 10460 bytes 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/controller.bar/stacking/issue-9105.js create mode 100644 test/fixtures/controller.bar/stacking/issue-9105.png diff --git a/src/core/core.datasetController.js b/src/core/core.datasetController.js index dbf08e77f..81d865810 100644 --- a/src/core/core.datasetController.js +++ b/src/core/core.datasetController.js @@ -192,13 +192,18 @@ function createDataContext(parent, index, element) { } function clearStacks(meta, items) { + const axis = meta.vScale && meta.vScale.axis; + if (!axis) { + return; + } + items = items || meta._parsed; for (const parsed of items) { const stacks = parsed._stacks; - if (!stacks || stacks[meta.vScale.id] === undefined || stacks[meta.vScale.id][meta.index] === undefined) { + if (!stacks || stacks[axis] === undefined || stacks[axis][meta.index] === undefined) { return; } - delete stacks[meta.vScale.id][meta.index]; + delete stacks[axis][meta.index]; } } diff --git a/test/fixtures/controller.bar/stacking/issue-9105.js b/test/fixtures/controller.bar/stacking/issue-9105.js new file mode 100644 index 000000000..200ce4d30 --- /dev/null +++ b/test/fixtures/controller.bar/stacking/issue-9105.js @@ -0,0 +1,49 @@ +module.exports = { + description: 'https://github.com/chartjs/Chart.js/issues/9105', + config: { + type: 'bar', + data: { + labels: ['January', 'February', 'March', 'April', 'May', 'June'], + datasets: [ + { + backgroundColor: 'rgba(255,99,132,0.8)', + label: 'Dataset 1', + data: [12, 19, 3, 5, 2, 3], + stack: '0', + yAxisID: 'y-axis-1' + }, + { + backgroundColor: 'rgba(54,162,235,0.8)', + label: 'Dataset 2', + data: [13, 19, 3, 5, 8, 3], + stack: '0', + yAxisID: 'y-axis-1' + }, + { + backgroundColor: 'rgba(75,192,192,0.8)', + label: 'Dataset 3', + data: [13, 19, 3, 5, 8, 3], + stack: '0', + yAxisID: 'y-axis-1' + } + ] + }, + options: { + plugins: false, + scales: { + xaxis: { + display: false, + }, + 'y-axis-1': { + display: false + } + } + } + }, + options: { + run(chart) { + chart.data.datasets[1].stack = '1'; + chart.update(); + } + } +}; diff --git a/test/fixtures/controller.bar/stacking/issue-9105.png b/test/fixtures/controller.bar/stacking/issue-9105.png new file mode 100644 index 0000000000000000000000000000000000000000..14a21682680917e9039119b9822f75789e6f959d GIT binary patch literal 10460 zc-rk+3se(V8oo10B!HGEN~{V=YYSSe*!rM|n5Zb$3PCY~hz(j>SgOPa7>T4A6Vhpe8YcJ=i-Uosdp9!Ee*Rm>8rI_`B!5kSQJ!Jdk#BDx18>p9Vi{+MP) zQ&;hZ1VeN4u1zJGMD$PTH1K^T8<2Y>&;Z#s7;^zYXje%BUZU@^?0{RegQ+f-%R4!ydQXkU(jzscIb=wa^nT;; zDR^94m(+A$#ENlyyun-P1bY<+Pt+N|Q0$7I-{V`c2F)%=ZWU{j5zqCLoBN@^h?txH; zVV(ce?g>S-M$CQMKCNIY*b26S|1nsVL?oNsNz=dCm*JI9>~ zLN}o~*SHfG@>@O1dTVT?YbMTJOuT`!hh*%7z}Zr}D`*b3`LA%un@Yu;#2|9}gbyif z z8I{H?`TzrwN9{1D;Ef?*{HGriFY9a&q-ya5@M^*3A~22l{0p$#K8K6k6;zbE+6R05om(AMg6 z)wd#|8-;c6c+{WYVYuC9Sjvg^Sq8(8CY~|rY%fp|T-aD!Tz%~3ykJI*@@-Z_V*h@S zyJtcxnLYN#L^xMD3wovAsdFdP)N=k~3jeUy|Cxx{Of)=@toIC1^hc@~4|RoMVPUo% z4M`90mqh!V->Rs-=wW0z)i)Hs@4*YJ59lb?z5(g!)=`I5JU8n_a7Rc*!!Mn5>xVRN zzBNoU1{;eMS(ea%+TZ7t8|3l!Fpuv@A5$?MV-E=7x9{_T4)l&2cECB@7v$qKvMfG` z(_u@+4j&no*aoJe;pS8(xbsc?CJxk4M*c;^SfFN+ks@V{V*;f2@a19m=F2_;A@~b$ zwi8*kj?f;DVS8>P%g8dL!y=IHsk@p56BB1^mGnO-$1+0JRhhX-PtU z<(i@lS8K#tU!>~ix*UhK(jt!Mj33EANGDjH@a;%7!3OzKvC@$;Qc+l?{gI^Yjs>Ql?w0qb zq`K@@>Fx85q-AhK{PLLXJ=Y#OER>Nbk8c$Rpb=^Uo{G*RsYFtX&d()Tl~U-m)`Q{2 zR~+G8C>=2M+AvfpPi|KmOfMCPtls}_X`gB3YR}@%zDEg`v>lI^Q8&C3SpCg;*^1)M zAdP`_T|h5L!r@N(hx#6T%LE|dgm=NoQY-nz2#dZHVcN(WWc(41KM=pdhR~ zCO%ny%)4?daF*2PLvIqovh_j-xp6jy-4JDvB2<8ns+uoV6%pq$vO(>VbC#7zUm2waj&^8^~ z)?d0vgS&`z5q8*xLm+aU95%(8jN3s_f5-L@l(^3tb>(;v>yA{N7LSQ_3!DZ3^$77_ zfI&3Z>$nK!tM>k=OL#)=o$TqLeJz^vE_ZT2C2;2ojx99)`j~iJA1Gl3ff@;XAc^O} zp4#$d);L%kX_Nabnxmn@6CiiJEq0i@wU*AlHQncBm}M8wN9M-=nn_d?-Guv`bwS)FR3Cfot*&pq%i|# zO6PjlVh^pE2iq#@UY)7ufi=E(!h4-`EE^1hrCLg0;)519kc`&`+$DEZyL}e~47iOL(E}MTE%{k6}zTXksznXsn5>GnKL-KJtu~8Rm zco79!sP>b55cwA_Y_UsEdR80I+=c64#@Zz@EoHc~q;5+q%-G!O5|PP{=-;qJ*ioOv zlml^^6F_s~-7~#3LchFuia4CYzO@FN&1i>p*}hi(V+EaUNVkkr^-4((fypPe#@g+zMEQ(+}b#9w53V7;@=WElsDuiySkYw;}F ze~gGVepTZnt>9VHSx5+Ok@nRes{laL~s zHWRK!odZj@YI&qEjd7s~&3$pe76ZA;6%iF2;2nDIUWF74Okm&Y>zpn{hnJaOPlZa_ zk5QgnIN12J_|`6%v%uMKV<qCyi2ivBoF|jZU4*iaRg*+Qf=ZGB+N`f7yK|KGS0iDLG=D_O7iJx&0W{Z^fMjer@ zu{z0XLYrrj3QGmnkQ7!H)^1<>mAVW^a}akB`kOgN$UIaD^YuGal8P+BSTaQw4CM5p q*X|O*NOuaKnb0cID)L_xiBk@{mL0kd47C7$-dq~sTd+8M&))&3hX+sq literal 0 Hc-jL100001 -- 2.47.3